65 lines
2.6 KiB
Rust
65 lines
2.6 KiB
Rust
use libp2p::core::multiaddr;
|
|
use nym_sphinx::addressing::clients::RecipientFormattingError;
|
|
|
|
use super::message::SubstreamId;
|
|
|
|
#[derive(Debug, thiserror::Error)]
|
|
pub enum Error {
|
|
#[error("unimplemented")]
|
|
Unimplemented,
|
|
#[error("failed to format multiaddress from nym address")]
|
|
FailedToFormatMultiaddr(#[from] multiaddr::Error),
|
|
#[error("unexpected protocol in multiaddress")]
|
|
InvalidProtocolForMultiaddr,
|
|
#[error("failed to decode message")]
|
|
InvalidMessageBytes,
|
|
#[error("no connection found for ConnectionResponse")]
|
|
NoConnectionForResponse,
|
|
#[error("received ConnectionResponse but connection was already established")]
|
|
ConnectionAlreadyEstablished,
|
|
#[error("received None recipient in ConnectionRequest")]
|
|
NoneRecipientInConnectionRequest,
|
|
#[error("cannot handle connection request; already have connection with given ID")]
|
|
ConnectionIDExists,
|
|
#[error("no connection found for TransportMessage")]
|
|
NoConnectionForTransportMessage,
|
|
#[error("failed to decode ConnectionMessage; too short")]
|
|
ConnectionMessageBytesTooShort,
|
|
#[error("failed to decode ConnectionMessage; no recipient")]
|
|
ConnectionMessageBytesNoRecipient,
|
|
#[error("failed to decode ConnectionMessage; no peer ID")]
|
|
ConnectionMessageBytesNoPeerId,
|
|
#[error("invalid peer ID bytes")]
|
|
InvalidPeerIdBytes,
|
|
#[error("invalid recipient bytes")]
|
|
InvalidRecipientBytes(#[from] RecipientFormattingError),
|
|
#[error("invalid recipient prefix byte")]
|
|
InvalidRecipientPrefixByte,
|
|
#[error("failed to decode TransportMessage; too short")]
|
|
TransportMessageBytesTooShort,
|
|
#[error("failed to decode TransportMessage; invalid nonce")]
|
|
InvalidNonce,
|
|
#[error("invalid substream ID")]
|
|
InvalidSubstreamMessageBytes,
|
|
#[error("invalid substream message type byte")]
|
|
InvalidSubstreamMessageType,
|
|
#[error("substrean with given ID already exists")]
|
|
SubstreamIdExists(SubstreamId),
|
|
#[error("no substream found for given ID")]
|
|
SubstreamIdDoesNotExist(SubstreamId),
|
|
#[error("recv error: channel closed")]
|
|
OneshotRecvFailure(#[from] tokio::sync::oneshot::error::RecvError),
|
|
#[error("recv error: channel closed")]
|
|
RecvFailure,
|
|
#[error("outbound send error")]
|
|
OutboundSendFailure(String),
|
|
#[error("inbound send error")]
|
|
InboundSendFailure(String),
|
|
#[error("failed to send new connection; receiver dropped")]
|
|
ConnectionSendFailure,
|
|
#[error("failed to send initial TransportEvent::NewAddress")]
|
|
SendErrorTransportEvent,
|
|
#[error("dial timed out")]
|
|
DialTimeout(#[from] tokio::time::error::Elapsed),
|
|
}
|