1use core::fmt;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
10#[non_exhaustive]
11pub enum Error {
12 UnknownAlgorithm,
14 UnknownOid,
16 InvalidOid(&'static str),
18 InvalidOidBytes(&'static str),
20 UnknownJoseAlgorithm,
22 UnknownCoseAlgorithm(i32),
24}
25
26impl fmt::Display for Error {
27 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
28 match self {
29 Error::UnknownAlgorithm => write!(f, "unknown algorithm"),
30 Error::UnknownOid => write!(f, "unknown OID"),
31 Error::InvalidOid(msg) => write!(f, "invalid OID: {}", msg),
32 Error::InvalidOidBytes(msg) => write!(f, "invalid OID bytes: {}", msg),
33 Error::UnknownJoseAlgorithm => write!(f, "unknown JOSE algorithm"),
34 Error::UnknownCoseAlgorithm(n) => write!(f, "unknown COSE algorithm: {}", n),
35 }
36 }
37}
38
39#[cfg(feature = "std")]
40impl std::error::Error for Error {}
41
42pub type Result<T> = core::result::Result<T, Error>;