pub struct PurityAnalyzer;Expand description
Analyzer for determining function purity level
Implementations§
Source§impl PurityAnalyzer
impl PurityAnalyzer
Sourcepub fn analyze(item_fn: &ItemFn) -> PurityLevel
pub fn analyze(item_fn: &ItemFn) -> PurityLevel
Analyze a function and determine its purity level
§Classification Logic
- Check signature for obvious impurity (mut params, async)
- Use existing PurityDetector to check for side effects in body
- Classify as Pure if static with no side effects
- Classify as Impure if has mutations, I/O, or unsafe
- Otherwise classify as ProbablyPure
Sourcepub fn analyze_signature(sig: &Signature) -> PurityIndicators
pub fn analyze_signature(sig: &Signature) -> PurityIndicators
Analyze function signature for purity indicators
Sourcepub fn is_pure_signature(sig: &Signature) -> bool
pub fn is_pure_signature(sig: &Signature) -> bool
Check if function signature indicates purity
A pure signature has:
- No mutable receiver
- No mutable parameters
- Not async
Auto Trait Implementations§
impl Freeze for PurityAnalyzer
impl RefUnwindSafe for PurityAnalyzer
impl Send for PurityAnalyzer
impl Sync for PurityAnalyzer
impl Unpin for PurityAnalyzer
impl UnsafeUnpin for PurityAnalyzer
impl UnwindSafe for PurityAnalyzer
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> 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