Skip to main content

nam_ledger_proto/
error.rs

1//! Apdu error information for encoding / decoding etc.
2
3/// APDU error type
4#[derive(Debug, displaydoc::Display)]
5#[cfg_attr(feature = "std", derive(thiserror::Error))]
6pub enum ApduError {
7    /// Invalid buffer length
8    InvalidLength,
9
10    /// Invalid Utf8 string encoding
11    InvalidUtf8,
12
13    /// Invalid APDU encoding version {0}
14    InvalidVersion(u8),
15
16    /// Invalid APDU encoding
17    InvalidEncoding,
18
19    /// Invalid APDU variant
20    InvalidVariant,
21}
22
23impl From<encdec::Error> for ApduError {
24    fn from(value: encdec::Error) -> Self {
25        match value {
26            encdec::Error::Length => Self::InvalidLength,
27            encdec::Error::Utf8 => Self::InvalidUtf8,
28            encdec::Error::Variant => Self::InvalidVariant,
29        }
30    }
31}