pub struct CoverageDiff {
pub patch: PatchCoverage,
pub file_patches: Vec<FilePatch>,
pub uncovered_new_lines: Vec<(String, u32)>,
pub has_baseline: bool,
pub total_after: Option<f64>,
pub total_before: Option<f64>,
pub file_deltas: Vec<FileDelta>,
pub notable_unchanged: Vec<FileDelta>,
pub indirect: Vec<IndirectChange>,
}Expand description
The full attribution result.
Fields§
§patch: PatchCoverageProject-wide patch coverage.
file_patches: Vec<FilePatch>Per-file patch coverage (only files with added, instrumented lines).
uncovered_new_lines: Vec<(String, u32)>Flattened actionable list of uncovered added lines.
has_baseline: boolWhether a baseline report was supplied (enables the fields below).
total_after: Option<f64>Head project coverage percentage.
total_before: Option<f64>Baseline project coverage percentage (requires a baseline).
file_deltas: Vec<FileDelta>Per-file project deltas (requires a baseline). Under DiffScope::DiffOnly
this lists only files the diff touched.
notable_unchanged: Vec<FileDelta>Files the diff did not touch whose coverage nonetheless moved by at
least [NOTABLE_UNCHANGED_LINES] covered lines (requires a baseline; only
populated under DiffScope::DiffOnly). These are flagged separately as
not attributable to the PR, so a real cross-file regression still shows
while small measurement-noise flips stay hidden.
indirect: Vec<IndirectChange>Indirect coverage flips on unchanged lines (requires a baseline). Under
DiffScope::DiffOnly this lists only flips within files the diff touched.
Implementations§
Source§impl CoverageDiff
impl CoverageDiff
Sourcepub fn indirect_newly_covered(&self) -> usize
pub fn indirect_newly_covered(&self) -> usize
Indirect lines that became covered.
Sourcepub fn indirect_newly_uncovered(&self) -> usize
pub fn indirect_newly_uncovered(&self) -> usize
Indirect lines that became uncovered.
Trait Implementations§
Source§impl Clone for CoverageDiff
impl Clone for CoverageDiff
Source§fn clone(&self) -> CoverageDiff
fn clone(&self) -> CoverageDiff
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CoverageDiff
impl Debug for CoverageDiff
Source§impl Default for CoverageDiff
impl Default for CoverageDiff
Source§fn default() -> CoverageDiff
fn default() -> CoverageDiff
Auto Trait Implementations§
impl Freeze for CoverageDiff
impl RefUnwindSafe for CoverageDiff
impl Send for CoverageDiff
impl Sync for CoverageDiff
impl Unpin for CoverageDiff
impl UnsafeUnpin for CoverageDiff
impl UnwindSafe for CoverageDiff
Blanket Implementations§
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
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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 more