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: u32
The number of unique lines of code we generated a PDG for. This means MIR bodies without considering monomorphization
unique_functions: u32
The number of unique functions that became part of the PDG. Corresponds
to Self::unique_locs
.
analyzed_locs: u32
The 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: u32
Number of functions that correspond to [Self::analyzed_locs]
inlinings_performed: u32
How 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: Duration
How long it took to create this PDG
conversion_time: Duration
How long it took to calculate markers and otherwise set up the pdg
Trait Implementations§
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