2个版本
使用旧的Rust 2015
0.1.1 | 2017年9月14日 |
---|---|
0.1.0 | 2017年9月9日 |
2590 在 解析器实现
14KB
366 代码行
结构体(反)序列化
该包提供了一个非常简单的结构体(反)序列化方法。主要目的是帮助处理数据包。
功能
- derive(StructDeser)
- 处理字节序
- 关联常量
无std
用法
extern crate struct_deser;
#[macro_use]
extern crate struct_deser_derive;
// derive traits
#[derive(StructDeser, Debug, Eq, PartialEq)]
struct Packet {
// mark as big endian
// this is mandatory because u16 has multiple bytes
#[be]
version: u16,
// u8 goes without endianess attribute
ttl: u8,
// mark as little endian
#[le]
chksum: u32,
}
fn main() {
use struct_deser::{SerializedByteLen,FromBytes,IntoBytes};
let packet0 = Packet {
version: 1,
ttl: 42,
chksum: 47,
};
let mut bytes = [0; Packet::BYTE_LEN];
packet0.into_bytes(&mut bytes);
let packet1 = Packet::from_bytes(&bytes);
assert_eq!(packet0, packet1);
}
许可证
MITNFA
依赖项
~120KB