pub struct GlobalStatsCache { /* private fields */ }Expand description
Cached global statistics with automatic invalidation
This is the main entry point for getting global IDF values. It caches statistics and rebuilds them when the segment list changes.
Implementations§
Source§impl GlobalStatsCache
impl GlobalStatsCache
Sourcepub fn invalidate(&self)
pub fn invalidate(&self)
Invalidate the cache (call when segments are added/removed/merged)
Sourcepub fn generation(&self) -> u64
pub fn generation(&self) -> u64
Get current generation
Sourcepub fn get(&self) -> Option<Arc<GlobalStats>>
pub fn get(&self) -> Option<Arc<GlobalStats>>
Get cached stats if valid, or None if needs rebuild
Sourcepub fn set(&self, stats: GlobalStats)
pub fn set(&self, stats: GlobalStats)
Update the cache with new stats
Sourcepub fn get_or_compute<F>(&self, compute: F) -> Arc<GlobalStats>where
F: FnOnce(&mut GlobalStatsBuilder),
pub fn get_or_compute<F>(&self, compute: F) -> Arc<GlobalStats>where
F: FnOnce(&mut GlobalStatsBuilder),
Get or compute stats using the provided builder function (sync version)
For basic stats that don’t require async iteration.
Sourcepub fn needs_rebuild(&self) -> bool
pub fn needs_rebuild(&self) -> bool
Check if stats need to be rebuilt
Sourcepub fn set_stats(&self, stats: GlobalStats)
pub fn set_stats(&self, stats: GlobalStats)
Set pre-built stats (for async computation)
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for GlobalStatsCache
impl !RefUnwindSafe for GlobalStatsCache
impl Send for GlobalStatsCache
impl Sync for GlobalStatsCache
impl Unpin for GlobalStatsCache
impl UnwindSafe for GlobalStatsCache
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.