use std::fs::File;
use std::fs::Metadata;
use std::path::Path;
use std::path::PathBuf;
#[derive(Debug)]
pub enum Event {
Added {
path: PathBuf,
file: File,
metadata: Metadata,
},
Modified {
path: PathBuf,
file: File,
metadata: Metadata,
},
Removed {
path: PathBuf,
},
}
impl Event {
#[inline]
pub fn path(&self) -> &Path {
match self {
Self::Added { ref path, .. } => path,
Self::Modified { ref path, .. } => path,
Self::Removed { ref path, .. } => path,
}
}
#[inline]
pub fn file(&self) -> Option<&File> {
match self {
Self::Added { ref file, .. } => Some(file),
Self::Modified { ref file, .. } => Some(file),
Self::Removed { .. } => None,
}
}
#[inline]
pub fn file_mut(&mut self) -> Option<&mut File> {
match self {
Self::Added { ref mut file, .. } => Some(file),
Self::Modified { ref mut file, .. } => Some(file),
Self::Removed { .. } => None,
}
}
#[inline]
pub fn metadata(&self) -> Option<&Metadata> {
match self {
Self::Added { ref metadata, .. } => Some(metadata),
Self::Modified { ref metadata, .. } => Some(metadata),
Self::Removed { .. } => None,
}
}
}