#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, thiserror::Error)]
pub enum Error {
#[error("crypto operation failed")]
CryptoFailed,
#[error("wrong magic bytes sequence")]
WrongMagic,
#[error("disco version other than 0")]
UnknownVersion,
#[error("message was too short")]
TooShort,
#[error("misaligned body while decoding")]
Alignment,
#[error("invalid value")]
Validity,
}
impl<A, S, V> From<zerocopy::ConvertError<A, S, V>> for Error {
fn from(value: zerocopy::ConvertError<A, S, V>) -> Self {
match value {
zerocopy::ConvertError::Size(..) => Error::TooShort,
zerocopy::ConvertError::Alignment(..) => Error::Alignment,
zerocopy::ConvertError::Validity(..) => Error::Validity,
}
}
}