Skip to main content

limit_agent/
error.rs

1#[derive(thiserror::Error, Debug)]
2pub enum AgentError {
3    #[error("Tool error: {0}")]
4    ToolError(String),
5    #[error("State error: {0}")]
6    StateError(String),
7    #[error("Sandbox error: {0}")]
8    SandboxError(String),
9    #[error("IO error: {0}")]
10    IoError(String),
11    #[error("Bincode error: {0}")]
12    BincodeError(String),
13}
14
15impl Clone for AgentError {
16    fn clone(&self) -> Self {
17        match self {
18            AgentError::ToolError(s) => AgentError::ToolError(s.clone()),
19            AgentError::StateError(s) => AgentError::StateError(s.clone()),
20            AgentError::SandboxError(s) => AgentError::SandboxError(s.clone()),
21            AgentError::IoError(s) => AgentError::IoError(s.clone()),
22            AgentError::BincodeError(s) => AgentError::BincodeError(s.clone()),
23        }
24    }
25}
26
27impl From<std::io::Error> for AgentError {
28    fn from(err: std::io::Error) -> Self {
29        AgentError::IoError(err.to_string())
30    }
31}