1use thiserror::Error;
7
8#[derive(Error, Debug)]
10pub enum SlopError {
11 #[error("serialization error: {0}")]
12 Serialization(#[from] serde_json::Error),
13
14 #[error("no handler for action '{action}' at path '{path}'")]
15 HandlerNotFound { path: String, action: String },
16
17 #[error("action failed: {message}")]
18 ActionFailed { code: String, message: String },
19
20 #[error("transport error: {0}")]
21 Transport(String),
22
23 #[error("connection closed")]
24 ConnectionClosed,
25}
26
27pub type Result<T> = std::result::Result<T, SlopError>;