Migrate 25 crates to monorepo

quickcheck
regex-automata
ryu
same-file
serde
serde_json
serde_spanned
serde_test
sharded-slab
shlex
siphasher
tinyvec
tinyvec_macros
tokio-io-timeout
toml
toml_datetime
toml_edit
uniffi
uniffi_checksum_derive
uniffi_meta
virtio-bindings
virtio-queue
virtio-vsock
vsock
vsprintf
zerocopy-derive

Bug: http://b/339424309
Test: treehugger
Change-Id: I121b1204e46c1ca52447d519ba6a65210b76d526
2 files changed
tree: 4809fb3059f83035cf35296626c7e2f58822ba2e
  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. LICENSE
  11. LICENSE-APACHE
  12. LICENSE-MIT
  13. METADATA
  14. MODULE_LICENSE_APACHE2
  15. MODULE_LICENSE_MIT
  16. OWNERS
  17. 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.