1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use thiserror::Error;
#[derive(Error, Debug, PartialEq)]
pub enum Error {
#[error("buffer: full")]
ErrBufferFull,
#[error("buffer: closed")]
ErrBufferClosed,
#[error("buffer: short")]
ErrBufferShort,
#[error("packet too big")]
ErrPacketTooBig,
#[error("i/o timeout")]
ErrTimeout,
#[allow(non_camel_case_types)]
#[error("{0}")]
new(String),
}
impl Error {
pub fn equal(&self, err: &anyhow::Error) -> bool {
err.downcast_ref::<Self>().map_or(false, |e| e == self)
}
}