Enum toml_edit::InlineEntry
source · pub enum InlineEntry<'a> {
Occupied(InlineOccupiedEntry<'a>),
Vacant(InlineVacantEntry<'a>),
}
Expand description
A view into a single location in a map, which may be vacant or occupied.
Variants§
Implementations§
source§impl<'a> InlineEntry<'a>
impl<'a> InlineEntry<'a>
sourcepub fn key(&self) -> &str
pub fn key(&self) -> &str
Returns the entry key
Examples
use toml_edit::Table;
let mut map = Table::new();
assert_eq!("hello", map.entry("hello").key());
sourcepub fn or_insert(self, default: Value) -> &'a mut Value
pub fn or_insert(self, default: Value) -> &'a mut Value
Ensures a value is in the entry by inserting the default if empty, and returns a mutable reference to the value in the entry.
sourcepub fn or_insert_with<F: FnOnce() -> Value>(self, default: F) -> &'a mut Value
pub fn or_insert_with<F: FnOnce() -> Value>(self, default: F) -> &'a mut Value
Ensures a value is in the entry by inserting the result of the default function if empty, and returns a mutable reference to the value in the entry.
Examples found in repository?
src/parser/inline_table.rs (lines 63-68)
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
fn descend_path<'a>(
mut table: &'a mut InlineTable,
path: &'a [Key],
) -> Result<&'a mut InlineTable, CustomError> {
for (i, key) in path.iter().enumerate() {
let entry = table.entry_format(key).or_insert_with(|| {
let mut new_table = InlineTable::new();
new_table.set_dotted(true);
Value::InlineTable(new_table)
});
match *entry {
Value::InlineTable(ref mut sweet_child_of_mine) => {
table = sweet_child_of_mine;
}
ref v => {
return Err(CustomError::extend_wrong_type(path, i, v.type_name()));
}
}
}
Ok(table)
}