serde_jce/
types.rs

1use crate::{Error, Result};
2
3#[derive(Clone, Copy, PartialEq, Debug)]
4#[repr(u8)]
5pub enum JceType {
6    I8 = 0,
7    I16 = 1,
8    I32 = 2,
9    I64 = 3,
10    F32 = 4,
11    F64 = 5,
12    String1 = 6,
13    String4 = 7,
14    Map = 8,
15    List = 9,
16    StructBegin = 10,
17    StructEnd = 11,
18    Zero = 12,
19    Bytes = 13,
20}
21
22impl TryFrom<u8> for JceType {
23    type Error = Error;
24
25    fn try_from(value: u8) -> Result<Self> {
26        match value {
27            0 => Ok(JceType::I8),
28            1 => Ok(JceType::I16),
29            2 => Ok(JceType::I32),
30            3 => Ok(JceType::I64),
31            4 => Ok(JceType::F32),
32            5 => Ok(JceType::F64),
33            6 => Ok(JceType::String1),
34            7 => Ok(JceType::String4),
35            8 => Ok(JceType::Map),
36            9 => Ok(JceType::List),
37            10 => Ok(JceType::StructBegin),
38            11 => Ok(JceType::StructEnd),
39            12 => Ok(JceType::Zero),
40            13 => Ok(JceType::Bytes),
41            _ => Err(Error::UnknownJceType),
42        }
43    }
44}