Skip to main content

pedant_types/
finding_origin.rs

1use serde::{Deserialize, Serialize};
2
3/// How a capability finding was detected in source code.
4///
5/// Gate rules use this to distinguish, for example, a crypto import
6/// (`use sha2::Digest`) from embedded key material (`"0xac09..."`).
7#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash)]
8#[serde(rename_all = "snake_case")]
9pub enum FindingOrigin {
10    /// Detected via a `use` path (e.g., `use std::net::TcpStream`).
11    Import,
12    /// Detected via a string literal (URL, IP address, PEM header, key material).
13    StringLiteral,
14    /// Detected via an attribute (e.g., `#[link]`, `#[proc_macro]`).
15    Attribute,
16    /// Detected via an `unsafe` block, `unsafe fn`, `unsafe impl`, or `extern` block.
17    CodeSite,
18    /// Detected in a Cargo.toml build hook or similar manifest-level directive.
19    ManifestHook,
20}