#schema #settings #enums #macro #struct #serialization

settings-schema

为结构体和枚举生成GUI元数据的派生宏

3个版本 (重大变更)

0.2.0 2023年4月2日
0.1.0 2023年2月5日
0.0.1+alvr2022年3月21日

#554 in 配置

Download history 30/week @ 2024-04-02

每月下载量:525

MIT 许可协议

11KB
214

settings-schema-rs

用于从Rust结构体和枚举自动生成模式的派生宏。该模式可以序列化为JSON,或用于生成GUI。

示例

节点类型

  • 部分(来自 struct)。包含可以标记为高级设置的字段。不支持匿名字段。
  • 选择(来自 enum)。每个变体最多支持一个匿名字段。可以用带有 gui 属性的 "drop_down""button_group"gui 属性标记。
  • 可选(来自 Option)。当内容为 "默认" 或计算时使用 None
  • 开关。可以是带有数据的 EnabledDisabled。内容可以设置为高级。
  • 布尔值(来自 bool)。
  • 数字(来自 u/i 8/32/64/sizef32/f64)。属性 gui 可以是 textboxslider(带有子属性 minmaxsteplogarithmic)。
  • 文本(来自 String)。
  • 数组(来自 [X; N])。
  • 向量(来自 Vec<X>)。
  • 字典(来自 Vec<(String, X)>)。

gui这样的属性可以应用于复杂数型的字段,例如Vec<Switch<u64>>

不支持具有泛型类型参数的自定义类型。

自动创建新的*Default结构来存储默认值。这样做是为了允许指定给定枚举中所有变体的默认数据。

依赖项

~2–2.7MB
~61K SLoC