1个不稳定版本
0.1.0 | 2023年10月30日 |
---|
#1680 in 编码
用于 2 crates
22KB
665 行
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)
}
}