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(index, _) => Some(*index),
43 DecodeError::InvalidLength(_) | DecodeError::InvalidPadding => None,
44 }
45 }
46
47 #[inline]
49 pub(crate) const fn symbol(error: &DecodeError) -> Option<u8> {
50 match error {
51 DecodeError::InvalidByte(_, symbol)
52 | DecodeError::InvalidLastSymbol(_, symbol) => Some(*symbol),
53 DecodeError::InvalidLength(_) | DecodeError::InvalidPadding => None,
54 }
55 }
56
57 #[inline]
60 pub(crate) const fn input_length(error: &DecodeError) -> Option<usize> {
61 match error {
62 DecodeError::InvalidLength(length) => Some(*length),
63 DecodeError::InvalidByte(_, _)
64 | DecodeError::InvalidLastSymbol(_, _)
65 | DecodeError::InvalidPadding => None,
66 }
67 }
68}