pub struct ContextAggregator { /* private fields */ }Expand description
Thread-safe aggregator for context providers.
Uses lock-free DashMap for caching to enable safe concurrent access from parallel analysis workers. The aggregator itself is wrapped in Arc for cheap cloning across threads.
§Thread Safety
Safe to share across threads via Arc. The internal cache uses DashMap for lock-free concurrent access, avoiding contention in hot paths.
Implementations§
Source§impl ContextAggregator
impl ContextAggregator
pub fn new() -> Self
pub fn with_provider(self, provider: Box<dyn ContextProvider>) -> Self
Sourcepub fn analyze(&self, target: &AnalysisTarget) -> ContextMap
pub fn analyze(&self, target: &AnalysisTarget) -> ContextMap
Analyze the target and return context information.
This method uses interior mutability via DashMap for lock-free caching, so it can be called with &self from multiple threads safely.
pub fn clear_cache(&self)
Trait Implementations§
Source§impl Clone for ContextAggregator
impl Clone for ContextAggregator
Auto Trait Implementations§
impl Freeze for ContextAggregator
impl !RefUnwindSafe for ContextAggregator
impl Send for ContextAggregator
impl Sync for ContextAggregator
impl Unpin for ContextAggregator
impl UnsafeUnpin for ContextAggregator
impl !UnwindSafe for ContextAggregator
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> EnsureExt<T> for T
impl<T> EnsureExt<T> for T
Source§fn ensure<P, E>(self, predicate: P, error: E) -> Validation<T, NonEmptyVec<E>>where
P: Predicate<T>,
fn ensure<P, E>(self, predicate: P, error: E) -> Validation<T, NonEmptyVec<E>>where
P: Predicate<T>,
Validate that this value satisfies the given predicate. Read more
Source§fn ensure_with<P, E, F>(
self,
predicate: P,
error_fn: F,
) -> Validation<T, NonEmptyVec<E>>
fn ensure_with<P, E, F>( self, predicate: P, error_fn: F, ) -> Validation<T, NonEmptyVec<E>>
Validate with an error-generating function. 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