diff options
Diffstat (limited to 'vendor/toml_edit/src/table.rs')
-rw-r--r-- | vendor/toml_edit/src/table.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/vendor/toml_edit/src/table.rs b/vendor/toml_edit/src/table.rs index 2f61abf73..45d6d61b6 100644 --- a/vendor/toml_edit/src/table.rs +++ b/vendor/toml_edit/src/table.rs @@ -397,6 +397,20 @@ impl Table { pub fn remove_entry(&mut self, key: &str) -> Option<(Key, Item)> { self.items.shift_remove(key).map(|kv| (kv.key, kv.value)) } + + /// Retains only the elements specified by the `keep` predicate. + /// + /// In other words, remove all pairs `(key, item)` for which + /// `keep(&key, &mut item)` returns `false`. + /// + /// The elements are visited in iteration order. + pub fn retain<F>(&mut self, mut keep: F) + where + F: FnMut(&str, &mut Item) -> bool, + { + self.items + .retain(|key, key_value| keep(key, &mut key_value.value)); + } } impl std::fmt::Display for Table { |