1 个不稳定版本
0.1.0 | 2024年6月26日 |
---|
#983 在 Rust 模式
81 每月下载次数
在 17 crates 中使用
155KB
3.5K SLoC
SwimOS 模型
此模型是 SwimOS 序列化模型的通用表示。任何有效的序列化记录都可以反序列化为此 crate 中 Value
类型的实例。
Value 类型
SwimOS Value::Value
可以是以下任何一种类型。
- 一个缺失的值(表示为
Value::Extant
)。 - 以下集合中的原始值
- 布尔值,表示为
Value::BooleanValue
- 整数。反序列化时,将根据整数的位数选择适当的 Rust 整数类型。
- 64位浮点数,表示为
Value::Float64Value
。 - UTF-8 字符串,表示为
Value::Text
。 - 字节数组(表示为
Value::Data
)。
- 由一系列属性(
Attr
)和项目列表(Item
)组成的记录。这表示为Value::Record
。
属性是一个带有UTF-8字符串标签的Value
。
项目可以是以下之一
- 一个值项目,它是
Value
的实例。这表示为Item::ValueItem
。 - 一个槽位项目,它是由两个
Value
组成的对,其中第一个被解释为键。这表示为Item::Slot
。
请注意,记录的属性和项目始终是有序的,尽管顺序可能并不总是重要的,例如,如果只包含槽位的记录用于表示映射。
可以使用record
和[macro@value
]宏来简化Value
实例的创建。
使用模型
在序列化或反序列化时使用模型,需要支持SwimOS模型的格式。SwimOS默认使用的格式是Recon标记语言,其示例可以在swimos_recon
包中找到。
依赖项
~5.5–7.5MB
~131K SLoC