lazy_db/lazy_type/
converter.rs

1use super::*;
2use crate::LDBError;
3use std::convert::TryFrom;
4
5
6impl TryFrom<u8> for LazyType {
7    type Error = LDBError;
8
9    fn try_from(byte: u8) -> Result<Self, Self::Error> {
10        use LazyType::*;
11        Ok(match byte {
12            0 => Void,
13            1 => String,
14            2 => Binary,
15            3 => I8,
16            4 => I16,
17            5 => I32,
18            6 => I64,
19            7 => I128,
20            8 => U8,
21            9 => U16,
22            10 => U32,
23            11 => U64,
24            12 => U128,
25            13 => F32,
26            14 => F64,
27            15 => True,
28            16 => False,
29            17 => Link,
30            18 => Array,
31            _ => return Err(LDBError::InvalidLazyType(byte)),
32        })
33    }
34}
35
36impl From<LazyType> for u8 {
37    fn from(value: LazyType) -> Self {
38        use LazyType::*;
39        match value {
40            Void => 0,
41            String => 1,
42            Binary => 2,
43            I8 => 3,
44            I16 => 4,
45            I32 => 5,
46            I64 => 6,
47            I128 => 7,
48            U8 => 8,
49            U16 => 9,
50            U32 => 10,
51            U64 => 11,
52            U128 => 12,
53            F32 => 13,
54            F64 => 14,
55            True => 15,
56            False => 16,
57            Link => 17,
58            Array => 18,
59        }
60    }
61}