pub struct NotifyWatcher { /* private fields */ }Expand description
Production file watcher using notify crate
Watches file system for changes and sends events to a channel.
Uses notify::RecommendedWatcher which selects the best backend
for the current platform (inotify on Linux, FSEvents on macOS, etc).
Implementations§
Source§impl NotifyWatcher
impl NotifyWatcher
Sourcepub fn new(paths: Vec<PathBuf>, tx: Sender<WatchEvent>) -> Result<Self>
pub fn new(paths: Vec<PathBuf>, tx: Sender<WatchEvent>) -> Result<Self>
Create new notify-based file watcher
§Arguments
paths- Paths to watch (files or directories)tx- Channel sender for watch events
§Returns
Result containing the watcher or an error
§Errors
Returns error if:
- Watcher creation fails
- Path watching fails
- Path does not exist
§Example
use clnrm_core::watch::NotifyWatcher;
use std::path::PathBuf;
use tokio::sync::mpsc;
let (tx, mut rx) = mpsc::channel(100);
let watcher = NotifyWatcher::new(
vec![PathBuf::from("tests/")],
tx
)?;Trait Implementations§
Source§impl Debug for NotifyWatcher
impl Debug for NotifyWatcher
Auto Trait Implementations§
impl Freeze for NotifyWatcher
impl RefUnwindSafe for NotifyWatcher
impl Send for NotifyWatcher
impl Sync for NotifyWatcher
impl Unpin for NotifyWatcher
impl UnwindSafe for NotifyWatcher
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request