use rust_i18n::t;
use thiserror::Error;
use crate::error::config::ConfigError;
#[derive(Error, Debug)]
pub enum KeyError {
#[error("{0}")]
KeyNotFound(String),
#[error("{0}")]
InvalidKey(String),
#[error("{0}")]
ResolveKeyError(String),
#[error("{0}")]
UnsupportedKeyType(String),
#[error("{0}")]
IoError(String),
}
impl From<std::io::Error> for KeyError {
fn from(error: std::io::Error) -> Self {
KeyError::IoError(t!("errors.key.io_error", error = error.to_string()))
}
}
impl From<ConfigError> for KeyError {
fn from(error: ConfigError) -> Self {
KeyError::ResolveKeyError(t!("errors.key.resolve_key_error", error = error.to_string()))
}
}