pub struct PurityAnalysis {
pub is_pure: bool,
pub purity_level: PurityLevel,
pub reasons: Vec<ImpurityReason>,
pub confidence: f32,
pub data_flow_info: Option<DataFlowAnalysis>,
pub live_mutations: Vec<LocalMutation>,
pub total_mutations: usize,
pub var_names: Vec<String>,
}Expand description
Result of purity analysis for a function
Fields§
§is_pure: bool§purity_level: PurityLevel§reasons: Vec<ImpurityReason>§confidence: f32§data_flow_info: Option<DataFlowAnalysis>§live_mutations: Vec<LocalMutation>Live local mutations (after filtering out dead stores) This is useful for “almost pure” analysis - functions with only 1-2 live mutations are good refactoring candidates
total_mutations: usizeTotal mutations detected (before filtering dead stores)
var_names: Vec<String>Variable name mapping for translating VarIds (from CFG)
Trait Implementations§
Source§impl Clone for PurityAnalysis
impl Clone for PurityAnalysis
Source§fn clone(&self) -> PurityAnalysis
fn clone(&self) -> PurityAnalysis
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PurityAnalysis
impl RefUnwindSafe for PurityAnalysis
impl Send for PurityAnalysis
impl Sync for PurityAnalysis
impl Unpin for PurityAnalysis
impl UnsafeUnpin for PurityAnalysis
impl UnwindSafe for PurityAnalysis
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