use amplify::IoError;
use strict_encoding::TlvError;
#[derive(Clone, PartialEq, Eq, Hash, Debug, Display, Error, From)]
#[display(doc_comments)]
pub enum Error {
#[from(std::io::Error)]
#[from(std::io::ErrorKind)]
#[display(inner)]
Io(IoError),
BigSizeNotCanonical,
BigSizeEof,
#[display("unexpected EOF while decoding BigSize value")]
BigSizeNoValue,
DataNotEntirelyConsumed,
#[display(inner)]
DataIntegrityError(String),
#[from]
#[display(inner)]
Tlv(TlvError),
EnumValueNotKnown(&'static str, usize),
TooLargeData(usize),
}