hotwatch is a Rust library for comfortably watching and handling file changes. It's a thin convenience wrapper over notify, allowing you to easily spawn handlers.
Nightly Rust is required, since I used the box keyword a few times. Sorry.
use hotwatch::{Hotwatch, Event};
let mut hotwatch = Hotwatch::new().expect("Hotwatch failed to initialize.");
hotwatch.watch("war.png", |e: Event| {
if let Event::Write(path) = e {
println!("War has changed.");
}
}).expect("Failed to watch file!");