1use std::fmt;
2
3#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
5pub enum Error {
6 TooShort,
8 TooLong,
10 InvalidChar,
12 InvalidZero,
14 TimestampOutOfRange,
16 RandomnessOutOfRange,
18}
19
20impl std::error::Error for Error {}
21
22impl fmt::Display for Error {
23 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
25 let message = match *self {
26 Self::TooShort => "string is too short",
27 Self::TooLong => "string is too long",
28 Self::InvalidChar => "string contains an invalid character",
29 Self::InvalidZero => "invalid zero value",
30 Self::TimestampOutOfRange => "timestamp is too large",
31 Self::RandomnessOutOfRange => "randomness is too large",
32 };
33 write!(f, "{message}")
34 }
35}