24 个版本
0.9.1 | 2024 年 3 月 26 日 |
---|---|
0.9.0 | 2023 年 11 月 24 日 |
0.8.8 | 2020 年 2 月 4 日 |
0.8.6 | 2019 年 11 月 25 日 |
0.2.0 | 2015 年 11 月 2 日 |
138 在 解析器实现 中
每月 8,633 次下载
74KB
2K SLoC
ion
ion:高级 Ion 文件解析器
概述
ion
是一个用于解析 *.ion
文件的复杂解析器,用 Rust 编写,用于处理多种数据格式。这种格式非常适合配置和结构化数据,支持多种类型,如 String
、Integer (i64)
、Float (f64)
、Boolean
、Arrays
和 Dictionary
。
特性
- 支持多种数据类型:能够解析字符串、整数、浮点数、布尔值、数组和字典。
- 基于部分的组织:便于在具有不同结构的独立部分中组织数据。
- 高效的解析:针对解析复杂 Ion 文档的性能和可靠性进行了优化。
示例用法
以下示例展示了 *.ion
文件的可灵活性和结构
基本部分
[CONTRACT]
id = "HOTEL001"
name = "Hotel001"
currency = "EUR"
active = true
markets = ["DE", "PL"]
表格格式
[DEF.MEAL]
| code | description |
|------|-------------|
| RO | Room Only |
[DEF.ROOM]
| code | description | occ |
|------|-------------|----------------|
| SGL | Single | P1:2 A1:1 C0:1 |
| DBL | Double | P2:3 A2:2 C0:1 |
具有可能字段类型的基本部分
[CONTRACT]
country = "Poland" // String
markets = ["PL", "DE", "UK"] // Array
75042 = { // Dictionary
view = "SV" // String
loc = ["M", "B"] // Array
dist = { beach_km = 4.1 } // Dictionary
}
由几个部分构建的复杂文档
[CONTRACT]
country = "Poland"
markets = ["PL", "DE", "UK"]
75042 = {
view = "SV"
loc = ["M", "B"]
dist = { beach_km = 4.1 }
}
[RATE.PLAN]
| dates | code | description | rooms | rules |
|-------------------|------|----------------|-------------|-------|
| 20200512:20200514 | BAR | Best available | SGL,DBL,APP | |
| 20200601:20200614 | BBV | Best Bar View | DBL,APP | |
# A `key-value` and `table` section
[RATE.BASE]
enable = true
legend = {
UN = "unit night"
RO = "room only"
}
| dates | charge | room | occ | meal | amt |
|-------------------|--------|------|-----|------|--------|
| 20161122:20170131 | UN | APP | A2 | RO | 250.00 |
| 20161122:20170131 | UN | APP | A4 | RO | 450.00 |
| 20161122:20170131 | UN | APP | A6 | RO | 650.00 |
许可证
在 MIT 许可证下授权。