2 个版本
0.1.1 | 2022年8月6日 |
---|---|
0.1.0 | 2022年8月6日 |
#1567 in 文件系统
8KB
68 行
calloop-notify
此 crate 为 Notify 提供了一个 EventSource
实现,允许轻松集成到 Calloop 事件源。这使得可以使用原生操作系统 API 以非阻塞方式轻松监视多个文件。
示例
use std::path::Path;
use calloop::EventLoop;
use calloop_notify::NotifySource;
use notify::{RecursiveMode, Watcher};
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();
}
}
依赖项
~3–11MB
~118K SLoC