# fwatch fwatch is a file watching library written in Rust. * [API Documentation](https://docs.rs/fwatch/) * Cargo package: [fwatch](https://crates.io/crates/fwatch) --- ## Installation Add this to your `Cargo.toml`: ```toml [dependencies] fwatch = "0.1" ``` ## Basic Usage The following example sets up a `Watcher` to observe any changes (called `Transition`'s in fwatch) to `foo.txt` and `bar.txt`. The currently available transitions are `Created`, `Modified`, `Deleted`, and `None`. Instead of `BasicTarget`, any struct implementing the `Watchable` trait can be used below. ```rust,ignore use fwatch::{BasicTarget, Watcher, Transition}; fn main() { let mut watcher : Watcher = Watcher::new(); // Add a couple of files to watch watcher.add_target(BasicTarget::new("foo.txt")); watcher.add_target(BasicTarget::new("bar.txt")); // Calling watcher.watch() returns a vector of Transitions, // teling us if any of the watched files have undergone a // transition since the previous call to watcher.watch() for (index, transition) in watcher.watch().into_iter().enumerate() { // Get the path and state of the current target let path = watcher.get_path(index).unwrap(); let state = watcher.get_state(index).uwnrap(); // Do something based on the observed transition. match transition { Transition::Created => { /* The watched file has been created */ }, Transition::Modified => { /* The watched file has been modified */ }, Transition::Deleted => { /* The watched file has been deleted */ }, Transition::None => { /* None of the above transitions were observed */ }, } } } ``` ### License Licensed under either of * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option.