portalis_core/
error.rs

1//! Error types for Portalis
2//!
3//! Following Rust best practices with thiserror for ergonomic error handling.
4
5use thiserror::Error;
6
7/// Result type alias for Portalis operations
8pub type Result<T> = std::result::Result<T, Error>;
9
10/// Main error type for Portalis operations
11#[derive(Error, Debug)]
12pub enum Error {
13    #[error("Agent error: {0}")]
14    Agent(String),
15
16    #[error("Parse error: {0}")]
17    Parse(String),
18
19    #[error("Type inference error: {0}")]
20    TypeInference(String),
21
22    #[error("Code generation error: {0}")]
23    CodeGeneration(String),
24
25    #[error("Compilation error: {0}")]
26    Compilation(String),
27
28    #[error("Test execution error: {0}")]
29    TestExecution(String),
30
31    #[error("Message bus error: {0}")]
32    MessageBus(String),
33
34    #[error("Pipeline error: {0}")]
35    Pipeline(String),
36
37    #[error("IO error: {0}")]
38    Io(#[from] std::io::Error),
39
40    #[error("Serialization error: {0}")]
41    Serialization(#[from] serde_json::Error),
42
43    #[error("Unknown error: {0}")]
44    Unknown(String),
45}