9个版本
0.4.5 | 2024年6月29日 |
---|---|
0.4.4 |
|
0.3.1 |
|
0.2.1 | 2024年1月15日 |
0.1.2 | 2023年7月8日 |
#1081 in 编码
294 每月下载量
用于 2 crates
21KB
483 行
BeBytes
BeBytes是围绕BeBytes derive crate的特质包装器。
BeBytes Derive
Derive是一个过程宏crate,它提供了一个自定义 derive 宏,用于生成Rust中网络结构体的序列化和反序列化方法。该宏生成将结构体转换为字节表示(序列化)以及相反操作(反序列化)的代码,使用大端序。它旨在通过自动化Rust结构体和字节数组之间的转换来简化处理网络协议和消息格式的过程。
有关更多信息,请参阅BeBytes Derive crate。
使用方法
要使用BeBytes,将其添加到您的Cargo.toml
文件中的依赖项
[dependencies]
bebytes = "*"
然后,从bebytes_derive crate中导入BeBytes特质并为其结构体生成它
use bebytes::BeBytes;
#[derive(BeBytes)]
struct Dummy {
a: u8,
}
fn build_with_bebytes(input: impl BeBytes) -> Vec<u8> {
input.to_be_bytes()
}
fn build_from_bytes(input: &[u8]) -> Result<(Dummy, usize), Box<dyn std::error::Error>> {
Dummy::try_from_be_bytes(input)
}
BeBytes derive 宏将为您的结构体生成以下方法
try_from_be_bytes(&[u8]) -> Result<(Self, usize), Box<dyn std::error::Error>>
: 一个将字节切片转换为您的结构体实例的方法。它返回一个包含反序列化结构体和消耗的字节数的结果。to_be_bytes(&self) -> Vec<u8>
:将结构体转换为字节数据的方法。它返回一个包含序列化字节的Vec<u8>
。field_size() -> usize
:计算结构体大小(以字节为单位)的方法。
贡献
我只是在玩,但所有帮助都受到欢迎。
许可证
此项目受MIT许可证许可。
依赖项
~275–730KB
~17K SLoC