Skip to main content

parley/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum Error {
5    #[error("git operation failed: {0}")]
6    Git(#[from] git2::Error),
7
8    #[error("io error: {0}")]
9    Io(#[from] std::io::Error),
10
11    #[error("serde error: {0}")]
12    Serde(#[from] serde_json::Error),
13
14    #[error("toml parse error: {0}")]
15    Toml(#[from] toml::de::Error),
16
17    #[error("config error: {0}")]
18    Config(String),
19
20    #[error("review not found: {0}")]
21    ReviewNotFound(String),
22
23    #[error("comment not found: {id}")]
24    CommentNotFound { id: u64 },
25
26    #[error("invalid diff side: {0}")]
27    InvalidDiffSide(String),
28
29    #[error("invalid review state: {0}")]
30    InvalidReviewState(String),
31
32    #[error("invalid author: {0}")]
33    InvalidAuthor(String),
34
35    #[error("invalid ai provider: {0}")]
36    InvalidAiProvider(String),
37
38    #[error("invalid ai session mode: {0}")]
39    InvalidAiSessionMode(String),
40
41    #[error("persistence error: {0}")]
42    Persistence(String),
43
44    #[error("tui error: {0}")]
45    Tui(String),
46
47    #[error("mcp error: {0}")]
48    Mcp(String),
49
50    #[error("ai service error: {0}")]
51    AiService(String),
52
53    #[error("validation error: {0}")]
54    Validation(String),
55
56    #[error("internal error: {0}")]
57    Internal(String),
58}
59
60pub type Result<T> = std::result::Result<T, Error>;