1use std::fmt::Display;
2
3#[derive(Debug)]
4pub enum Error {
5 TooLarge { require: usize, get: usize },
6 TooSmall { require: usize, get: usize },
7 FixSize { require: usize, get: usize },
8 Custom(Box<dyn std::error::Error>),
9}
10
11impl std::error::Error for Error {}
12
13impl Display for Error {
14 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
15 match self {
16 Error::TooLarge { require, get } => write!(
17 f,
18 "Out of Length Limit: require < {} but get {}",
19 require, get
20 ),
21 Error::TooSmall { require, get } => write!(
22 f,
23 "Out of Length Limit: require > {} but get {}",
24 require, get
25 ),
26 Error::FixSize { require, get } => {
27 write!(f, "require Size == {} but get {}", require, get)
28 }
29 Error::Custom(err) => write!(f,"custom Error: {}",err),
30 }
31 }
32}