error.rs (2928B)
1 #[cfg(not(feature = "std"))] 2 use alloc::string::String; 3 use core::fmt; 4 5 #[derive(Debug, Clone, PartialEq, Eq)] 6 pub enum RadrootsSimplexSmpProtoError { 7 UnexpectedEof, 8 9 InvalidTag(String), 10 11 UnsupportedTag(String), 12 13 InvalidUtf8(String), 14 15 InvalidBase64Url { field: &'static str, value: String }, 16 17 InvalidVersionRange(String), 18 19 InvalidUri(String), 20 21 InvalidHostList(String), 22 23 InvalidPort(String), 24 25 InvalidShortFieldLength(usize), 26 27 InvalidLargeFieldLength(usize), 28 29 InvalidListLength(usize), 30 31 InvalidCorrelationIdLength(usize), 32 33 InvalidNonceLength(usize), 34 35 InvalidMaybeTag(u8), 36 37 InvalidBoolEncoding(u8), 38 39 MissingField(&'static str), 40 41 TrailingBytes, 42 43 UnsupportedTransportVersion(u16), 44 } 45 46 impl fmt::Display for RadrootsSimplexSmpProtoError { 47 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 48 match self { 49 Self::UnexpectedEof => write!(f, "unexpected end of SMP input"), 50 Self::InvalidTag(tag) => write!(f, "invalid SMP ASCII tag `{tag}`"), 51 Self::UnsupportedTag(tag) => write!(f, "unsupported SMP tag `{tag}`"), 52 Self::InvalidUtf8(error) => write!(f, "invalid UTF-8 in SMP field: {error}"), 53 Self::InvalidBase64Url { field, value } => { 54 write!(f, "invalid base64url value for `{field}`: `{value}`") 55 } 56 Self::InvalidVersionRange(range) => write!(f, "invalid SMP version range `{range}`"), 57 Self::InvalidUri(uri) => write!(f, "invalid SMP URI: {uri}"), 58 Self::InvalidHostList(hosts) => write!(f, "invalid SMP host list `{hosts}`"), 59 Self::InvalidPort(port) => write!(f, "invalid SMP port `{port}`"), 60 Self::InvalidShortFieldLength(length) => { 61 write!(f, "invalid SMP short field length {length}") 62 } 63 Self::InvalidLargeFieldLength(length) => { 64 write!(f, "invalid SMP large field length {length}") 65 } 66 Self::InvalidListLength(length) => write!(f, "invalid SMP list length {length}"), 67 Self::InvalidCorrelationIdLength(length) => { 68 write!(f, "invalid SMP correlation id length {length}") 69 } 70 Self::InvalidNonceLength(length) => write!(f, "invalid SMP nonce length {length}"), 71 Self::InvalidMaybeTag(tag) => write!(f, "invalid SMP maybe tag `{tag}`"), 72 Self::InvalidBoolEncoding(value) => write!(f, "invalid SMP bool encoding `{value}`"), 73 Self::MissingField(field) => write!(f, "missing required SMP field `{field}`"), 74 Self::TrailingBytes => write!(f, "trailing SMP bytes after parse"), 75 Self::UnsupportedTransportVersion(version) => { 76 write!(f, "unsupported SMP transport version {version}") 77 } 78 } 79 } 80 } 81 82 #[cfg(feature = "std")] 83 impl std::error::Error for RadrootsSimplexSmpProtoError {}