1use thiserror::Error as ThisError;
2
3#[derive(Debug, ThisError)]
4pub enum Error {
5 #[error("base64 解码失败: {0}")]
6 Base64Decode(#[from] base64::DecodeError),
7
8 #[error("UTF-8 错误: {0}")]
9 Utf8(#[from] std::string::FromUtf8Error),
10
11 #[error("非法浮点数 (NaN/Inf) 不被支持")]
12 IllegalFloat,
13
14 #[error("位流越界")]
15 BitstreamOutOfBounds,
16
17 #[error("Varint 溢出或截断")]
18 VarintError,
19
20 #[error("魔数不匹配")]
21 BadMagic,
22
23 #[error("版本不支持")]
24 BadVersion,
25
26 #[error("Huffman 构建/解码错误")]
27 HuffmanError,
28
29 #[error("值池缺失或未启用")]
30 PoolMissing,
31
32 #[error("值池引用 ID 越界")]
33 PoolIdOutOfRange,
34
35 #[error("未实现: {0}")]
36 Unimplemented(&'static str),
37}
38