了解 Live DSL 中的类型系统,有助于编写和调试 Live 代码。
LiveValue 中这些特殊的变体代表了 Live DSL 中支持的类型:
以下是一些重点类型的说明:
Str(&'static str)
: 静态字符串引用,编译时确定,存储在程序二进制中String(Arc<str>)
: 动态字符串,通过 Arc 智能指针包裹实现共享所有权InlineString
: 短字符串优化,直接内联存储而不使用堆内存编译器会根据上下文和使用场景自动选择最合适的字符串表示形式。
Root
: 代表 Live 文档的根节点,包含 id_resolve 来解析标识符Class
: 用于定义组件类,包含:
Close
: 表示一个区块的结束,配合 Object/Array 等使用Object
: 表示一个对象的开始Array
: 表示一个数组的开始DSL
: 用于嵌入领域特定语言(Domain Specific Language),如着色器代码
Import
: 用于导入模块,包含模块的路径和内容Clone
: 复制一个已有组件,包含:
Deref
: 解引用一个组件引用,包含:
Makepad Live 值在运行时会经过序列化和反序列化的过程。为此,Makepad 采用了 CBOR (Concise Binary Object Representation,简明二进制对象表示法) 格式。
CBOR
有几个关键特点使其非常适合 Makepad:
总的来说,CBOR
为 Makepad 提供了: