Skip to main content

Crate sml_value

Crate sml_value 

Source
Expand description

SML 值模型 —— 整个 SML 生态的地基 crate,零依赖。

只承载三件事:

  1. Value:7 种类型的枚举(Null/Bool/Int/Float/Str/Array/Object);
  2. to_sml(feature sml):把 Value 渲染回 SML 文本;
  3. serde 桥接(feature serde):ValueSerialize/Deserialize

后两者必须留在本 crate:孤儿规则要求 impl Display for Valueimpl Serialize for ValueValue 同 crate,而它们分别依赖 to_sml 与类型描述函数。

§为什么要独立成 crate

解析器、契约、emit 后端、C-ABI 乃至 Crystalic(布局层)都只需要 Value。若 Value 与它们同 crate,下游就被迫拖入全部代码 (过程宏、C-ABI 导出、六个转译后端)。独立后:

sml-value = "0.5"                                   # 只要值模型(嵌入式)
sml-value = { version = "0.5", features = ["sml"] } # + 序列化回 SML

Enums§

Value

Constants§

MAX_VALUE_DEPTH
值嵌套深度上限(块 / 数组的递归层数)。

Functions§

describe_value
描述值的类型,用于错误信息。