use std::{io, num, path};
use thiserror::Error;
pub type MyResult<T> = Result<T, MyError>;
#[derive(Error, Debug)]
pub enum MyError {
#[error(transparent)]
Chrono(#[from] chrono::ParseError),
#[error(transparent)]
Clap(#[from] clap::error::Error),
#[error(transparent)]
Glob(#[from] glob::PatternError),
#[error(transparent)]
Io(#[from] io::Error),
#[error(transparent)]
ParseInt(#[from] num::ParseIntError),
#[error(transparent)]
Prefix(#[from] path::StripPrefixError),
#[error(transparent)]
Regex(#[from] regex::Error),
#[error(transparent)]
Walk(#[from] walkdir::Error),
#[error("{0}")]
Text(String),
}
impl MyError {
pub fn eprint(&self) {
let error = self.to_string();
let error = error.trim_end();
eprintln!("{error}");
}
}