use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("buffer exceeds maximum size {0}")]
MaxBufferSize(usize),
#[error("encoding identity bytes are invalid")]
BadEncodingIdentity,
#[error("encoding version is not supported, expecting version {0} but got version {1}")]
EncodingVersion(u16, u16),
#[error("invalid encoding kind identifier {0}")]
EncodingKind(u8),
#[error(r#"noise protocol pattern mismatch, expecting "{0}""#)]
PatternMismatch(String),
#[error("encoding in PEM is invalid")]
BadKeypairPem,
#[error("not transport protocol state")]
NotTransportState,
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
Snow(#[from] snow::error::Error),
#[error(transparent)]
Pem(#[from] pem::PemError),
}