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解析器实现

Download history 9011/week @ 2024-05-02 9201/week @ 2024-05-09 9697/week @ 2024-05-16 9465/week @ 2024-05-23 5381/week @ 2024-05-30 3511/week @ 2024-06-06 3570/week @ 2024-06-13 3132/week @ 2024-06-20 5643/week @ 2024-06-27 8848/week @ 2024-07-04 9205/week @ 2024-07-11 9930/week @ 2024-07-18 9800/week @ 2024-07-25 3467/week @ 2024-08-01 3931/week @ 2024-08-08 4177/week @ 2024-08-15

22,846 每月下载量
用于 47 个 crate (25 直接)

MIT 许可证

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