tightbeam/colony/cluster/
error.rs1use crate::transport::error::TransportError;
4use crate::{Errorizable, TightBeamError};
5
6#[derive(Errorizable, Debug)]
12pub enum ClusterError {
13 #[error("Lock poisoned")]
15 LockPoisoned,
16
17 #[error("Unknown servlet type: {:#?}")]
19 UnknownServletType(Vec<u8>),
20
21 #[error("No hives available for servlet type: {:#?}")]
23 NoHivesAvailable(Vec<u8>),
24
25 #[error("Connect failed")]
27 ConnectFailed,
28
29 #[error("No response")]
31 NoResponse,
32
33 #[error("Transport error: {0}")]
35 #[from]
36 #[source]
37 Transport(TransportError),
38
39 #[error("Frame error: {0}")]
41 #[from]
42 #[source]
43 Frame(TightBeamError),
44
45 #[error("Malformed response")]
47 MalformedResponse,
48
49 #[error("Registration failed")]
51 RegistrationFailed,
52
53 #[error("Invalid address: {:#?}")]
55 InvalidAddress(Vec<u8>),
56
57 #[error("Servlet not owned by hive")]
59 ServletNotOwned,
60
61 #[error("Signer does not match hive binding")]
63 SignerMismatch,
64}
65
66impl<T> From<std::sync::PoisonError<T>> for ClusterError {
67 fn from(_: std::sync::PoisonError<T>) -> Self {
68 ClusterError::LockPoisoned
69 }
70}