init
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
//! Error types for the federation-net library.
|
||||
|
||||
use iroh::EndpointId;
|
||||
|
||||
/// Convenient result alias used across the library.
|
||||
pub type Result<T, E = NetworkError> = std::result::Result<T, E>;
|
||||
|
||||
/// All errors that can be returned by the public API of this library.
|
||||
#[derive(Debug, thiserror::Error)]
|
||||
#[non_exhaustive]
|
||||
pub enum NetworkError {
|
||||
/// The provided [`crate::NetworkConfig`] is invalid.
|
||||
#[error("invalid configuration: {0}")]
|
||||
InvalidConfig(String),
|
||||
|
||||
/// Loading or persisting the peer identity failed.
|
||||
#[error("identity error: {0}")]
|
||||
Identity(String),
|
||||
|
||||
/// A peer ticket could not be parsed or validated.
|
||||
#[error("invalid ticket: {0}")]
|
||||
InvalidTicket(String),
|
||||
|
||||
/// The remote peer belongs to a different network.
|
||||
#[error("network id mismatch")]
|
||||
NetworkMismatch,
|
||||
|
||||
/// The remote peer uses an incompatible message schema.
|
||||
#[error("schema id mismatch")]
|
||||
SchemaMismatch,
|
||||
|
||||
/// The remote peer speaks an unsupported protocol version.
|
||||
#[error("unsupported protocol version")]
|
||||
UnsupportedProtocolVersion,
|
||||
|
||||
/// The remote peer rejected the handshake as malformed.
|
||||
#[error("handshake rejected as invalid by remote peer")]
|
||||
HandshakeRejected,
|
||||
|
||||
/// No active connection to the given peer exists.
|
||||
#[error("peer is not connected: {0}")]
|
||||
PeerNotConnected(EndpointId),
|
||||
|
||||
/// A message exceeds the configured maximum size.
|
||||
#[error("message exceeds maximum size")]
|
||||
MessageTooLarge,
|
||||
|
||||
/// The operation did not complete within the configured timeout.
|
||||
#[error("request timed out")]
|
||||
Timeout,
|
||||
|
||||
/// Encoding or decoding a wire payload failed.
|
||||
#[error("serialization error: {0}")]
|
||||
Serialization(String),
|
||||
|
||||
/// The underlying Iroh transport reported an error.
|
||||
#[error("transport error: {0}")]
|
||||
Transport(String),
|
||||
|
||||
/// The remote peer rejected a message.
|
||||
#[error("message rejected by peer: {0}")]
|
||||
MessageRejected(String),
|
||||
|
||||
/// The engine is shutting down and no longer accepts operations.
|
||||
#[error("engine is shutting down")]
|
||||
ShuttingDown,
|
||||
}
|
||||
Reference in New Issue
Block a user