Stream-based FSEvents
API bindings.
kFSEventStreamCreateFlagUseExtendedData
.```rust use std::path::Path; use std::time::Duration;
use fseventstream::ffi::{ kFSEventStreamCreateFlagFileEvents, kFSEventStreamCreateFlagNoDefer, kFSEventStreamCreateFlagUseCFTypes, kFSEventStreamCreateFlagUseExtendedData, kFSEventStreamEventIdSinceNow, }; use fseventstream::stream::createeventstream; use futures_util::StreamExt;
let (mut stream, handler) = createeventstream( [Path::new(".")], kFSEventStreamEventIdSinceNow, Duration::ZERO, kFSEventStreamCreateFlagNoDefer | kFSEventStreamCreateFlagFileEvents | kFSEventStreamCreateFlagUseExtendedData | kFSEventStreamCreateFlagUseCFTypes, ) .expect("stream to be created"); while let Some(event) = stream.next().await { println!( "[{}] path: {:?}({}), flags: {} ({:x})", event.id, event.path, event.inode.unwrapor(-1), event.flags, event.rawflags ); } ```
Both tokio
and async-std
are supported
via feature flags.
tokio
support is enabled by default. To enable async-std
support, disable default features and enable async-std
feature.
Some code in this project is adapted from the following projects:
This project is licensed under MIT License.