use std::fmt;
#[derive(Debug)]
pub enum Error {
PermissionDenied,
NotFound,
AlreadyExists,
Unsupported,
InvalidState,
Disconnected,
Platform(PlatformErrorCode),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PlatformErrorCode {
Linux(i32),
Windows(u32),
Darwin(i32),
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::PermissionDenied => write!(f, "permission denied"),
Error::NotFound => write!(f, "not found"),
Error::AlreadyExists => write!(f, "already exists"),
Error::Unsupported => write!(f, "unsupported operation"),
Error::InvalidState => write!(f, "invalid state"),
Error::Disconnected => write!(f, "event channel disconnected"),
Error::Platform(code) => write!(f, "platform error: {code:?}"),
}
}
}
impl std::error::Error for Error {}