2 个版本

0.1.1 2022年8月6日
0.1.0 2022年8月6日

#1567 in 文件系统

MIT 许可证

8KB
68

calloop-notify

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