#watching #file #basic

fwatch

A simple file watching crate

6 releases

0.1.5 Nov 2, 2019
0.1.4 Nov 2, 2019
0.1.3 Jul 24, 2019

#4 in #watching

42 downloads per month
Used in 2 crates

MIT/Apache

13KB
126 lines

fwatch

fwatch is a file watching library written in Rust.


Installation

Add this to your Cargo.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.

use fwatch::{BasicTarget, Watcher, Transition};

fn main() {
    let mut watcher : Watcher<BasicTarget> = 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

No runtime deps