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

Download history 3072/week @ 2024-04-17 3048/week @ 2024-04-24 8551/week @ 2024-05-01 8990/week @ 2024-05-08 9274/week @ 2024-05-15 9540/week @ 2024-05-22 5795/week @ 2024-05-29 3735/week @ 2024-06-05 3184/week @ 2024-06-12 3127/week @ 2024-06-19 4590/week @ 2024-06-26 8629/week @ 2024-07-03 9097/week @ 2024-07-10 9879/week @ 2024-07-17 9726/week @ 2024-07-24 4014/week @ 2024-07-31

每月下载量 34,249
用于 48 crate(21 个直接使用)

MIT 许可证

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