pub struct ScanState {
pub matches: BinaryHeap<Reverse<RawMatch>>,
pub credential_interner: HashSet<Arc<str>>,
pub metadata_interner: HashMap<String, Arc<str>>,
pub ml_score_cache: HashMap<(String, String), f64>,
pub ml_cache_order: VecDeque<(String, String)>,
pub ml_cache_bytes: usize,
pub ml_pending: Vec<MlPendingMatch>,
}Expand description
Internal state for a single scan operation (tracks matches and ML cache).
Fields§
§matches: BinaryHeap<Reverse<RawMatch>>Matches collected for this chunk, prioritized by confidence. Uses Reverse to make it a min-heap so we can easily pop the LOWEST confidence.
credential_interner: HashSet<Arc<str>>Interner for credentials found in this chunk to save memory on duplicates.
metadata_interner: HashMap<String, Arc<str>>Static string cache for detector metadata.
ml_score_cache: HashMap<(String, String), f64>§ml_cache_order: VecDeque<(String, String)>§ml_cache_bytes: usize§ml_pending: Vec<MlPendingMatch>Detector matches deferred for batch ML scoring at the end of the scan.
Implementations§
Source§impl ScanState
impl ScanState
Sourcepub fn intern_credential(&mut self, s: &str) -> Arc<str>
pub fn intern_credential(&mut self, s: &str) -> Arc<str>
Intern a credential string, returning an Arc
Sourcepub fn intern_metadata(&mut self, s: &str) -> Arc<str>
pub fn intern_metadata(&mut self, s: &str) -> Arc<str>
Intern a metadata string (detector_id, name, service).
Sourcepub fn push_match(&mut self, m: RawMatch, limit: usize)
pub fn push_match(&mut self, m: RawMatch, limit: usize)
Push a match to the state, maintaining priority and capacity. High-confidence secrets will displace lower-confidence findings.
Sourcepub fn into_matches(self) -> Vec<RawMatch>
pub fn into_matches(self) -> Vec<RawMatch>
Drain all matches into a sorted vector.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ScanState
impl RefUnwindSafe for ScanState
impl Send for ScanState
impl Sync for ScanState
impl Unpin for ScanState
impl UnsafeUnpin for ScanState
impl UnwindSafe for ScanState
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> 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