pub struct TestApprovalHandler { /* private fields */ }Expand description
Test approval handler with configurable responses
Implementations§
Source§impl TestApprovalHandler
impl TestApprovalHandler
Sourcepub fn approve_all() -> Self
pub fn approve_all() -> Self
Create a handler that approves everything
Sourcepub fn with_decisions(
decisions: Vec<(impl Into<String>, ApprovalDecision)>,
) -> Self
pub fn with_decisions( decisions: Vec<(impl Into<String>, ApprovalDecision)>, ) -> Self
Create a handler with specific decisions per tool
Sourcepub fn with_config(config: ApprovalConfig) -> Self
pub fn with_config(config: ApprovalConfig) -> Self
Create with custom config
Sourcepub fn set_decision(
&self,
tool_name: impl Into<String>,
decision: ApprovalDecision,
)
pub fn set_decision( &self, tool_name: impl Into<String>, decision: ApprovalDecision, )
Set decision for a specific tool
Sourcepub fn get_requests(&self) -> Vec<ApprovalRequest>
pub fn get_requests(&self) -> Vec<ApprovalRequest>
Get all recorded requests
Sourcepub fn request_count(&self) -> usize
pub fn request_count(&self) -> usize
Get the number of approval requests made
Sourcepub fn was_approval_requested(&self, tool_name: &str) -> bool
pub fn was_approval_requested(&self, tool_name: &str) -> bool
Check if a specific tool had approval requested
Trait Implementations§
Source§impl ApprovalHandler for TestApprovalHandler
impl ApprovalHandler for TestApprovalHandler
Source§fn request_approval<'life0, 'async_trait>(
&'life0 self,
request: ApprovalRequest,
) -> Pin<Box<dyn Future<Output = Result<ApprovalDecision, ApprovalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_approval<'life0, 'async_trait>(
&'life0 self,
request: ApprovalRequest,
) -> Pin<Box<dyn Future<Output = Result<ApprovalDecision, ApprovalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Request approval for a tool call
Source§fn config(&self) -> &ApprovalConfig
fn config(&self) -> &ApprovalConfig
Get the configuration
Source§fn on_status_change<'life0, 'life1, 'async_trait>(
&'life0 self,
_request_id: &'life1 str,
_status: ApprovalStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_status_change<'life0, 'life1, 'async_trait>(
&'life0 self,
_request_id: &'life1 str,
_status: ApprovalStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
React to status updates; default no-op
Source§fn check_requires_approval(
&self,
tool_call: &ToolCall,
tool_schema: Option<&ToolSchema>,
) -> Option<ApprovalReason>
fn check_requires_approval( &self, tool_call: &ToolCall, tool_schema: Option<&ToolSchema>, ) -> Option<ApprovalReason>
Check if a tool requires approval and return the reason
Auto Trait Implementations§
impl !Freeze for TestApprovalHandler
impl !RefUnwindSafe for TestApprovalHandler
impl Send for TestApprovalHandler
impl Sync for TestApprovalHandler
impl Unpin for TestApprovalHandler
impl UnsafeUnpin for TestApprovalHandler
impl UnwindSafe for TestApprovalHandler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more