1 个不稳定版本
0.1.0 | 2024 年 1 月 31 日 |
---|
#2090 在 解析器实现
2,857 每月下载量
在 2 crates 中使用
15KB
295 代码行
questdb-confstr
格式
QuestDB 客户端使用的配置字符串格式解析器。
格式如下
service::key1=value1;key2=value2;key3=value3;
一些规则
- 最后一个分号是必需的。
- 服务名称和键是区分大小写的。
- 键是 ASCII 字符串,可以包含下划线。
- 值是区分大小写的 Unicode 字符串,可以包含任何字符,
- 除了控制字符 (
0x00..=0x1f
和0x7f..=0x9f
)。 - 如果值中出现分号
;
,这些将作为双分号;;
转义。
- 除了控制字符 (
语法
conf_str ::= service "::" params | service
service ::= identifier
params ::= param (";" param)* ";"
param ::= key "=" value
key ::= identifier
value ::= { value_char }
identifier ::= alpha_num_under { alpha_num_under }
alpha_num_under ::= "a".."z" | "A".."Z" | "0".."9" | "_"
value_char ::= non_semicolon_char | escaped_semicolon
escaped_semicolon ::= ";;"
non_semicolon_char ::= ? any unicode character except ';', 0x00..=0x1f and 0x7f..=0x9f ?
用法
将依赖项添加到 Cargo.toml
cargo add questdb-confstr
用法
使用 parse_conf_str
函数将配置解析为 ConfStr
结构体。
然后您可以通过 &str
访问服务名称,并将参数作为 &HashMap<String, String>
。
我们使用它的地方
我们在我们的 Rust, C, C++ 和 Python 客户端中使用此配置解析格式。
我们还用它来配置数据库复制的对象存储 核心复制设置。