feat: foundational domain types #1
20
src/error.rs
Normal file
20
src/error.rs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#[derive(Debug, thiserror::Error)]
|
||||||
|
pub enum Error {
|
||||||
|
// Domain errors
|
||||||
|
#[error("Invalid scope: {0}")]
|
||||||
|
InvalidScope(String),
|
||||||
|
#[error("Invalid description: {0}")]
|
||||||
|
InvalidDescription(String),
|
||||||
|
// Infrastructure errors
|
||||||
|
#[error("Not a Jujutsu repository")]
|
||||||
|
NotARepository,
|
||||||
|
#[error("jj is not installed or not in PATH")]
|
||||||
|
JjNotFound,
|
||||||
|
#[error("jj command failed: {message}")]
|
||||||
|
JjCommand { message: String, stderr: String },
|
||||||
|
// Application errors
|
||||||
|
#[error("Operation cancelled by user")]
|
||||||
|
Cancelled,
|
||||||
|
#[error("Non-interactive terminal detected")]
|
||||||
|
NonInteractive
|
||||||
|
}
|
||||||
@@ -2,3 +2,4 @@ mod cli;
|
|||||||
mod commit;
|
mod commit;
|
||||||
mod jj;
|
mod jj;
|
||||||
mod prompts;
|
mod prompts;
|
||||||
|
mod error;
|
||||||
|
|||||||
Reference in New Issue
Block a user