pub struct InspectManager { /* private fields */ }Implementations§
Source§impl InspectManager
impl InspectManager
pub fn new() -> Self
pub fn with_heavy_root_work_gate( heavy_root_work_allowed: Arc<AtomicBool>, ) -> Self
pub fn set_automatic_tier2_refresh_allowed(&self, allowed: bool)
pub fn automatic_tier2_refresh_allowed(&self) -> bool
pub fn submit_category( &self, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, ) -> JobOutcome
pub fn submit_category_with_callgraph( &self, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, callgraph_snapshot: Option<Arc<CallgraphSnapshot>>, ) -> JobOutcome
pub fn submit_background( &self, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, ) -> Result<JobKey, String>
pub fn submit_background_with_callgraph( &self, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, callgraph_snapshot: Option<Arc<CallgraphSnapshot>>, ) -> Result<JobKey, String>
pub fn submit_tier2_run_with_reuse_background( self: &Arc<Self>, snapshot: InspectSnapshot, category: InspectCategory, ) -> Result<Option<JobKey>, String>
pub fn submit_tier2_run_with_reuse_serial_background( self: &Arc<Self>, snapshot: InspectSnapshot, categories: Vec<InspectCategory>, ) -> Tier2RunSubmission
pub fn tier2_any_in_flight(&self) -> bool
Sourcepub fn evict_idle_caches(&self)
pub fn evict_idle_caches(&self)
Release per-project inspect caches so their SQLite readers and writer
leases do not remain open after a root has gone idle. Callers must check
Self::tier2_any_in_flight first so a running scan never loses its
cache while it is being used.
Sourcepub fn estimated_memory(&self) -> MemoryEstimate
pub fn estimated_memory(&self) -> MemoryEstimate
Estimate inspect’s resident aggregate maps without waiting on active scans. SQLite allocations are measured process-wide; OXC fact payload bytes remain an explicit gap.
Sourcepub fn has_pending_completions(&self) -> bool
pub fn has_pending_completions(&self) -> bool
Whether completed scan results are waiting in the channel. Used by the maintenance scheduler to skip enqueueing a completion drain with no work.
pub fn drain_completions(&self) -> usize
pub fn discard_completions(&self) -> usize
pub fn cache_for_snapshot( &self, snapshot: &InspectSnapshot, ) -> Result<Arc<InspectCache>, String>
Sourcepub fn latest_tier2_counts(
&self,
inspect_dir: PathBuf,
project_root: PathBuf,
) -> (Option<usize>, Option<usize>, Option<usize>)
pub fn latest_tier2_counts( &self, inspect_dir: PathBuf, project_root: PathBuf, ) -> (Option<usize>, Option<usize>, Option<usize>)
Latest persisted counts for the three Tier-2 categories, in
(dead_code, unused_exports, duplicates) order. Reads the most recent
aggregate regardless of contribution-hash freshness (last-known), so the
agent status bar can refresh after a background scan completes without a
freshness round-trip. A category with no readable aggregate reports
None (never a fabricated 0), so the status bar can preserve any
last-known value and stay suppressed until every category is real (#1).
pub fn cache_for_paths( &self, inspect_dir: PathBuf, project_root: PathBuf, ) -> Result<Arc<InspectCache>, String>
pub fn tier2_run_with_reuse( &self, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, callgraph_snapshot: Option<Arc<CallgraphSnapshot>>, ) -> JobOutcome
pub fn tier2_run_with_reuse_direct( self: &Arc<Self>, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, deadline: Instant, force_rescan_paths: Vec<PathBuf>, ) -> DirectTier2RunOutcome
Sourcepub fn tier2_read_cached(
&self,
snapshot: InspectSnapshot,
category: InspectCategory,
caller_scope: JobScope,
) -> JobOutcome
pub fn tier2_read_cached( &self, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, ) -> JobOutcome
Read-only Tier 2 aggregate lookup for aft_inspect. Does NOT run any
scanner — returns the latest cached aggregate if present and verifies
its contribution freshness so warm cache hits are reported as fresh.
This is the non-blocking variant intended for the synchronous inspect
command path; Tier 2 scans run via the watcher-driven scheduler or the
compatibility aft_inspect_tier2_run command.
pub fn tier2_read_cached_readonly( &self, snapshot: InspectSnapshot, category: InspectCategory, caller_scope: JobScope, ) -> JobOutcome
Sourcepub fn reuse_completion_count(&self) -> u64
pub fn reuse_completion_count(&self) -> u64
Snapshot the cumulative count of reuse-path (watcher-driven) Tier-2 completions. The main-thread drain compares this against its last-seen value to detect background scans that finished since the previous tick.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for InspectManager
impl !RefUnwindSafe for InspectManager
impl !UnwindSafe for InspectManager
impl Send for InspectManager
impl Sync for InspectManager
impl Unpin for InspectManager
impl UnsafeUnpin for InspectManager
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more