use crate::{
bytes_io::BytesError,
compression::CompressionError,
crc::CrcMismatch,
frame::FrameError,
primitives::PrimitiveError,
record::RecordError,
string::StringError,
tagged::TaggedFieldError,
uuid::UuidError,
version::{UnsupportedFieldVersion, UnsupportedVersion},
};
pub type Result<T> = core::result::Result<T, ProtocolError>;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum ProtocolError {
#[error(transparent)]
Primitive(#[from] PrimitiveError),
#[error(transparent)]
Bytes(#[from] BytesError),
#[error(transparent)]
String(#[from] StringError),
#[error(transparent)]
Uuid(#[from] UuidError),
#[error(transparent)]
Tagged(#[from] TaggedFieldError),
#[error(transparent)]
Crc(#[from] CrcMismatch),
#[error(transparent)]
Frame(#[from] FrameError),
#[error(transparent)]
Record(#[from] RecordError),
#[error(transparent)]
Compression(#[from] CompressionError),
#[error(transparent)]
Version(#[from] UnsupportedVersion),
#[error(transparent)]
FieldVersion(#[from] UnsupportedFieldVersion),
}