pub struct ToolWatcher { /* private fields */ }Expand description
Tool watcher for monitoring tool changes during development.
This implementation provides a callback-based notification system for tool changes.
Unlike the Python SDK which uses watchdog for automatic file system monitoring,
Rust tools are typically compiled and don’t support runtime hot-reloading.
This watcher is useful for:
- Notifying when tools are programmatically reloaded
- Integration with external file watchers (e.g.,
notifycrate) - Development-time tooling that manages tool lifecycle
For automatic file watching, integrate with the notify crate and call
notify_modified when file changes are detected.
Implementations§
Source§impl ToolWatcher
impl ToolWatcher
pub fn new(loader: ToolLoader) -> Self
pub fn on_reload(self, callback: ReloadCallback) -> Self
Sourcepub fn loader(&self) -> &ToolLoader
pub fn loader(&self) -> &ToolLoader
Get the tool loader.
Sourcepub fn loader_mut(&mut self) -> &mut ToolLoader
pub fn loader_mut(&mut self) -> &mut ToolLoader
Get mutable reference to the tool loader.
Sourcepub fn notify_modified(&self, tool_name: &str)
pub fn notify_modified(&self, tool_name: &str)
Notify that a tool has been modified.
Sourcepub fn watched_dirs(&self) -> &[PathBuf]
pub fn watched_dirs(&self) -> &[PathBuf]
Get the directories being watched.
Auto Trait Implementations§
impl Freeze for ToolWatcher
impl !RefUnwindSafe for ToolWatcher
impl Send for ToolWatcher
impl Sync for ToolWatcher
impl Unpin for ToolWatcher
impl !UnwindSafe for ToolWatcher
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreCreates a shared type from an unshared type.