1 个不稳定版本
0.1.0 | 2023年11月8日 |
---|
#27 在 #improved
392 每月下载量
用于 3 crates
17KB
423 行
abomonation_derive_ng
Abomonation crate 的 derive 宏实现。从 mystor 的原始 abomonation_derive
crate 分支并改进而来。
此 crate 为应使用 abomonation crate 可序列化的类型提供定制的 derive 宏 #[derive(Abomonation)]
。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
abomonation_derive_ng = "0.1"
abomonation = "0.5"
然后,在您的类型上 derive Abomonation
#[macro_use]
extern crate abomonation_derive_ng;
extern crate abomonation;
use abomonation::Abomonation;
#[derive(Abomonation, PartialEq, Debug)]
struct MyStruct {
a: u64,
b: String,
c: Vec<u8>,
}
// Now you can use `MyStruct` with `abomonation`'s `encode` and `decode`.
属性
#[abomonation_omit_bounds]
: 跳过为 Abomonation trait 生成自动 trait bound。#[abomonation_bounds(Trait1, Trait2)]
: 添加自定义 trait bound。#[abomonate_with = "path::to::function"]
: 指定用于序列化的自定义方法。#[abomonation_skip]
: 序列化时跳过字段。
限制
该库目前不支持联合类型。由于abomonation
序列化技术的特性,必须使用unsafe
。
安全性
此库依赖于与abomonation
相同的非安全序列化策略,因此同样存在相同的注意事项。它不适用于未知的输入,并需要在使用时谨慎操作。有关安全性问题和如何使用此库的详细信息,请参阅abomonation文档。
许可证
本项目采用MIT许可证,与原始的abomonation-derive
库相同。
依赖关系
~255–700KB
~17K SLoC