1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
//! Error type for the peer library.
use libp2p_tls::certificate::GenError;
use thiserror::Error;
/// Errors generated by the peer library.
#[derive(Debug, Error)]
pub enum Error {
/// Error generated when listening fails.
#[error("listen {0} failed: {1}")]
ListenFailed(String, String),
/// Error generated when dialing fails.
#[error("dial {0} failed")]
DialFailed(String),
/// Error generated when an inbound message fails.
#[error("outbound message failed: {0}")]
InboundFailure(String),
/// Error generated when an outbound message fails.
#[error("outbound message failed: {0}")]
OutboundFailure(String),
/// Error generated when an error occurs on an outbound connection.
#[error("outgoing connection error: {0}")]
OutgoingConnection(String),
/// Error generated when a multiaddr should contain a peer identifier.
#[error("expected peer multiaddr to contain peer ID")]
NoMultiAddrPeerId,
/// Error generated when a register operation is already running.
#[error("register is already running for the given namespace")]
RegisterRunning,
/// Error generated when a discover operation is already running.
#[error("discover is already running for the given namespace")]
DiscoverRunning,
/// Error generated by the standard I/O handling.
#[error(transparent)]
Io(#[from] std::io::Error),
/// Error generated attempting to parse a socket address.
#[error(transparent)]
AddrParse(#[from] std::net::AddrParseError),
/// Error generated by the hex library.
#[error(transparent)]
Hex(#[from] hex::FromHexError),
/// Error generated dialing a peer.
#[error(transparent)]
Dial(#[from] libp2p::swarm::DialError),
/// Error generated by the noise library.
#[error(transparent)]
Noise(#[from] libp2p::noise::Error),
/// Error generated by the multiaddr library.
#[error(transparent)]
Multiaddr(#[from] libp2p::multiaddr::Error),
/// Error generated parsing in the identity library.
#[error(transparent)]
IdentityParse(#[from] libp2p::identity::ParseError),
/// Error generated when by decoding an identity keypair.
#[error(transparent)]
IdentityDecoding(#[from] libp2p::identity::DecodingError),
/// Error generated when by the futures mpsc sender.
#[error(transparent)]
FutureMpscSend(#[from] futures::channel::mpsc::SendError),
/// Error generated when by the futures oneshot.
#[error(transparent)]
FutureOneshotCancel(#[from] futures::channel::oneshot::Canceled),
/// Error generated configuring the noise protocol for a swarm.
#[error(transparent)]
SwarmNoise(#[from] either::Either<GenError, libp2p_noise::Error>),
}