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}