multibase/
error.rs

1use core::fmt;
2
3/// Type alias to use this library's [`Error`] type in a `Result`.
4pub type Result<T> = core::result::Result<T, Error>;
5
6/// Error types
7#[derive(PartialEq, Eq, Clone, Debug)]
8pub enum Error {
9    /// Unknown base code.
10    UnknownBase(char),
11    /// Invalid string.
12    InvalidBaseString,
13}
14
15impl fmt::Display for Error {
16    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
17        match self {
18            Error::UnknownBase(code) => write!(f, "Unknown base code: {}", code),
19            Error::InvalidBaseString => write!(f, "Invalid base string"),
20        }
21    }
22}
23
24#[cfg(feature = "std")]
25impl std::error::Error for Error {}
26
27impl From<base_x::DecodeError> for Error {
28    fn from(_: base_x::DecodeError) -> Self {
29        Self::InvalidBaseString
30    }
31}
32
33impl From<data_encoding::DecodeError> for Error {
34    fn from(_: data_encoding::DecodeError) -> Self {
35        Self::InvalidBaseString
36    }
37}