| commit | f8dc726a2a685324edd966d8876c38e954cebdab | [log] [tgz] |
|---|---|---|
| author | Maciej Żenczykowski <[email protected]> | Thu Sep 28 00:42:31 2023 +0000 |
| committer | Automerger Merge Worker <[email protected]> | Thu Sep 28 00:42:31 2023 +0000 |
| tree | 6d7c1a77167c811415d179da2480f46594403a52 | |
| parent | 190432339960a759a965809625e41367a72acfe0 [diff] | |
| parent | d8113fac1bf8039d6308ac31c8d849bcb7466ed5 [diff] |
OWNERS: master -> main am: b98d204cc0 am: 1376352caa am: 525cab3624 am: d8113fac1b Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/toml_edit/+/2765706 Change-Id: Ibb82beb5478685981dfea1d630064dc1f4bd5872 Signed-off-by: Automerger Merge Worker <[email protected]>
This crate allows you to parse and modify toml documents, while preserving comments, spaces and relative order or items.
toml_edit is primarily tailored for cargo-edit needs.
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); }
Things it does not preserve:
Licensed under either of
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.