calloop-notify

Crates.iocalloop-notify
lib.rscalloop-notify
version0.2.0
created_at2022-08-06 04:03:16.544803+00
updated_at2025-07-10 21:15:04.045808+00
descriptionCalloop adapter for Notify
homepagehttps://github.com/chrisduerr/calloop-notify
repository
max_upload_size
id639684
size23,412
Christian Duerr (chrisduerr)

documentation

README

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();
    }
}
Commit count: 0

cargo fmt