14 个版本
0.5.4 | 2024年4月1日 |
---|---|
0.5.3 | 2023年10月7日 |
0.5.1 | 2022年6月22日 |
0.5.0 | 2021年11月25日 |
0.1.0 | 2021年7月15日 |
#423 in 编码
用于 serde_gura
77KB
1.5K SLoC
Gura Rust 解析器
重要:如果您需要以更友好的方式使用 Gura,您可以使用 Serde Gura,它允许您轻松地进行序列化和反序列化。
此仓库包含 Rust 语言的 Gura(符合 1.0.0 版本)格式解析器的实现。
安装
在您的 Cargo.toml
中添加依赖项
[dependencies]
gura = "0.5.4"
使用方法
use gura::{dump, parse, GuraType};
fn main() {
let gura_string = r##"
# This is a Gura document.
title: "Gura Example"
an_object:
username: "Stephen"
pass: "Hawking"
# Line breaks are OK when inside arrays
hosts: [
"alpha",
"omega"
]"##;
// Parse: transforms a Gura string into a dictionary
let parsed = parse(&gura_string).unwrap();
// Debug and Display
// println!("{:#?}", parsed);
// println!("{}", parsed);
// Access a specific field
println!("Title -> {}", parsed["title"]);
// Iterate over structure
println!("\nHosts:");
if let GuraType::Array(hosts) = &parsed["hosts"] {
for host in hosts.iter() {
println!("Host -> {}", *host);
}
}
// Dump: transforms a dictionary into a Gura string
let string_again = dump(&parsed);
println!("\n+++++ Dump result +++++");
println!("{}", string_again);
}
贡献
所有类型的贡献都受欢迎!如果您想贡献,只需
- 分叉此仓库。
- 创建一个新分支并在其中引入您的更改。
- 发起拉取请求!
或者您也可以加入我们的 Discord 社区!
测试
要运行所有测试: cargo test
许可证
此仓库根据 MIT 许可证分发。
依赖项
~5.5MB
~90K SLoC