pub struct AsyncToolHandler<F> { /* private fields */ }Expand description
Handler that runs an async body with abortable cancellation.
M5.4: body is returned as LinkedToolExecutionHandle::drive and polled on
the caller’s task (the supervised ToolWorker dispatch path). No ambient
tokio::spawn. Cancel via ToolKillHandle::cancel_only.
Implementations§
Source§impl<F> AsyncToolHandler<F>where
F: Fn(ToolCall, ToolCallContext, ToolExecutionControl) -> Pin<Box<dyn Future<Output = ToolCompletion> + Send>> + Send + Sync,
impl<F> AsyncToolHandler<F>where
F: Fn(ToolCall, ToolCallContext, ToolExecutionControl) -> Pin<Box<dyn Future<Output = ToolCompletion> + Send>> + Send + Sync,
Trait Implementations§
impl<F> AbortableAtYieldHandler for AsyncToolHandler<F>where
F: Fn(ToolCall, ToolCallContext, ToolExecutionControl) -> Pin<Box<dyn Future<Output = ToolCompletion> + Send>> + Send + Sync,
Source§impl<F> ToolHandler for AsyncToolHandler<F>where
F: Fn(ToolCall, ToolCallContext, ToolExecutionControl) -> Pin<Box<dyn Future<Output = ToolCompletion> + Send>> + Send + Sync,
impl<F> ToolHandler for AsyncToolHandler<F>where
F: Fn(ToolCall, ToolCallContext, ToolExecutionControl) -> Pin<Box<dyn Future<Output = ToolCompletion> + Send>> + Send + Sync,
Source§fn start(
&self,
call: ToolCall,
context: ToolCallContext,
) -> Result<LinkedToolExecutionHandle, ToolStartError>
fn start( &self, call: ToolCall, context: ToolCallContext, ) -> Result<LinkedToolExecutionHandle, ToolStartError>
Start one execution. Must return a handle with a single completion.
Source§fn supports_abort(&self) -> bool
fn supports_abort(&self) -> bool
Whether cooperative/abort cancellation is honored (D-024 / D-028).
Default false (fail-closed): capability booleans must not self-assert.
Source§fn runtime_owns_abortable_drive(&self) -> bool
fn runtime_owns_abortable_drive(&self) -> bool
Structural AbortableAtYield ownership (V2 §14.2 / D-050). Read more
Source§fn supports_isolated_kill(&self) -> bool
fn supports_isolated_kill(&self) -> bool
Whether isolated kill after grace is available (D-024 / D-028).
Default false (fail-closed). For process-isolated tool classes,
registration also requires
Self::os_process_isolated.Source§fn os_process_isolated(&self) -> bool
fn os_process_isolated(&self) -> bool
Structural OS process isolation boundary (V2 §14.3). Read more
Auto Trait Implementations§
impl<F> Freeze for AsyncToolHandler<F>where
F: Freeze,
impl<F> RefUnwindSafe for AsyncToolHandler<F>where
F: RefUnwindSafe,
impl<F> Send for AsyncToolHandler<F>where
F: Send,
impl<F> Sync for AsyncToolHandler<F>where
F: Sync,
impl<F> Unpin for AsyncToolHandler<F>where
F: Unpin,
impl<F> UnsafeUnpin for AsyncToolHandler<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for AsyncToolHandler<F>where
F: UnwindSafe,
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