Public declaration syntax from forge-rs/crates/forge-code-safety/src/delete_policy.rs Original source SHA-256: 87def6eaf052e64c6979fd63beab1330a136c5807ad3e2a5012242b460a24c95 Function bodies and constant values are omitted. This is not the complete implementation. Source line 43 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum DeleteDecision { /// The delete is denied. Denied { /// The path that was denied. path: PathBuf, /// Why it was denied. reason: String, }, /// The delete requires explicit approval before it can proceed. RequiresApproval { /// The path requiring approval. path: PathBuf, /// The risk level of the delete. risk_level: RiskLevel, }, /// The delete is allowed (matches an approved pattern). Allowed { /// The path that was allowed. path: PathBuf, /// The pattern that matched. matched_pattern: String, }, } Source line 69 #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum RiskLevel { /// Low risk: generated files, build artifacts, temporary files. Low, /// Medium risk: test files, documentation, configuration. Medium, /// High risk: source code, production configuration, data. High, /// Critical risk: security files, keys, critical infrastructure. Critical, } Source line 96 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct DeletePolicy { } Source line 109 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum DeletePolicyMode { /// All deletes are denied. DenyAll, /// Deletes require explicit approval. RequireApproval, /// Deletes matching specific patterns are allowed. AllowPattern, } Source line 122 pub fn deny_all(agent_did: impl Into) -> Self; Source line 135 pub fn require_approval(agent_did: impl Into) -> Self; Source line 151 pub fn with_allowed_patterns(agent_did: impl Into, patterns: Vec) -> Self; Source line 161 pub fn protect_path(mut self, path: impl Into) -> Self; Source line 176 pub fn evaluate(&self, path: &Path) -> DeleteDecision; Source line 230 pub fn enforce(&self, path: &Path) -> CodeSafetyResult<()>; Source line 249 pub fn agent_did(&self) -> &str; Source line 254 pub fn mode(&self) -> &DeletePolicyMode;