pub trait PathWatcher {
// Required methods
fn poll(&mut self) -> Result<Vec<WatchEvent>, WatchError>;
fn read(&mut self, path: &str) -> Result<Vec<u8>, WatchError>;
fn has_pending(&self) -> bool;
fn connection_state(&self) -> ConnectionState;
}