Merge "Create patch from LICENSE file" into main am: 0c4446f6e0 am: 0467683a3d

Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/toml_edit/+/3211620

Change-Id: I77998dc5317c66654156c662b6c82c523ba91625
Signed-off-by: Automerger Merge Worker <[email protected]>
tree: 2db7d45935e84ffa78e7331ee3f7ed6c1c50eff6
  1. examples/
  2. patches/
  3. src/
  4. tests/
  5. .cargo_vcs_info.json
  6. Android.bp
  7. Cargo.lock
  8. Cargo.toml
  9. Cargo.toml.orig
  10. cargo_embargo.json
  11. LICENSE
  12. LICENSE-APACHE
  13. LICENSE-MIT
  14. METADATA
  15. MODULE_LICENSE_APACHE2
  16. MODULE_LICENSE_MIT
  17. OWNERS
  18. README.md
README.md

toml_edit

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

This crate allows you to parse and modify toml documents, while preserving comments, spaces and relative order of items.

toml_edit is primarily tailored for cargo-edit needs.

Example

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);
}

Limitations

Things it does not preserve:

  • Order of dotted keys, see issue.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.