fswatch 0.1.10

Rust wrapper for fswatch-sys
# fswatch
[![Travis](https://img.shields.io/travis/jkcclemens/fswatch.svg)](https://travis-ci.org/jkcclemens/fswatch)
[![Codecov](https://img.shields.io/codecov/c/github/jkcclemens/fswatch.svg)](https://codecov.io/gh/jkcclemens/fswatch)
[![Crates.io](https://img.shields.io/crates/v/fswatch.svg)](https://crates.io/crates/fswatch)
[![Docs.rs](https://img.shields.io/badge/docs-auto-blue.svg)](https://docs.rs/crate/fswatch)

This is a Rust crate to integrate with the C API of
[`libfswatch`](https://github.com/emcrisostomo/fswatch), via
[`fswatch-sys`](https://github.com/jkcclemens/fswatch-sys).

```rust
extern crate fswatch;

use fswatch::{Fsw, FswSession};

fn main() {
  // Initialize the library. This must be called before anything else can be done.
  Fsw::init_library().expect("Could not start fswatch");

  // Create a new session.
  let session = FswSession::default().unwrap();
  // Add a monitoring path, unwrapping any possible error.
  session.add_path("./").unwrap();
  // Set the callback for when events are fired, unwrapping any possible error.
  session.set_callback(|events| {
    // Prettily print out the vector of events.
    println!("{:#?}", events);
  }).unwrap();
  // Start the monitor, unwrapping any possible error. This will most likely be a blocking call.
  // See the libfswatch documentation for more information.
  session.start_monitor().unwrap();
}
```

```rust
extern crate fswatch;

use fswatch::{Fsw, FswSessionBuilder};

fn main() {
  Fsw::init_library().expect("Could not start fswatch");

  FswSessionBuilder::new(vec!["./"])
    .build_callback(|events| println!("{:#?}", events))
    .unwrap()
    .start_monitor()
    .unwrap();
}
```

```rust
extern crate fswatch;

use fswatch::{Fsw, FswSession};

fn main() {
  Fsw::init_library().expect("Could not start fswatch");

  let session = FswSession::builder().add_path("./").build().unwrap();
  for event in session {
    println!("{:#?}", event);
  }
}
```