Skip to main content

FileWatcherProvider

Trait FileWatcherProvider 

Source
pub trait FileWatcherProvider:
    Environment
    + Send
    + Sync {
    // Required methods
    fn RegisterWatcher<'life0, 'async_trait>(
        &'life0 self,
        Handle: String,
        Root: PathBuf,
        IsRecursive: bool,
        Pattern: Option<String>,
    ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn UnregisterWatcher<'life0, 'async_trait>(
        &'life0 self,
        Handle: String,
    ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

An abstract service contract for registering and cancelling recursive filesystem watchers.

Required Methods§

Source

fn RegisterWatcher<'life0, 'async_trait>( &'life0 self, Handle: String, Root: PathBuf, IsRecursive: bool, Pattern: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Register a new watcher. Handle is a caller-supplied identifier (e.g. "watcher:7") that must be echoed back in every emitted event so the extension host can route events to the right subscriber.

§Parameters
  • Handle: Caller-supplied watcher identifier.
  • Root: Absolute path of the directory to watch.
  • IsRecursive: When true, observe children recursively.
  • Pattern: Optional glob pattern (e.g. **/*.ts). When present, events whose path does not match the compiled pattern are dropped before crossing the IPC boundary - this is critical for performance under TypeScript-style extensions that register 10+ watchers per activation.
Source

fn UnregisterWatcher<'life0, 'async_trait>( &'life0 self, Handle: String, ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Cancel a watcher registered with RegisterWatcher. Unknown handles resolve to Ok(()) so callers may safely call dispose() without tracking registration state.

Implementors§