Struct rustc_mir_transform::coverage::counters::CoverageCounters
source · pub(super) struct CoverageCounters {
function_source_hash: u64,
next_counter_id: u32,
num_expressions: u32,
pub debug_counters: DebugCounters,
}
Expand description
Manages the counter and expression indexes/IDs to generate CoverageKind
components for MIR
Coverage
statements.
Fields
function_source_hash: u64
next_counter_id: u32
num_expressions: u32
debug_counters: DebugCounters
Implementations
sourceimpl CoverageCounters
impl CoverageCounters
pub fn new(function_source_hash: u64) -> Self
sourcepub fn enable_debug(&mut self)
pub fn enable_debug(&mut self)
Activate the DebugCounters
data structures, to provide additional debug formatting
features when formatting CoverageKind
(counter) values.
sourcepub fn make_bcb_counters(
&mut self,
basic_coverage_blocks: &mut CoverageGraph,
coverage_spans: &[CoverageSpan]
) -> Result<Vec<CoverageKind>, Error>
pub fn make_bcb_counters(
&mut self,
basic_coverage_blocks: &mut CoverageGraph,
coverage_spans: &[CoverageSpan]
) -> Result<Vec<CoverageKind>, Error>
Makes CoverageKind
Counter
s and Expressions
for the BasicCoverageBlock
s directly or
indirectly associated with CoverageSpans
, and returns additional Expression
s
representing intermediate values.
fn make_counter<F>(&mut self, debug_block_label_fn: F) -> CoverageKindwhere
F: Fn() -> Option<String>,
fn make_expression<F>(
&mut self,
lhs: ExpressionOperandId,
op: Op,
rhs: ExpressionOperandId,
debug_block_label_fn: F
) -> CoverageKindwhere
F: Fn() -> Option<String>,
pub fn make_identity_counter(
&mut self,
counter_operand: ExpressionOperandId
) -> CoverageKind
sourcefn next_counter(&mut self) -> CounterValueReference
fn next_counter(&mut self) -> CounterValueReference
Counter IDs start from one and go up.
sourcefn next_expression(&mut self) -> InjectedExpressionId
fn next_expression(&mut self) -> InjectedExpressionId
Expression IDs start from u32::MAX and go down because an Expression can reference (add or subtract counts) of both Counter regions and Expression regions. The counter expression operand IDs must be unique across both types.
Auto Trait Implementations
impl RefUnwindSafe for CoverageCounters
impl Send for CoverageCounters
impl Sync for CoverageCounters
impl Unpin for CoverageCounters
impl UnwindSafe for CoverageCounters
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut 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: 48 bytes