pub struct Stats {
pub def_count: usize,
pub file_count: usize,
pub edges_by_kind: EdgesByKind,
pub ambiguous_count: usize,
pub ambiguous_pct: Percent1,
pub unresolved_external_count: usize,
pub heuristic_edge_count: usize,
pub test_def_count: usize,
pub ts: Option<TsStats>,
pub heuristic_by_tier: HeuristicByTier,
}Expand description
Represents Stats.
Fields§
§def_count: usizeThe def count value.
file_count: usizeThe file count value.
edges_by_kind: EdgesByKindThe edges by kind value.
ambiguous_count: usizeThe ambiguous count value.
ambiguous_pct: Percent1The ambiguous pct value.
unresolved_external_count: usizeThe unresolved external count value.
heuristic_edge_count: usizeAppended LAST, and always serialized (unlike the edge flag above): the
key is written unconditionally, so a graph with no guesses still
carries "heuristic_edge_count":0. default is for the READ side only
– a graph.json written before this counter existed has no such key,
and it must read back as 0 rather than fail to parse.
test_def_count: usizeTest-coverage stage – appended LAST and always serialized, like the stage-4 counter above it. Counts merged DEF ROWS, not fragment entries, so a partial test class split across two files is one test def.
ts: Option<TsStats>The TS resolver’s own four counters, omitted entirely when the repo
carries no TS fragment (the same omit-when-empty rule every other
appended fact follows). Appended after test_def_count, and NOT last
any more: heuristic_by_tier below is the newer fact and takes the
tail, so a TS repo’s stats block appends in the order the facts were
added rather than interleaving the newest one before an older key.
heuristic_by_tier: HeuristicByTierThe tier split of heuristic_edge_count, appended LAST and always
serialized, like the two counters above it. default is for the READ
side only: a graph.json written before the tiers existed has no such
key and must read back as two zeros rather than fail to parse.
A C#-only repo writes no ts key at all, so for such a tree this key
still follows test_def_count directly and the bytes are unchanged.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Stats
impl<'de> Deserialize<'de> for Stats
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>,
impl StructuralPartialEq for Stats
Auto Trait Implementations§
impl Freeze for Stats
impl RefUnwindSafe for Stats
impl Send for Stats
impl Sync for Stats
impl Unpin for Stats
impl UnsafeUnpin for Stats
impl UnwindSafe for Stats
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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