pub enum DataFlowKind {
Show 13 variants
TaintFlow,
DeadStore,
DiscardedResult,
PartialErrorHandling,
RepeatedCall,
UnnecessaryClone,
AllocationInLoop,
RedundantCollect,
LockAcrossAwait,
InconsistentLockOrder,
ImmutableGrowable,
SwallowedOk,
UnobservedSpawn,
}Expand description
Discriminant for data flow findings.
Variants§
TaintFlow
Tainted data flows from a capability source to a capability sink.
DeadStore
Value assigned then overwritten before read.
DiscardedResult
Function returning Result called without binding the return.
PartialErrorHandling
Result handled on some paths, dropped on others.
RepeatedCall
Same function called with identical arguments within a single scope.
UnnecessaryClone
.clone() called but the original is never used afterward.
AllocationInLoop
Vec::new(), String::new(), or format!() inside a loop body.
RedundantCollect
.collect() followed immediately by .iter() or .into_iter().
LockAcrossAwait
Lock guard held across an .await point (potential deadlock or task starvation).
InconsistentLockOrder
Same locks acquired in different orders across functions (potential deadlock).
ImmutableGrowable
Vec or String binding never mutated after construction.
SwallowedOk
.ok() called on Result where the resulting Option is discarded.
UnobservedSpawn
Thread or task spawned with the JoinHandle dropped or unbound.
Implementations§
Trait Implementations§
Source§impl Clone for DataFlowKind
impl Clone for DataFlowKind
Source§fn clone(&self) -> DataFlowKind
fn clone(&self) -> DataFlowKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DataFlowKind
Source§impl Debug for DataFlowKind
impl Debug for DataFlowKind
Source§impl Display for DataFlowKind
impl Display for DataFlowKind
impl Eq for DataFlowKind
Source§impl Ord for DataFlowKind
impl Ord for DataFlowKind
Source§fn cmp(&self, other: &DataFlowKind) -> Ordering
fn cmp(&self, other: &DataFlowKind) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for DataFlowKind
impl PartialEq for DataFlowKind
Source§impl PartialOrd for DataFlowKind
impl PartialOrd for DataFlowKind
impl StructuralPartialEq for DataFlowKind
Auto Trait Implementations§
impl Freeze for DataFlowKind
impl RefUnwindSafe for DataFlowKind
impl Send for DataFlowKind
impl Sync for DataFlowKind
impl Unpin for DataFlowKind
impl UnsafeUnpin for DataFlowKind
impl UnwindSafe for DataFlowKind
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 more