pub val TYPE_STRING: u8 = 0
pub val TYPE_INTEGER: u8 = 1
pub val TYPE_FLOAT: u8 = 2
pub val TYPE_BOOL: u8 = 3
pub val TYPE_ARRAY: u8 = 4
pub val TYPE_TABLE: u8 = 5
pub rec Value;
带标签的 TOML 值
tag:类型判别式(TYPE_*)
pub rec Array;
TOML 值的有序列表
items:指向 Value 数组的指针(使用 ptr 以打破递归) len:元素数量 cap:已分配容量
pub rec Table;
字符串键到 TOML 值的有序映射
keys:指向 str 数组的指针(与 values 平行) values:指向 Value 数组的指针 len:条目数量 cap:已分配容量
pub fun get(t: *Table, path: str) *Value;
在表中通过点号路径查找值
遍历每个点号分隔的片段以查找嵌套表。对于包含字面量点号的键,请使用 get_table() 然后通过 table_key() 迭代。
t:根表 path:点号分隔的键路径(例如 "project.name") ret:指向值的指针,如果未找到则为 nil
pub fun get_str(t: *Table, path: str) str;
通过点号路径查找字符串值
t:根表 path:点号分隔的键路径 ret:字符串值,如果未找到或类型错误则为 nil
pub fun get_int(t: *Table, path: str) Option[i64];
通过点号路径查找整数值
t:根表 path:点号分隔的键路径 ret:整数值,如果未找到或类型错误则为 None
pub fun get_float(t: *Table, path: str) Option[f64];
通过点号路径查找浮点值
t:根表 path:点号分隔的键路径 ret:浮点值,如果未找到或类型错误则为 None
pub fun get_bool(t: *Table, path: str) Option[bool];
通过点号路径查找布尔值
t:根表 path:点号分隔的键路径 ret:布尔值,如果未找到或类型错误则为 None
pub fun get_table(t: *Table, path: str) *Table;
通过点号路径查找子表
t:根表 path:点号分隔的键路径 ret:指向子表的指针,如果未找到或类型错误则为 nil
pub fun get_array(t: *Table, path: str) *Array;
通过点号路径查找数组
t:根表 path:点号分隔的键路径 ret:指向数组的指针,如果未找到或类型错误则为 nil
pub fun array_get(arr: *Array, index: usize) *Value;
通过索引从数组中获取值
arr:要索引的数组 index:元素索引 ret:指向值的指针,如果越界则为 nil
pub fun table_len(t: *Table) usize;
获取表中的条目数量
t:要查询的表 ret:键值对数量
pub fun table_key(t: *Table, index: usize) str;
通过位置索引获取键
t:要查询的表 index:位置(从 0 开始) ret:键字符串,如果越界则为 nil
pub fun table_value(t: *Table, index: usize) *Value;
通过位置索引获取值
t:要查询的表 index:位置(从 0 开始) ret:指向值的指针,如果越界则为 nil
pub fun array_len(arr: *Array) usize;
获取数组中的元素数量
arr:要查询的数组 ret:元素数量
pub fun parse(a: *Allocator, src: str) Result[Table, str];
将 TOML 文档解析为表树
支持 TOML 1.0:基本和字面量字符串(单行和多行)、整数(十进制、十六进制、八进制、二进制)、浮点数、布尔值、数组、表、内联表、表数组以及点号键。
a:所有内部分配的分配器 src:以空字符结尾的 TOML 源字符串 ret:根表,或错误消息