Skip to main content

ck_search/mcp/
errors.rs

1use thiserror::Error;
2
3pub type McpResult<T> = Result<T, McpError>;
4
5#[derive(Error, Debug)]
6pub enum McpError {
7    #[error("Search error: {0}")]
8    #[allow(dead_code)]
9    Search(String),
10
11    #[error("Index error: {0}")]
12    #[allow(dead_code)]
13    Index(String),
14
15    #[error("Model error: {0}")]
16    #[allow(dead_code)]
17    Model(String),
18
19    #[error("IO error: {0}")]
20    Io(#[from] std::io::Error),
21
22    #[error("Invalid path: {0}")]
23    #[allow(dead_code)]
24    InvalidPath(String),
25
26    #[error("Operation cancelled")]
27    #[allow(dead_code)]
28    Cancelled,
29
30    #[error("Internal error: {0}")]
31    Internal(#[from] anyhow::Error),
32}
33
34impl McpError {
35    #[allow(dead_code)]
36    pub fn error_code(&self) -> &'static str {
37        match self {
38            McpError::Search(_) => "SEARCH_ERROR",
39            McpError::Index(_) => "INDEX_ERROR",
40            McpError::Model(_) => "MODEL_ERROR",
41            McpError::Io(_) => "IO_ERROR",
42            McpError::InvalidPath(_) => "INVALID_PATH",
43            McpError::Cancelled => "CANCELLED",
44            McpError::Internal(_) => "INTERNAL_ERROR",
45        }
46    }
47}