use governor_core::traits::{
checkpoint_store::StoreError, registry::RegistryError, source_control::ScmError,
};
pub type ApplicationResult<T> = std::result::Result<T, ApplicationError>;
#[derive(Debug, thiserror::Error)]
pub enum ApplicationError {
#[error("invalid arguments: {0}")]
InvalidArguments(String),
#[error("workspace error: {0}")]
Workspace(String),
#[error("source control error: {0}")]
SourceControl(#[from] ScmError),
#[error("registry error: {0}")]
Registry(#[from] RegistryError),
#[error("checkpoint error: {0}")]
Checkpoint(#[from] StoreError),
#[error("io error: {0}")]
Io(#[from] std::io::Error),
}