Expand description
§toml_edit
This crate allows you to parse and modify toml documents, while preserving comments, spaces and relative order of items.
If you also need the ease of a more traditional API, see the toml crate.
§Example
use toml_edit::{DocumentMut, value};
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);§Controlling formatting
By default, values are created with default formatting
let mut doc = toml_edit::DocumentMut::new();
doc["foo"] = toml_edit::value("bar");
let expected = r#"foo = "bar"
"#;
assert_eq!(doc.to_string(), expected);You can choose a custom TOML representation by parsing the value.
let mut doc = toml_edit::DocumentMut::new();
doc["foo"] = "'bar'".parse::<toml_edit::Item>().unwrap();
let expected = r#"foo = 'bar'
"#;
assert_eq!(doc.to_string(), expected);§Limitations
Things it does not preserve:
- Order of dotted keys, see issue.
Modules§
- Document tree traversal to walk a shared borrow of a document tree.
- Document tree traversal to mutate an exclusive borrow of a document tree in place.
Structs§
- A top-level sequence of
Tables, each under their own header - A parsed TOML date value
- A parsed TOML datetime value
- Error returned from parsing a
Datetimein theFromStrimplementation. - A prefix and suffix,
- A scalar TOML
Value’s logical value and its representation in a&str - A view into a single occupied location in an
InlineTable. - A view into a single empty location in an
InlineTable. - Opaque string storage internal to
toml_edit - A mutable reference to a
Key’s formatting - A view into a single occupied location in a
Table. - Opaque string storage for raw TOML; internal to
toml_edit - A TOML
Valueencoded as a&str - A TOML table, a top-level collection of key/
Valuepairs under a header and logical sub-tables - A parsed TOML time value
- A TOML parse error
- A view into a single empty location in a
Table.
Enums§
- A view into a single location in a
Table, which may be vacant or occupied. - A view into a single location in an
InlineTable, which may be vacant or occupied. - Type representing either a value, a table, an array of tables, or none.
- A parsed TOML time offset
Traits§
- This trait represents either a
Table, or anInlineTable.
Functions§
- Returns an empty array of tables.
- Returns an empty table.
- Returns a formatted value.
Type Aliases§
- An iterator type over
ArrayOfTables’sTables - An iterator type over
ArrayOfTables’sTables - An iterator type over
ArrayOfTables’sTables - DocumentDeprecatedDeprecated, replaced with
DocumentMut