#[non_exhaustive]pub enum FindingKind {
Vulnerability,
Misconfiguration,
Exposure,
TechDetect,
DefaultCredentials,
InfoDisclosure,
FileDiscovery,
SecretLeak,
MaliciousCode,
SupplyChain,
Unclassified,
Other,
}Expand description
What kind of security issue was found.
Extensible via #[non_exhaustive] — new variants can be added
without breaking downstream consumers.
§Examples
use secfinding::FindingKind;
assert!(FindingKind::SecretLeak.is_actionable());
assert_eq!(FindingKind::TechDetect.to_string(), "tech-detect");Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Vulnerability
A confirmed exploitable vulnerability (SQLi, XSS, RCE, etc.).
Misconfiguration
A security misconfiguration (missing headers, weak TLS, etc.).
Exposure
An exposed service, panel, or endpoint that should not be public.
TechDetect
Technology detection — informational, no direct security impact.
DefaultCredentials
Default or weak credentials found.
InfoDisclosure
Information disclosure (stack traces, internal IPs, version numbers).
FileDiscovery
A file, directory, or backup found that should not be accessible.
SecretLeak
A hardcoded secret (API key, password, token) in source or artifacts.
MaliciousCode
A malicious or suspicious code pattern (malware, backdoor).
SupplyChain
A supply chain risk (dependency confusion, typosquatting).
Unclassified
Unclassified — kind has not been explicitly set.
Distinct from Other which is an intentional classification.
Other
Intentionally classified as “other” (doesn’t fit existing categories).
Implementations§
Source§impl FindingKind
impl FindingKind
Sourcepub fn is_actionable(&self) -> bool
pub fn is_actionable(&self) -> bool
Whether this finding kind typically requires immediate attention.
Sourcepub fn is_classified(&self) -> bool
pub fn is_classified(&self) -> bool
Whether a kind has been explicitly set (not Unclassified).
Sourcepub fn requires_severity_bump(&self) -> bool
pub fn requires_severity_bump(&self) -> bool
Whether findings of this kind should always escalate severity to
at least High in triage pipelines.
Sourcepub fn severity_floor(&self) -> Severity
pub fn severity_floor(&self) -> Severity
The minimum severity a finding of this kind should have.
Useful for dashboards that want to enforce severity floors based on finding classification.
Trait Implementations§
Source§impl Clone for FindingKind
impl Clone for FindingKind
Source§fn clone(&self) -> FindingKind
fn clone(&self) -> FindingKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FindingKind
impl Debug for FindingKind
Source§impl<'de> Deserialize<'de> for FindingKind
impl<'de> Deserialize<'de> for FindingKind
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>,
Source§impl Display for FindingKind
impl Display for FindingKind
Source§impl FromStr for FindingKind
impl FromStr for FindingKind
Source§impl Hash for FindingKind
impl Hash for FindingKind
Source§impl PartialEq for FindingKind
impl PartialEq for FindingKind
Source§fn eq(&self, other: &FindingKind) -> bool
fn eq(&self, other: &FindingKind) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for FindingKind
impl Serialize for FindingKind
impl Copy for FindingKind
impl Eq for FindingKind
impl StructuralPartialEq for FindingKind
Auto Trait Implementations§
impl Freeze for FindingKind
impl RefUnwindSafe for FindingKind
impl Send for FindingKind
impl Sync for FindingKind
impl Unpin for FindingKind
impl UnsafeUnpin for FindingKind
impl UnwindSafe for FindingKind
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<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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.