use thiserror::Error; #[derive(Error, Debug)] pub enum StreamdError { #[error("Could not extract date from file name: {0}")] DateExtractionError(String), #[error("Timesheet error: {0}")] TimesheetError(String), #[error("Configuration error: {0}")] ConfigError(String), #[error("IO error: {0}")] IoError(#[from] std::io::Error), #[error("TOML error: {0}")] TomlError(#[from] toml::de::Error), } impl From for miette::Report { fn from(err: StreamdError) -> Self { miette::Report::msg(err.to_string()) } }