34 个版本
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 日 |
#91 在 解析器实现
22,846 每月下载量
用于 47 个 crate (25 直接)
25KB
532 代码行
yaserde
另一个针对 XML 的序列化/反序列化器
目标
此库将支持带有所有特定功能的 XML 串行化和反串行化。
支持类型
- 结构体
- Vec
- 枚举
- 具有复杂类型的枚举
- Option
- String
- bool
- 数字 (u8, i8, u32, i32, f32, f64)
属性
- attribute: 此字段定义为属性
- default: 定义初始化字段的默认函数
- flatten: 展平字段的内部内容
- namespace: 定义字段的命名空间
- rename: 能够重命名字段
- root: 重命名基本元素。仅用于 XML 根元素。
- skip_serializing: 将此字段从序列化输出中排除。 更多详情...
- skip_serializing_if: 如果条件为真,则跳过此字段的串行化。 更多详情...
- text: 此字段匹配文本内容
自定义 De/Ser-ializer
任何类型都可以定义自定义反序列化器和/或序列化器。要实现它,定义 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
}
}
依赖关系
~290–560KB
~12K SLoC