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>;