pub struct SPDGStats {
pub unique_locs: u32,
pub unique_functions: u32,
pub analyzed_locs: u32,
pub analyzed_functions: u32,
pub inlinings_performed: u32,
pub construction_time: Duration,
pub conversion_time: Duration,
}Expand description
Statistics about the code that produced an SPDG
Fields§
§unique_locs: u32The number of unique lines of code we generated a PDG for. This means MIR bodies without considering monomorphization
unique_functions: u32The number of unique functions that became part of the PDG. Corresponds
to Self::unique_locs.
analyzed_locs: u32The number of lines we ran through the PDG construction. This is higher than unique LoCs, because we need to analyze some functions multiple times, due to monomorphization and calls tring differences.
analyzed_functions: u32Number of functions that correspond to [Self::analyzed_locs]
inlinings_performed: u32How many times we inlined functions. This will be higher than
Self::analyzed_functions because sometimes the callee PDG is served
from the cache.
construction_time: DurationHow long it took to create this PDG
conversion_time: DurationHow long it took to calculate markers and otherwise set up the pdg
Trait Implementations§
Source§impl Allocative for SPDGStats
impl Allocative for SPDGStats
Source§impl<'de> Deserialize<'de> for SPDGStats
impl<'de> Deserialize<'de> for SPDGStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for SPDGStats
impl RefUnwindSafe for SPDGStats
impl Send for SPDGStats
impl Sync for SPDGStats
impl Unpin for SPDGStats
impl UnwindSafe for SPDGStats
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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