pub struct ToolRegistry { /* private fields */ }
Expand description
Tool registry for managing available tools
Implementations§
Source§impl ToolRegistry
impl ToolRegistry
pub fn new() -> Self
Sourcepub fn with_defaults() -> Result<Self, ToolError>
pub fn with_defaults() -> Result<Self, ToolError>
Create a registry with all default tools registered
Sourcepub fn with_audit_logger(self, logger: AuditLogger) -> Self
pub fn with_audit_logger(self, logger: AuditLogger) -> Self
Set an audit logger for the registry
Sourcepub fn with_permission_manager(self, manager: PermissionManager) -> Self
pub fn with_permission_manager(self, manager: PermissionManager) -> Self
Set a permission manager for the registry
Sourcepub fn get_definitions(&self) -> Vec<ToolDefinition>
pub fn get_definitions(&self) -> Vec<ToolDefinition>
Get tool definitions for LLM function calling
Sourcepub async fn execute_tool(
&self,
tool_id: &str,
args: Value,
ctx: ToolContext,
) -> Result<ToolResult, ToolError>
pub async fn execute_tool( &self, tool_id: &str, args: Value, ctx: ToolContext, ) -> Result<ToolResult, ToolError>
Execute a tool with full audit and permission support
Sourcepub async fn get_audit_statistics(&self) -> Option<AuditStatistics>
pub async fn get_audit_statistics(&self) -> Option<AuditStatistics>
Get audit statistics if audit logger is available
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ToolRegistry
impl !RefUnwindSafe for ToolRegistry
impl Send for ToolRegistry
impl Sync for ToolRegistry
impl Unpin for ToolRegistry
impl !UnwindSafe for ToolRegistry
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