use thiserror::Error as ThisError;
#[derive(Debug, ThisError)]
pub enum Error {
#[error("IO error: `{0}`")]
IoError(#[from] std::io::Error),
#[error("thread lock error: `{0}`")]
ThreadLockError(String),
#[error("cache error: `{0}`")]
CacheError(String),
#[error("JSON de/serialization error: `{0}`")]
SerdeJsonError(#[from] serde_json::Error),
#[error("system time error: `{0}`")]
SystemTimeError(#[from] std::time::SystemTimeError),
#[error(transparent)]
ParseError(#[from] parseit::error::Error),
#[error("sysctl error: `{0}`")]
SysctlError(#[from] sysctl::SysctlError),
#[error("INI parsing error: `{0}`")]
IniError(#[from] ini::Error),
}
pub type Result<T> = core::result::Result<T, Error>;