92 个版本

0.22.20 2024 年 7 月 31 日
0.22.14 2024 年 6 月 3 日
0.22.9 2024 年 3 月 20 日
0.21.0 2023 年 11 月 6 日
0.1.1 2017 年 12 月 17 日

#96解析器实现

Download history 2053134/week @ 2024-05-03 2134896/week @ 2024-05-10 2147628/week @ 2024-05-17 2072114/week @ 2024-05-24 2312728/week @ 2024-05-31 2226372/week @ 2024-06-07 2214263/week @ 2024-06-14 2229247/week @ 2024-06-21 2119459/week @ 2024-06-28 2305403/week @ 2024-07-05 2406826/week @ 2024-07-12 2487143/week @ 2024-07-19 2578851/week @ 2024-07-26 2563476/week @ 2024-08-02 2655701/week @ 2024-08-09 2663976/week @ 2024-08-16

每月 10,939,071 次下载
9,080 个crate中使用 (362 个直接使用)

MIT/Apache

385KB
9K SLoC

toml_edit

Build Status codecov crates.io docs Join the chat at https://gitter.im/toml_edit/Lobby

此crate允许您解析和修改TOML文档,同时保留注释、空格 和项的相对顺序

toml_edit 主要针对 cargo-edit 的需求。

示例

use toml_edit::{Document, value};

fn main() {
    let toml = r#"
"hello" = 'toml!' # comment
['a'.b]
    "#;
    let mut doc = toml.parse::<Document>().expect("invalid doc");
    assert_eq!(doc.to_string(), toml);
    // let's add a new key/value pair inside a.b: c = {d = "hello"}
    doc["a"]["b"]["c"]["d"] = value("hello");
    // autoformat inline table a.b.c: { d = "hello" }
    doc["a"]["b"]["c"].as_inline_table_mut().map(|t| t.fmt());
    let expected = r#"
"hello" = 'toml!' # comment
['a'.b]
c = { d = "hello" }
    "#;
    assert_eq!(doc.to_string(), expected);
}

限制

它不保留的事情

  • 点状键的顺序,见 问题

许可证

许可协议为以下之一

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您提交给作品的所有有意贡献均应按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~0.7–1.3MB
~23K SLoC