1use core::fmt::{self, Display};
2
3#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4pub enum Error {
5 SignatureMismatch,
7 WeakPublicKey,
9 InvalidPublicKey,
11 InvalidSecretKey,
13 InvalidSignature,
15 InvalidSeed,
17 InvalidBlind,
19 InvalidNoise,
21 ParseError,
23 NonCanonical,
25}
26
27#[cfg(feature = "std")]
28impl std::error::Error for Error {}
29
30impl Display for Error {
31 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32 match self {
33 Error::SignatureMismatch => write!(f, "Signature doesn't verify"),
34 Error::WeakPublicKey => write!(f, "Weak public key"),
35 Error::InvalidPublicKey => write!(f, "Invalid public key"),
36 Error::InvalidSecretKey => write!(f, "Invalid secret key"),
37 Error::InvalidSignature => write!(f, "Invalid signature"),
38 Error::InvalidSeed => write!(f, "Invalid seed length"),
39 Error::InvalidBlind => write!(f, "Invalid blind length"),
40 Error::InvalidNoise => write!(f, "Invalid noise length"),
41 Error::ParseError => write!(f, "Parse error"),
42 Error::NonCanonical => write!(f, "Non-canonical encoding"),
43 }
44 }
45}