use crate::config::paths::NoConfigDir;
use crate::config::resolve::ResolveError;
use crate::config::store::StoreError;
use crate::git::runner::RunError;
use crate::home_check::CheckError;
use crate::keys::store::KeyError;
use crate::transport::TransportError;
pub const EXIT_ERROR: i32 = 1;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum Error {
#[error(transparent)]
ConfigDir(#[from] NoConfigDir),
#[error(transparent)]
Store(#[from] StoreError),
#[error(transparent)]
Resolve(#[from] ResolveError),
#[error(transparent)]
Git(#[from] RunError),
#[error(transparent)]
HomeCheck(#[from] CheckError),
#[error(transparent)]
Key(#[from] KeyError),
#[error(transparent)]
Transport(#[from] TransportError),
#[error("{0}")]
Other(String),
}
impl Error {
pub fn msg(message: impl Into<String>) -> Self {
Self::Other(message.into())
}
}