1 个不稳定版本

0.1.0 2024年6月26日

#983Rust 模式

Download history 153/week @ 2024-06-24 25/week @ 2024-07-01 5/week @ 2024-07-08 35/week @ 2024-07-15 14/week @ 2024-07-22

81 每月下载次数
17 crates 中使用

Apache-2.0

155KB
3.5K SLoC

SwimOS 模型

此模型是 SwimOS 序列化模型的通用表示。任何有效的序列化记录都可以反序列化为此 crate 中 Value 类型的实例。

Value 类型

SwimOS Value::Value 可以是以下任何一种类型。

  • 一个缺失的值(表示为 Value::Extant)。
  • 以下集合中的原始值
  1. 布尔值,表示为 Value::BooleanValue
  2. 整数。反序列化时,将根据整数的位数选择适当的 Rust 整数类型。
  3. 64位浮点数,表示为 Value::Float64Value
  4. UTF-8 字符串,表示为 Value::Text
  5. 字节数组(表示为 Value::Data)。

属性是一个带有UTF-8字符串标签的Value

项目可以是以下之一

  • 一个值项目,它是Value的实例。这表示为Item::ValueItem
  • 一个槽位项目,它是由两个Value组成的对,其中第一个被解释为键。这表示为Item::Slot

请注意,记录的属性和项目始终是有序的,尽管顺序可能并不总是重要的,例如,如果只包含槽位的记录用于表示映射。

可以使用record和[macro@value]宏来简化Value实例的创建。

使用模型

在序列化或反序列化时使用模型,需要支持SwimOS模型的格式。SwimOS默认使用的格式是Recon标记语言,其示例可以在swimos_recon包中找到。

依赖项

~5.5–7.5MB
~131K SLoC