calloop-notify
This crate provides an EventSource
implementation for Notify, allowing easy
integration into the Calloop event source. This makes it possible to easily
watch multiple files in a non-blocking fashion, using the native operating
system APIs.
Example
use std::path::Path;
use calloop::EventLoop;
use calloop_notify::notify::{RecursiveMode, Watcher};
use calloop_notify::NotifySource;
fn main() {
// Create calloop event loop.
let mut event_loop = EventLoop::try_new().unwrap();
let loop_handle = event_loop.handle();
// Watch current directory recursively.
let mut notify_source = NotifySource::new().unwrap();
notify_source.watch(Path::new("."), RecursiveMode::Recursive).unwrap();
// Insert notify source into calloop.
loop_handle
.insert_source(notify_source, |event, _, _| {
println!("Notify Event: {event:?}");
})
.unwrap();
// Dispatch event loop.
loop {
event_loop.dispatch(None, &mut ()).unwrap();
}
}