blueprint_networking/
error.rs

1#[derive(Debug, thiserror::Error)]
2pub enum Error {
3    #[error("Network error: {0}")]
4    NetworkError(String),
5
6    #[error("Channel error: {0}")]
7    ChannelError(String),
8
9    #[error("Gossip error: {0}")]
10    GossipError(String),
11
12    #[error("Messaging error: {0}")]
13    MessagingError(String),
14
15    #[error("Round based error: {0}")]
16    RoundBasedError(String),
17
18    #[error("Serde JSON error: {0}")]
19    SerdeJson(#[from] serde_json::Error),
20
21    #[error("Connection error: {0}")]
22    ConnectionError(String),
23
24    #[error("Protocol error: {0}")]
25    ProtocolError(String),
26
27    #[error("Attempted to start a network with too many topics: {0}")]
28    TooManyTopics(usize),
29    #[error("All topics must be unique")]
30    DuplicateTopics,
31
32    #[error("No network found")]
33    NoNetworkFound,
34
35    #[error("Kademlia is not activated")]
36    KademliaNotActivated,
37
38    #[error("Other error: {0}")]
39    Other(String),
40
41    // std compat
42    #[error(transparent)]
43    Io(#[from] std::io::Error),
44
45    // libp2p compat
46    #[error(transparent)]
47    InvalidProtocol(#[from] libp2p::swarm::InvalidProtocol),
48
49    #[error(transparent)]
50    NoKnownPeers(#[from] libp2p::kad::NoKnownPeers),
51
52    #[error(transparent)]
53    Dial(#[from] libp2p::swarm::DialError),
54
55    #[error(transparent)]
56    Noise(#[from] libp2p::noise::Error),
57
58    #[error(transparent)]
59    Behaviour(#[from] libp2p::BehaviourBuilderError),
60
61    #[error(transparent)]
62    Subscription(#[from] libp2p::gossipsub::SubscriptionError),
63
64    #[error(transparent)]
65    TransportIo(#[from] libp2p::TransportError<std::io::Error>),
66
67    #[error(transparent)]
68    Multiaddr(#[from] libp2p::multiaddr::Error),
69
70    #[error(transparent)]
71    TokioSendError(#[from] tokio::sync::mpsc::error::SendError<String>),
72
73    #[error(transparent)]
74    CrossbeamSendError(#[from] crossbeam_channel::SendError<String>),
75}