use glyph_core::GlyphError;
use std::env::VarError;
use std::io;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum CliError {
#[error(transparent)]
Core(#[from] GlyphError),
#[error("IO error: {0}")]
Io(#[from] io::Error),
#[error("Environment error: {0}")]
Env(#[from] VarError),
#[error("Terminal error: {0}")]
Terminal(String),
#[error("Input error: {0}")]
Input(String),
#[error("File error: {0}")]
File(String),
#[error("Other error: {0}")]
Other(String),
}
pub type Result<T> = std::result::Result<T, CliError>;
impl From<String> for CliError {
fn from(s: String) -> Self {
CliError::Input(s)
}
}
impl From<&str> for CliError {
fn from(s: &str) -> Self {
CliError::Input(s.to_string())
}
}