2 个不稳定版本
0.13.0 | 2023 年 10 月 26 日 |
---|---|
0.11.3 |
|
0.10.1 |
|
0.7.0 |
|
0.1.9 |
|
#1708 在 编码 中排名
1,785 次每月下载
在 8 个crate(6 个直接) 中使用
49KB
1.5K SLoC
simd-json-derive
为高性能 JSON 序列化和反序列化提供派生工具。
用法
#[derive(Serialize, Deserialize, Debug)]
#[simd_json(deny_unknown_fields, rename_all = "camelCase")]
struct MyStruct {
first_field: String,
#[simd_json(rename = "foo")]
second_field: Option<usize>
}
fn main -> Result<(), simd_json::Error> {
let my_struct = MyStruct {
first_field: "i am first".to_string(),
second_field: None
}
println!("Before: {my_struct:?}");
let mut json_string = my_struct.json_string()?;
let deserialized = MyStruct::from_str(json_string.as_mut_str())?;
println!("After: {deserialized:?}");
}
支持的属性
支持为 #[simd_json(...)]
和为了兼容性,也支持 #[serde(...)]
,并且遵循与 serde 相同的命名约定。
对于字段
rename = "new_name"
- 重命名字段
对于结构体
rename_all = "camelCase"
- 根据规则重命名所有(未其他重命名的)字段,当前支持camelCase
deny_unknown_fields
- 遇到未知字段时出错
依赖关系
~6MB
~105K SLoC