Expand description
§toml_edit
This crate allows you to parse and modify toml documents, while preserving comments, spaces and relative order or 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§
- de
serde
- Deserializing TOML into Rust structures.
- ser
serde
- Serializing Rust structures into TOML.
- visit
- Document tree traversal to walk a shared borrow of a document tree.
- visit_
mut - Document tree traversal to mutate an exclusive borrow of a document tree in place.
Structs§
- Array
- Type representing a TOML array,
payload of the
Value::Array
variant’s value - Array
OfTables - Type representing a TOML array of tables
- Date
- A parsed TOML date value
- Datetime
- A parsed TOML datetime value
- Datetime
Parse Error - Error returned from parsing a
Datetime
in theFromStr
implementation. - Decor
- A prefix and suffix,
- Document
Mut - Type representing a TOML document
- Formatted
- A value together with its
to_string
representation, including surrounding it whitespaces and comments. - ImDocument
- Type representing a parsed TOML document
- Inline
Occupied Entry - A view into a single occupied location in a
IndexMap
. - Inline
Table - Type representing a TOML inline table,
payload of the
Value::InlineTable
variant - Inline
Vacant Entry - A view into a single empty location in a
IndexMap
. - Internal
String - Opaque string storage internal to
toml_edit
- Key
- Key as part of a Key/Value Pair or a table header.
- KeyMut
- A mutable reference to a
Key
’s formatting - Occupied
Entry - A view into a single occupied location in a
IndexMap
. - RawString
- Opaque string storage for raw TOML; internal to
toml_edit
- Repr
- TOML-encoded value
- Table
- Type representing a TOML non-inline table
- Time
- A parsed TOML time value
- Toml
Error - Type representing a TOML parse error
- Vacant
Entry - A view into a single empty location in a
IndexMap
.
Enums§
- Entry
- A view into a single location in a map, which may be vacant or occupied.
- Inline
Entry - A view into a single location in a map, which may be vacant or occupied.
- Item
- Type representing either a value, a table, an array of tables, or none.
- Offset
- A parsed TOML time offset
- Value
- Representation of a TOML Value (as part of a Key/Value Pair).
Traits§
- Table
Like - This trait represents either a
Table
, or anInlineTable
.
Functions§
Type Aliases§
- Array
Into Iter - An owned iterator type over
Table
’s key/value pairs. - Array
Iter - An iterator type over
Array
’s values. - Array
Iter Mut - An iterator type over
Array
’s values. - Array
OfTables Into Iter - An iterator type over
ArrayOfTables
’s values. - Array
OfTables Iter - An iterator type over
ArrayOfTables
’s values. - Array
OfTables Iter Mut - An iterator type over
ArrayOfTables
’s values. - Document
Deprecated - Deprecated, replaced with
DocumentMut
- Inline
Table Into Iter - An owned iterator type over key/value pairs of an inline table.
- Inline
Table Iter - An iterator type over key/value pairs of an inline table.
- Inline
Table Iter Mut - A mutable iterator type over key/value pairs of an inline table.
- Into
Iter - An owned iterator type over
Table
’s key/value pairs. - Iter
- An iterator type over
Table
’s key/value pairs. - IterMut
- A mutable iterator type over
Table
’s key/value pairs.