pub struct AnalysisEngine { /* private fields */ }Expand description
Analysis Engine - Coordinates memory analysis
The AnalysisEngine manages multiple analyzers and runs them on memory snapshots to detect issues like leaks, fragmentation, and safety violations.
Key properties:
- Pluggable: Supports adding custom analyzers
- Concurrent: Can run analyzers in parallel
- Comprehensive: Covers multiple analysis dimensions
Implementations§
Source§impl AnalysisEngine
impl AnalysisEngine
Sourcepub fn new(snapshot_engine: SharedSnapshotEngine) -> Self
pub fn new(snapshot_engine: SharedSnapshotEngine) -> Self
Create a new AnalysisEngine
Sourcepub fn register_analyzer(&mut self, analyzer: Box<dyn Analyzer>)
pub fn register_analyzer(&mut self, analyzer: Box<dyn Analyzer>)
Sourcepub fn analyze(&self) -> Vec<AnalysisResult>
pub fn analyze(&self) -> Vec<AnalysisResult>
Run all registered analyzers on the current snapshot
§Returns
A vector of analysis results from all analyzers
Sourcepub fn analyze_snapshot(&self, snapshot: &MemorySnapshot) -> Vec<AnalysisResult>
pub fn analyze_snapshot(&self, snapshot: &MemorySnapshot) -> Vec<AnalysisResult>
Sourcepub fn analyzer_count(&self) -> usize
pub fn analyzer_count(&self) -> usize
Get the number of registered analyzers
Sourcepub fn has_analyzers(&self) -> bool
pub fn has_analyzers(&self) -> bool
Check if any analyzers are registered
Auto Trait Implementations§
impl Freeze for AnalysisEngine
impl !RefUnwindSafe for AnalysisEngine
impl Send for AnalysisEngine
impl Sync for AnalysisEngine
impl Unpin for AnalysisEngine
impl UnsafeUnpin for AnalysisEngine
impl !UnwindSafe for AnalysisEngine
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> 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>
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 more