calloop-notify

Calloop adapter for Notify


Keywords
events, notify, watch, calloop, filesystem
License
MIT

Documentation

calloop-notify

Calloop adapter for 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();
    }
}