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
26
27
28
29
30
31
32
33
use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
#[error("Invalid character: {0}")]
InvalidChar(u32),
#[error("Invalid enum variant: {0}")]
InvalidEnumVariant(u32),
#[error("Invalid length: {0}")]
InvalidLength(u64),
#[error("Invalid UTF-8 string: {0}")]
InvalidUtf8String(#[from] std::string::FromUtf8Error),
#[error("Partially filled array")]
PartiallyFilledArray,
#[error("A non-zero value is zero")]
NonZeroError,
#[error("CString contains trailing 0 byte: {0}")]
NulError(#[from] std::ffi::NulError),
}
pub type Result<T> = core::result::Result<T, Error>;