pub enum CoverageGapReason {
NoFilePath,
SourceNotReadable,
HistoricalContent,
TransientReadFailed,
PermanentReadFailed,
NotUtf8,
DerivedViewAnchorless,
FileTruncated,
ByteBudgetExhausted,
}Expand description
Why the pass could not build file context for some findings.
Variants§
NoFilePath
The finding carried no file path at all.
SourceNotReadable
The source backend does not expose a re-readable local file.
HistoricalContent
The finding describes historical content at a commit, not the file on disk today, so indexing the working-tree file would attribute a door that may never have coexisted with the credential.
TransientReadFailed
The file could not be read for a reason that may not hold a moment later: it was removed or replaced after the scan, briefly locked, or the read was interrupted. This is a candidate for retry by whatever owns the scan’s retry policy, and it is NOT the same fact as a permanent hole.
PermanentReadFailed
The file could not be read for a reason retrying cannot change: permission denied, the path is a directory, or the device rejected it.
NotUtf8
The indexed prefix is not valid UTF-8, so byte offsets could not be mapped to lines without corrupting them.
DerivedViewAnchorless
The credential was recovered from a DERIVED view of the file rather than
from the file’s own byte stream. Two kinds produce this, both labelled
filesystem/<view>: a decode view (filesystem/base64,
filesystem/hex, filesystem/reverse, filesystem/quoted-printable)
and a windowed read of a large file (filesystem/windowed), whose line
numbers are relative to the window, not the file.
The file on disk is readable and its doors are real, so it is still indexed and its targets are still reported. What is missing is a line ANCHOR: the finding’s line does not index the file, so no honest distance exists and every target is charged the maximum decay rather than claiming a proximity the number cannot support.
FileTruncated
The file is longer than max_file_bytes; only its prefix was indexed.
ByteBudgetExhausted
The whole-pass max_total_bytes ceiling was reached before this file.
Implementations§
Trait Implementations§
Source§impl Clone for CoverageGapReason
impl Clone for CoverageGapReason
Source§fn clone(&self) -> CoverageGapReason
fn clone(&self) -> CoverageGapReason
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 CoverageGapReason
Source§impl Debug for CoverageGapReason
impl Debug for CoverageGapReason
Source§impl<'de> Deserialize<'de> for CoverageGapReason
impl<'de> Deserialize<'de> for CoverageGapReason
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for CoverageGapReason
Source§impl Ord for CoverageGapReason
impl Ord for CoverageGapReason
Source§fn cmp(&self, other: &CoverageGapReason) -> Ordering
fn cmp(&self, other: &CoverageGapReason) -> 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 CoverageGapReason
impl PartialEq for CoverageGapReason
Source§impl PartialOrd for CoverageGapReason
impl PartialOrd for CoverageGapReason
Source§impl Serialize for CoverageGapReason
impl Serialize for CoverageGapReason
impl StructuralPartialEq for CoverageGapReason
Auto Trait Implementations§
impl Freeze for CoverageGapReason
impl RefUnwindSafe for CoverageGapReason
impl Send for CoverageGapReason
impl Sync for CoverageGapReason
impl Unpin for CoverageGapReason
impl UnsafeUnpin for CoverageGapReason
impl UnwindSafe for CoverageGapReason
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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<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