Skip to main content

ImpactReport

Struct ImpactReport 

Source
pub struct ImpactReport {
    pub reached: Vec<ImpactNode>,
    pub ambiguous_edges: usize,
    pub receiver_unknown_edges: usize,
    pub value_edges: usize,
    pub truncated: bool,
}
Expand description

The result of a resolution-gated impact walk.

Fields§

§reached: Vec<ImpactNode>

Symbols transitively affected, sorted, excluding the seed.

§ambiguous_edges: usize

Call edges dropped because the name has several definitions and none is local. Reported rather than hidden: silently truncating a closure is its own kind of lie, and a non-zero count here means the true impact set may be larger than reached.

§receiver_unknown_edges: usize

Call edges dropped because they are method calls on a receiver of unknown type (Resolution::ReceiverUnknown). Counted separately from ambiguous_edges because the cause differs: not “too many candidates” but “cannot claim any candidate” (#223).

§value_edges: usize

Call-graph edges skipped because the reference names a function as a value rather than calling it — register(helper).

Passing a function is a real dependency, so dropping these silently would under-report. But a value reference is over-inclusive by construction: extraction is per-file, so a local named like a function is indistinguishable from the function, and traversing them would put false edges back into the walk #207 and #223 cleaned up. Counted instead, so non-zero means “go look” rather than nothing at all (#250).

§truncated: bool

Whether the walk stopped at max_depth with unexplored frontier left.

This means “the set may be incomplete”, not “more definitely exists”: a node reached on the last permitted level was never asked for its own callers, so completeness cannot be claimed either way.

Trait Implementations§

Source§

impl Clone for ImpactReport

Source§

fn clone(&self) -> ImpactReport

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ImpactReport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ImpactReport

Source§

fn default() -> ImpactReport

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ImpactReport

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for ImpactReport

Source§

impl PartialEq for ImpactReport

Source§

fn eq(&self, other: &ImpactReport) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for ImpactReport

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ImpactReport

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.