qubit_codec_misc/
base64_error_kind.rs1use ::base64::DecodeError;
11
12#[derive(Debug, Clone, Copy, PartialEq, Eq)]
14pub enum Base64ErrorKind {
15 InvalidByte,
17 InvalidLength,
19 InvalidLastSymbol,
21 InvalidPadding,
23}
24
25impl Base64ErrorKind {
26 #[inline]
28 pub(crate) const fn from_decode_error(error: &DecodeError) -> Self {
29 match error {
30 DecodeError::InvalidByte(_, _) => Self::InvalidByte,
31 DecodeError::InvalidLength(_) => Self::InvalidLength,
32 DecodeError::InvalidLastSymbol { .. } => Self::InvalidLastSymbol,
33 DecodeError::InvalidPadding => Self::InvalidPadding,
34 }
35 }
36
37 #[inline]
39 pub(crate) const fn input_index(error: &DecodeError) -> Option<usize> {
40 match error {
41 DecodeError::InvalidByte(index, _)
42 | DecodeError::InvalidLastSymbol { offset: index, .. } => {
43 Some(*index)
44 }
45 DecodeError::InvalidLength(_) | DecodeError::InvalidPadding => None,
46 }
47 }
48
49 #[inline]
51 pub(crate) const fn symbol(error: &DecodeError) -> Option<u8> {
52 match error {
53 DecodeError::InvalidByte(_, symbol)
54 | DecodeError::InvalidLastSymbol { symbol, .. } => Some(*symbol),
55 DecodeError::InvalidLength(_) | DecodeError::InvalidPadding => None,
56 }
57 }
58
59 #[inline]
62 pub(crate) const fn input_length(error: &DecodeError) -> Option<usize> {
63 match error {
64 DecodeError::InvalidLength(length) => Some(*length),
65 DecodeError::InvalidByte(_, _)
66 | DecodeError::InvalidLastSymbol { .. }
67 | DecodeError::InvalidPadding => None,
68 }
69 }
70}