Skip to main content

agent_phone/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum Error {
5    #[error("invalid did:key: {0}")]
6    InvalidDid(String),
7
8    #[error("invalid envelope: {0}")]
9    InvalidEnvelope(String),
10
11    #[error("noise: {0}")]
12    Noise(String),
13
14    #[error("handshake failed: {0}")]
15    Handshake(String),
16
17    #[error("plaintext too large: {got} > {max}")]
18    PlaintextTooLarge { got: usize, max: usize },
19
20    #[error("io: {0}")]
21    Io(#[from] std::io::Error),
22
23    #[error("json: {0}")]
24    Json(#[from] serde_json::Error),
25
26    #[error("websocket: {0}")]
27    Ws(String),
28
29    #[error("rpc error {code}: {message}")]
30    Rpc { code: i64, message: String },
31
32    #[error("session closed")]
33    Closed,
34}
35
36pub type Result<T> = std::result::Result<T, Error>;