wotbreplay_parser/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum Error {
5    #[error("ZIP error")]
6    ZipError(#[from] zip::result::ZipError),
7
8    #[error("Protocol Buffers error")]
9    ProtobufError(#[from] prost::DecodeError),
10
11    #[error("Pickle error")]
12    PickleError(#[from] serde_pickle::Error),
13
14    #[error("I/O error")]
15    IoError(#[from] std::io::Error),
16
17    #[error("UTF-8 error")]
18    StringDecodeError(#[from] std::string::FromUtf8Error),
19
20    #[cfg(feature = "meta")]
21    #[error("JSON error")]
22    JsonError(#[from] serde_json::Error),
23
24    #[error("invalid magic: {actual:#X}, expected: {expected:#X}")]
25    InvalidMagic { expected: u32, actual: u32 },
26
27    #[error("failed to parse type {type_} packet's payload at replay time {clock_secs}s")]
28    PacketPayloadParsingError {
29        source: Box<Error>,
30        type_: u32,
31        clock_secs: f32,
32    },
33}