#fork #derive #default #debugging #serialization #nanoserde #makepad-tinyserde

nanoserde-derive

makepad-tinyserde derive的分支,没有外部依赖

24个版本

0.2.0-beta.02024年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

Download history 2823/week @ 2024-05-04 2991/week @ 2024-05-11 2608/week @ 2024-05-18 3879/week @ 2024-05-25 2985/week @ 2024-06-01 3562/week @ 2024-06-08 4252/week @ 2024-06-15 4358/week @ 2024-06-22 3402/week @ 2024-06-29 4099/week @ 2024-07-06 5221/week @ 2024-07-13 5801/week @ 2024-07-20 3791/week @ 2024-07-27 4557/week @ 2024-08-03 4801/week @ 2024-08-10 3514/week @ 2024-08-17

17,123 每月下载次数
45 个crate中使用 (通过 nanoserde)

MIT 许可

105KB
3K SLoC

nanoserde

Github Actions Crates.io version Documentation Discord chat

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

无运行时依赖

功能