Skip to main content

pedant_types/
capability.rs

1use serde::{Deserialize, Serialize};
2
3/// A capability that a crate may exercise.
4#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
5#[serde(rename_all = "snake_case")]
6pub enum Capability {
7    /// Network access (TCP, UDP, HTTP, etc.)
8    Network,
9    /// Filesystem read operations
10    FileRead,
11    /// Filesystem write operations
12    FileWrite,
13    /// Process spawning or execution
14    ProcessExec,
15    /// Environment variable access
16    EnvAccess,
17    /// Use of unsafe code blocks
18    UnsafeCode,
19    /// FFI or external function calls
20    Ffi,
21    /// Cryptographic operations
22    Crypto,
23    /// System clock or time access
24    SystemTime,
25    /// Proc macro definition (compile-time code execution)
26    ProcMacro,
27}