Expand description
SML 值模型 —— 整个 SML 生态的地基 crate,零依赖。
只承载三件事:
Value:7 种类型的枚举(Null/Bool/Int/Float/Str/Array/Object);to_sml(featuresml):把Value渲染回 SML 文本;- serde 桥接(feature
serde):Value的Serialize/Deserialize。
后两者必须留在本 crate:孤儿规则要求 impl Display for Value、
impl Serialize for Value 与 Value 同 crate,而它们分别依赖
to_sml 与类型描述函数。
§为什么要独立成 crate
解析器、契约、emit 后端、C-ABI 乃至 Crystalic(布局层)都只需要
Value。若 Value 与它们同 crate,下游就被迫拖入全部代码
(过程宏、C-ABI 导出、六个转译后端)。独立后:
sml-value = "0.5" # 只要值模型(嵌入式)
sml-value = { version = "0.5", features = ["sml"] } # + 序列化回 SMLEnums§
Constants§
- MAX_
VALUE_ DEPTH - 值嵌套深度上限(块 / 数组的递归层数)。
Functions§
- describe_
value - 描述值的类型,用于错误信息。