Skip to main content

governor_application/
error.rs

1//! Shared application errors.
2
3use governor_core::traits::{
4    checkpoint_store::StoreError, registry::RegistryError, source_control::ScmError,
5};
6
7/// Result type for governor application use cases.
8pub type ApplicationResult<T> = std::result::Result<T, ApplicationError>;
9
10/// Application-layer error.
11#[derive(Debug, thiserror::Error)]
12pub enum ApplicationError {
13    /// Invalid user input.
14    #[error("invalid arguments: {0}")]
15    InvalidArguments(String),
16
17    /// Workspace adapter error.
18    #[error("workspace error: {0}")]
19    Workspace(String),
20
21    /// Source control adapter error.
22    #[error("source control error: {0}")]
23    SourceControl(#[from] ScmError),
24
25    /// Registry adapter error.
26    #[error("registry error: {0}")]
27    Registry(#[from] RegistryError),
28
29    /// Checkpoint adapter error.
30    #[error("checkpoint error: {0}")]
31    Checkpoint(#[from] StoreError),
32
33    /// IO error.
34    #[error("io error: {0}")]
35    Io(#[from] std::io::Error),
36}