cargo / toml_edit / audit
cargo : toml_edit @ 0.25.11+spec-1.1.0
PE Patrick Elsen signed 2026-05-27 published 2026-05-27

README.md

60 lines · markdown

# toml_edit[![Documentation](https://img.shields.io/badge/docs-master-blue.svg)](https://docs.rs/toml_edit)![License](https://img.shields.io/crates/l/toml_edit.svg)[![Crates Status](https://img.shields.io/crates/v/toml_edit.svg)](https://crates.io/crates/toml_edit)This crate allows you to parse and modify tomldocuments, while preserving comments, spaces *andrelative order* of items.`toml_edit` is primarily tailored for [cargo-edit](https://github.com/killercup/cargo-edit/) needs.## Example```rustuse toml_edit::{DocumentMut, value};fn main() {    let toml = r#""hello" = 'toml!' # comment['a'.b]    "#;    let mut doc = toml.parse::<DocumentMut>().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);}```## LimitationsThings it does not preserve:* Order of dotted keys, see [issue](https://github.com/toml-rs/toml/issues/163).## LicenseLicensed under either of* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or <https://www.apache.org/licenses/LICENSE-2.0>)* MIT license ([LICENSE-MIT](LICENSE-MIT) or <https://opensource.org/license/mit>)at your option.### ContributionUnless you explicitly state otherwise, any contribution intentionallysubmitted for inclusion in the work by you, as defined in the Apache-2.0license, shall be dual-licensed as above, without any additional terms orconditions.