#[derive(thiserror::Error, Debug, PartialEq, Eq, Clone, Copy)]
#[non_exhaustive]
pub enum Error {
#[error(transparent)]
Truncated(#[from] Truncated),
#[error(transparent)]
ExtraneousBytes(#[from] ExtraneousBytes),
#[error("deserialisation error: {0}")]
Deserialization(&'static str),
}
#[derive(thiserror::Error, Debug, PartialEq, Eq, Clone, Copy)]
#[error("object truncated (or not fully present)")]
pub struct Truncated;
#[rustfmt::skip]
#[derive(thiserror::Error, Debug, PartialEq, Eq, Clone, Copy)]
#[error("extra bytes at end of object")]
pub struct ExtraneousBytes;