use thiserror::Error;
#[derive(Debug, Clone, Copy, Error, PartialEq, Eq)]
#[non_exhaustive]
pub enum CborError {
#[error("CBOR: trailing bytes after top-level value")]
TrailingBytes,
#[error("CBOR: unexpected end of input")]
UnexpectedEnd,
#[error("CBOR: input too large")]
InputTooLarge,
#[error("CBOR: encoded output too large")]
OutputTooLarge,
#[error("CBOR: offset arithmetic overflow")]
OffsetOverflow,
#[error("CBOR: length does not fit in platform usize")]
LengthTooLarge,
#[error("CBOR: integer is outside supported i64 range")]
IntegerOutOfRange,
#[error("CBOR: non-canonical integer encoding")]
NonCanonicalInteger,
#[error("CBOR: truncated numeric argument")]
TruncatedArgument,
#[error("CBOR: truncated byte string")]
TruncatedBytes,
#[error("CBOR: invalid UTF-8 string")]
InvalidUtf8,
#[error("CBOR: map key must be text string")]
MapKeyMustBeString,
#[error("CBOR: duplicate map key")]
DuplicateMapKey,
#[error("CBOR: map keys out of canonical order")]
MapKeysOutOfOrder,
#[error("CBOR: simple value not allowed in DAG-CBOR")]
DisallowedSimpleValue {
value: u64,
},
#[error("CBOR: major type not allowed in DAG-CBOR")]
DisallowedMajorType {
major: u8,
},
#[error("CBOR: value too large or indefinite length not allowed")]
UnsupportedAdditionalInfo,
#[error("CBOR: declared container length exceeds remaining input")]
ContainerLengthExceedsInput,
#[error("CBOR: nesting depth limit exceeded")]
DepthExceeded,
}