1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5#[derive(Error, Debug)]
6pub enum Error {
7 #[error("Node execution error: {0}")]
8 NodeExecution(String),
9
10 #[error("Flow execution error: {0}")]
11 FlowExecution(String),
12
13 #[error("Invalid action: {0}")]
14 InvalidAction(String),
15
16 #[error("Missing successor for action: {0}")]
17 MissingSuccessor(String),
18
19 #[error("Invalid operation: {0}")]
20 InvalidOperation(String),
21
22 #[cfg(feature = "python")]
23 #[error("Python error: {0}")]
24 Python(#[from] pyo3::PyErr),
25
26 #[error("Async runtime error: {0}")]
27 AsyncRuntime(#[from] tokio::task::JoinError),
28
29 #[error("Unknown error: {0}")]
30 Unknown(String),
31}