agentic_tools_core/
error.rs1use thiserror::Error;
4
5#[derive(Error, Debug)]
7pub enum ToolError {
8 #[error("invalid input: {0}")]
10 InvalidInput(String),
11
12 #[error("internal error: {0}")]
14 Internal(String),
15
16 #[error("external service error: {0}")]
18 External(String),
19
20 #[error("permission denied: {0}")]
22 Permission(String),
23
24 #[error("not found: {0}")]
26 NotFound(String),
27}
28
29impl ToolError {
30 pub fn invalid_input<S: ToString>(s: S) -> Self {
32 ToolError::InvalidInput(s.to_string())
33 }
34
35 pub fn internal<S: ToString>(s: S) -> Self {
37 ToolError::Internal(s.to_string())
38 }
39
40 pub fn external<S: ToString>(s: S) -> Self {
42 ToolError::External(s.to_string())
43 }
44
45 pub fn not_found<S: ToString>(s: S) -> Self {
47 ToolError::NotFound(s.to_string())
48 }
49
50 pub fn permission<S: ToString>(s: S) -> Self {
52 ToolError::Permission(s.to_string())
53 }
54}