#serialization #deserialize #bit #data

serialize_bits

位级序列化/反序列化

1个不稳定版本

0.1.0 2023年10月30日

#1680 in 编码


用于 2 crates

自定义许可证

22KB
665

Build & Tests Rust Docs

serialize-bits

Rust序列化/反序列化器:结构体到位,位到结构体。

该库已实现了以下类型的特质的实现

  • u8, u16, u32, u64, u128, usize
  • i8, i16, i32, i64, i128, isize
  • char
  • bool
  • String
  • Option
  • SocketAddr
  • Vec, VecDeque, LinkedList
  • HashSet, BTreeSet
  • BinaryHeap
  • HashMap<K, V>, BTreeMap<K, V>

序列化

实现SerializerData特质的接口。

示例

impl SerializerData for String {
    fn to_data(&self) -> Vec<u8> {
        let mut res = Vec::new();
        res.append(&mut self.len().to_data());
        res.append(&mut self.as_bytes().to_vec());
        res
    }
}

反序列化

实现DeserializerData特质的接口。

示例

impl DeserializerData for String {
    fn from_data(data: &Vec<u8>, index: usize) -> (Self, usize)
    where
        Self: Sized,
    {
        let (size, index) = usize::from_data(data, index);
        let list = sub("String", data, index, size);
        (String::from_utf8(list).unwrap(), index + size)
    }
}

无运行时依赖