pub struct ToolRegistry { /* private fields */ }Expand description
Thread-safe registry for managing available tools.
Implementations§
Source§impl ToolRegistry
impl ToolRegistry
Sourcepub fn new() -> ToolRegistry
pub fn new() -> ToolRegistry
Create a new empty tool registry.
Sourcepub async fn register(
&self,
tool: Arc<dyn Executable>,
) -> Result<(), RegistryError>
pub async fn register( &self, tool: Arc<dyn Executable>, ) -> Result<(), RegistryError>
Register a tool in the registry. Returns an error if a tool with the same name already exists.
Sourcepub async fn get(&self, name: &str) -> Option<Arc<dyn Executable>>
pub async fn get(&self, name: &str) -> Option<Arc<dyn Executable>>
Get a tool by name. Returns None if the tool is not found.
Sourcepub async fn get_all(&self) -> Vec<Arc<dyn Executable>>
pub async fn get_all(&self) -> Vec<Arc<dyn Executable>>
Get all registered tools.
Sourcepub async fn cleanup_session(&self, session_id: i64)
pub async fn cleanup_session(&self, session_id: i64)
Cleans up session-specific state in all registered tools.
This should be called when a session is removed to prevent unbounded memory growth from abandoned session state in tools.
Trait Implementations§
Source§impl Default for ToolRegistry
impl Default for ToolRegistry
Source§fn default() -> ToolRegistry
fn default() -> ToolRegistry
Returns the “default value” for a type. Read more
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