tightbeam/colony/hive/
error.rs1use crate::transport::error::TransportError;
4use crate::{Errorizable, TightBeamError};
5
6#[derive(Errorizable, Debug)]
12pub enum HiveError {
13 #[error("Invalid servlet ID: {:#?}")]
15 InvalidServletId(Vec<u8>),
16
17 #[error("IO error: {0}")]
19 #[from]
20 #[source]
21 Io(std::io::Error),
22
23 #[error("Transport error: {0}")]
25 #[from]
26 #[source]
27 Transport(TransportError),
28
29 #[error("Frame error: {0}")]
31 #[source]
32 Frame(Box<TightBeamError>),
33
34 #[error("Message emission failed")]
36 EmitFailed,
37
38 #[error("No response received")]
40 NoResponse,
41
42 #[error("Message decoding failed")]
44 DecodeFailed,
45
46 #[error("Lock poisoned")]
48 LockPoisoned,
49
50 #[error("No trusted keys configured")]
52 NoTrustedKeys,
53}
54
55impl<T> From<std::sync::PoisonError<T>> for HiveError {
56 fn from(_: std::sync::PoisonError<T>) -> Self {
57 HiveError::LockPoisoned
58 }
59}
60
61impl From<TightBeamError> for HiveError {
64 fn from(e: TightBeamError) -> Self {
65 HiveError::Frame(Box::new(e))
66 }
67}