5 个不稳定版本
0.3.0 | 2021年7月2日 |
---|---|
0.2.2 | 2020年10月15日 |
0.2.1 | 2020年10月10日 |
0.2.0 | 2020年10月8日 |
0.1.0 | 2020年10月8日 |
#1564 in 编码
10KB
84 代码行
概述
为实现 Serialize
/Deserialize
的类型提供包装器,以自动实现 Encode
/Decode
。
示例
extern crate alloc;
use alloc::string::String;
use parity_scale_codec::{Decode, Encode};
use serde::{Deserialize, Serialize};
use serde_scale_wrap::Wrap;
#[derive(Debug, Deserialize, PartialEq, Serialize)]
struct Foo {
x: i32,
s: String,
}
let original = Foo { x: 3, s: "foo".into() };
let serialized = Wrap(&original).encode();
let Wrap(deserialized) = Wrap::<Foo>::decode(&mut &*serialized).unwrap();
assert_eq!(original, deserialized);
一致性
⚠ Option<bool>
根据 SCALE 编码序列化为单个字节,这与 Encode::encode
的结果不同 -- Encode
期望使用 OptionBool
代替。
功能
no_std
通过禁用默认功能得到支持。
std
: 支持std
。默认启用。
🔖 构建依赖和宏处理程序中启用的功能也适用于常规依赖项,这可能导致 serde
在不希望时具有其 std
功能。Nightly cargo 通过 -Z features=host_dep
或以下在 .cargo/config
中防止这种情况发生
[unstable]
features = ["host_dep"]
例如,当依赖于 parity-scale-codec-derive
时会出现此问题。
贡献
所有贡献都必须在 zlib 许可证 下进行许可。
相关项目
- parity-scale-codec: 参考Rust实现
- serde-scale: 与
serde
一起使用 SCALE 编码
依赖关系
~1.5–2.1MB
~50K SLoC