iso8583_codec_rs/
error.rs1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum Iso8583Error {
5 #[error("invalid MTI: {0}")]
6 InvalidMti(String),
7
8 #[error("invalid bitmap: {0}")]
9 InvalidBitmap(String),
10
11 #[error("field DE{de}: {message}")]
12 FieldError { de: u32, message: String },
13
14 #[error("unknown field DE{0}")]
15 UnknownField(u32),
16
17 #[error("encoding error: {0}")]
18 EncodingError(String),
19
20 #[error("padding error: {0}")]
21 PaddingError(String),
22
23 #[error("prefix error: {0}")]
24 PrefixError(String),
25
26 #[error("composite field error DE{de}: {message}")]
27 CompositeError { de: u32, message: String },
28
29 #[error("spec error: {0}")]
30 SpecError(String),
31
32 #[error("hex decode error: {0}")]
33 HexError(#[from] hex::FromHexError),
34
35 #[error("json error: {0}")]
36 JsonError(#[from] serde_json::Error),
37
38 #[error("data too short: expected at least {expected} bytes, got {actual}")]
39 DataTooShort { expected: usize, actual: usize },
40}
41
42pub type Result<T> = std::result::Result<T, Iso8583Error>;