use std::{io, result};
use thiserror::Error;
#[derive(Debug, Error)]
pub enum LoggerError {
#[error("IO error: {0}")]
Io(#[from] io::Error),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Time error: {0}")]
Time(#[from] time::error::Error),
#[error("Config error: {0}")]
Config(String),
#[error("Watch error: {0}")]
Watch(#[from] notify::Error),
#[error("Channel error: {0}")]
Channel(String),
#[error("{0}")]
Other(String),
}
pub type Result<T> = result::Result<T, LoggerError>;