9个版本

0.1.8 2024年4月1日
0.1.7 2023年10月17日
0.1.5 2022年7月5日
0.1.4 2021年11月25日
0.1.0 2021年8月30日

#1384解析器实现

MIT 许可证

36KB
867

Serde Gura

CI

这个crate是一个Rust库,用于使用Serde序列化框架以及Gura文件格式中的数据。

这个库并没有重新实现Gura解析器;它使用的是gura-rs-parser,这是一个纯Rust实现的Gura 1.0.0版本。

文档 - Cargo

依赖

将以下依赖项添加到您的 Cargo.toml

[dependencies]
serde = "1.0"
serde_gura = "0.1.8"

如果您想使用 Serialize/Deserialize 特性,您必须在您的 Cargo.toml 中指定 derive 功能

[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_gura = "0.1.8"

使用Serde Gura

API文档可供参考,但基本思路是

use serde::{Deserialize, Serialize};
use serde_gura::Result;

#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct Database {
    ip: String,
    port: Vec<u16>,
    connection_max: u32,
    enabled: bool,
}

fn main() -> Result<()> {
    // You have some type.
    let database = Database {
        ip: "127.0.0.1".to_string(),
        port: vec![80, 8080],
        connection_max: 1200,
        enabled: true,
    };

    // Serialize it to a Gura string
    let database_str = serde_gura::to_string(&database)?;
    let expected = r#"
ip: "127.0.0.1"
port: [80, 8080]
connection_max: 1200
enabled: true
    "#;
    assert_eq!(database_str, expected.trim());

    // Deserialize it back to a Rust type
    let deserialized_database: Database = serde_gura::from_str(&database_str)?;
    assert_eq!(database, deserialized_database);

    Ok(())
}

许可证

Serde Gura根据MIT许可证条款分发。

依赖项

~6MB
~100K SLoC