24个版本
0.2.0-beta.0 | 2024年7月28日 |
---|---|
0.1.22 | 2024年1月25日 |
0.1.21 | 2023年9月1日 |
0.1.20 | 2023年7月22日 |
0.1.12 | 2020年7月20日 |
102 在 #debug
17,123 每月下载次数
在 45 个crate中使用 (通过 nanoserde)
105KB
3K SLoC
nanoserde
从https://crates.io/crates/makepad-tinyserde中衍生出来的版本,移除了所有依赖。构建树中不再需要syn、proc_macro2或quote!
> cargo tree
nanoserde v0.1.0 (/../nanoserde)
└── nanoserde-derive v0.1.0 (/../nanoserde/derive)
示例
use nanoserde::{DeJson, SerJson};
#[derive(Clone, Debug, Default, DeJson, SerJson)]
pub struct Property {
pub name: String,
#[nserde(default)]
pub value: String,
#[nserde(rename = "type")]
pub ty: String,
}
更多示例请查看tests
特性支持矩阵
特性 | json | bin | ron | toml |
---|---|---|---|---|
序列化 | 是 | 是 | 是 | 否 |
反序列化 | 是 | 是 | 是 | 否 |
容器:Struct | 是 | 是 | 是 | 否 |
容器:Tuple Struct | 否 | 是 | 是 | 否 |
容器:Enum | 是 | 是 | 是 | 否 |
字段:std::collections::HashMap |
是 | 是 | 是 | 否 |
字段:std::vec::Vec |
是 | 是 | 是 | 否 |
字段:Option |
是 | 是 | 是 | 否 |
字段:i* /f* /String /T: De*/Ser* |
是 | 是 | 是 | 否 |
字段属性:#[nserde(default)] |
是 | 否 | 是 | 否 |
字段属性:#[nserde(rename = "")] |
是 | 是 | 是 | 否 |
字段属性:#[nserde(proxy = "")] |
否 | 是 | 否 | 否 |
容器属性:#[nserde(default)] |
是 | 否 | 是 | 否 |
容器属性:#[nserde(rename = "")] |
是 | 是 | 是 | 否 |
容器属性:#[nserde(proxy = "")] |
是 | 是 | 否 | 否 |
容器属性:#[nserde(transparent)] |
是 | 否 | 否 | 否 |
crate功能
所有功能默认启用。要仅启用特定格式,使用以下方式导入nanoserde:
nanoserde = { version = "*", default-features = false, features = ["std", "{format feature name}"] }
在你的 Cargo.toml
中,并添加以下一个或多个crate功能
格式 | 功能名称 |
---|---|
二进制 | binary |
JSON | json |
RON | ron |
TOML | toml |