35 个版本
0.10.1 | 2024年6月5日 |
---|---|
0.10.0 | 2024年2月5日 |
0.9.2 | 2024年2月3日 |
0.9.1 | 2023年12月31日 |
0.3.1 | 2018年5月30日 |
在 过程宏 中排名 769
每月下载量 34,249
用于 48 个 crate(21 个直接使用)
90KB
2.5K SLoC
yaserde

专门针对XML的另一个序列化/反序列化器
目标
这个库将支持具有所有特定功能的XML的序列化和反序列化。
支持类型
- 结构体
- Vec
- 枚举
- 具有复杂类型的枚举
- Option
- 字符串
- bool
- 数字(u8, i8, u32, i32, f32, f64)
属性
- 属性:此字段被定义为属性
- 默认值:定义初始化字段的默认函数
- 扁平化:扁平化字段的全部内容
- 命名空间:定义字段的命名空间
- 重命名:能够重命名字段
- 根:重命名基本元素。仅在XML根处使用。
- 跳过序列化:从序列化输出中排除此字段。 更多信息...
- 跳过序列化如果:如果条件为真,则跳过此字段的序列化。 更多信息...
- 文本:此字段匹配文本内容
自定义反/序列化器
任何类型都可以定义自定义反序列化器和/或序列化器。要实现它,定义 YaDeserialize/YaSerialize 的实现
impl YaDeserialize for MyType {
fn deserialize<R: Read>(reader: &mut yaserde::de::Deserializer<R>) -> Result<Self, String> {
// deserializer code
}
}
impl YaSerialize for MyType {
fn serialize<W: Write>(&self, writer: &mut yaserde::ser::Serializer<W>) -> Result<(), String> {
// serializer code
}
}
依赖关系
~2MB
~42K SLoC