use std::io;
use libp2p::{core::connection::ConnectionLimit, noise::NoiseError, Multiaddr, TransportError};
use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("config must have at least one known address")]
NoKnownAddress,
#[error("signing libp2p-noise static ID keypair failed: {0}")]
StaticKeypairSigning(NoiseError),
#[error("failed to listen on {address}: {error}")]
Listen {
address: Multiaddr,
error: TransportError<io::Error>,
},
#[error("failed to dial the peer on {address}: {error}")]
DialPeer {
address: Multiaddr,
error: ConnectionLimit,
},
#[error("failed to serialize: {0}")]
Serialization(bincode::ErrorKind),
#[error("failed to deserialize: {0}")]
Deserialization(bincode::ErrorKind),
#[error("message of {actual_size} bytes exceeds limit of {max_size} bytes")]
MessageTooLarge { max_size: u32, actual_size: u64 },
}