use std::{io, process::ExitStatus, str::Utf8Error};
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("command not found")]
NotFound,
#[error("status error {0}: {1}")]
Status(ExitStatus, String),
#[error("parameter error: {0}")]
Parameters(String),
#[error("output format error: {0}")]
OutputFormat(#[from] Utf8Error),
#[error(transparent)]
Unknown(std::io::Error),
}
impl From<io::Error> for Error {
fn from(value: io::Error) -> Self {
match value.kind() {
io::ErrorKind::NotFound => Self::NotFound,
_ => Self::Unknown(value),
}
}
}