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

MIT 许可证

77KB
1.5K SLoC

Gura Rust 解析器

CI

重要:如果您需要以更友好的方式使用 Gura,您可以使用 Serde Gura,它允许您轻松地进行序列化和反序列化。

此仓库包含 Rust 语言的 Gura(符合 1.0.0 版本)格式解析器的实现。

文档 - Cargo

安装

在您的 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);
}

贡献

所有类型的贡献都受欢迎!如果您想贡献,只需

  1. 分叉此仓库。
  2. 创建一个新分支并在其中引入您的更改。
  3. 发起拉取请求!

或者您也可以加入我们的 Discord 社区

测试

要运行所有测试: cargo test

许可证

此仓库根据 MIT 许可证分发。

依赖项

~5.5MB
~90K SLoC