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}