Struct rustc_codegen_llvm::coverageinfo::ffi::CounterMappingRegion
source · #[repr(C)]pub struct CounterMappingRegion {
counter: Counter,
false_counter: Counter,
mcdc_params: Parameters,
file_id: u32,
expanded_file_id: u32,
start_line: u32,
start_col: u32,
end_line: u32,
end_col: u32,
kind: RegionKind,
}
Expand description
This struct provides LLVM’s representation of a “CoverageMappingRegion”, encoded into the
coverage map, in accordance with the
LLVM Code Coverage Mapping Format.
The struct composes fields representing the Counter
type and value(s) (injected counter
ID, or expression type and operands), the source file (an indirect index into a “filenames
array”, encoded separately), and source location (start and end positions of the represented
code region).
Corresponds to struct llvm::coverage::CounterMappingRegion
.
Must match the layout of LLVMRustCounterMappingRegion
.
Fields§
§counter: Counter
The counter type and type-dependent counter data, if any.
false_counter: Counter
If the RegionKind
is a BranchRegion
, this represents the counter
for the false branch of the region.
mcdc_params: Parameters
§file_id: u32
An indirect reference to the source filename. In the LLVM Coverage Mapping Format, the
file_id is an index into a function-specific virtual_file_mapping
array of indexes
that, in turn, are used to look up the filename for this region.
expanded_file_id: u32
If the RegionKind
is an ExpansionRegion
, the expanded_file_id
can be used to find
the mapping regions created as a result of macro expansion, by checking if their file id
matches the expanded file id.
start_line: u32
1-based starting line of the mapping region.
start_col: u32
1-based starting column of the mapping region.
end_line: u32
1-based ending line of the mapping region.
end_col: u32
1-based ending column of the mapping region. If the high bit is set, the current mapping region is a gap area.
kind: RegionKind
Implementations§
source§impl CounterMappingRegion
impl CounterMappingRegion
pub(crate) fn from_mapping( mapping_kind: &MappingKind, local_file_id: u32, source_region: &SourceRegion, ) -> Self
pub(crate) fn code_region( counter: Counter, file_id: u32, start_line: u32, start_col: u32, end_line: u32, end_col: u32, ) -> Self
pub(crate) fn branch_region( counter: Counter, false_counter: Counter, file_id: u32, start_line: u32, start_col: u32, end_line: u32, end_col: u32, ) -> Self
pub(crate) fn mcdc_branch_region( counter: Counter, false_counter: Counter, condition_info: ConditionInfo, file_id: u32, start_line: u32, start_col: u32, end_line: u32, end_col: u32, ) -> Self
pub(crate) fn decision_region( decision_info: DecisionInfo, file_id: u32, start_line: u32, start_col: u32, end_line: u32, end_col: u32, ) -> Self
pub(crate) fn expansion_region( file_id: u32, expanded_file_id: u32, start_line: u32, start_col: u32, end_line: u32, end_col: u32, ) -> Self
pub(crate) fn skipped_region( file_id: u32, start_line: u32, start_col: u32, end_line: u32, end_col: u32, ) -> Self
pub(crate) fn gap_region( counter: Counter, file_id: u32, start_line: u32, start_col: u32, end_line: u32, end_col: u32, ) -> Self
Trait Implementations§
source§impl Clone for CounterMappingRegion
impl Clone for CounterMappingRegion
source§fn clone(&self) -> CounterMappingRegion
fn clone(&self) -> CounterMappingRegion
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for CounterMappingRegion
impl Debug for CounterMappingRegion
impl Copy for CounterMappingRegion
Auto Trait Implementations§
impl Freeze for CounterMappingRegion
impl RefUnwindSafe for CounterMappingRegion
impl Send for CounterMappingRegion
impl Sync for CounterMappingRegion
impl Unpin for CounterMappingRegion
impl UnwindSafe for CounterMappingRegion
Blanket Implementations§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'a mut [T]
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'a mut [T]
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed, ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 64 bytes