Public declaration syntax from forge-rs/crates/forge-tool/src/approval.rs Original source SHA-256: 7fdf558c438c98f1e0f367cc48bb461c71f0991c80a8cb5ef04edf31249ec513 Function bodies and constant values are omitted. This is not the complete implementation. Source line 87 #[async_trait] pub trait ApprovalHandler: Send + Sync { /// Checks whether a tool call should be approved, denied, or modified. /// /// # Arguments /// /// * `call` - The tool call to evaluate. /// * `tier` - The tool's tier classification, which may influence the decision. /// /// # Returns /// /// A [`ToolApproval`] indicating the decision: /// - [`ToolApproval::Approve`] -- proceed with execution as-is. /// - [`ToolApproval::Deny`] -- reject the call with a reason. /// - [`ToolApproval::Modify`] -- approve but with modified arguments. async fn check(&self, call: &ToolCall, tier: ToolTier) -> ToolApproval; } Source line 133 pub struct AutoApprove; Source line 181 pub struct DenyAll { } Source line 204 pub fn new(reason: impl Into) -> Self; Source line 274 pub struct TierBasedApproval;