Struct serde_json::map::VacantEntry
source · pub struct VacantEntry<'a> { /* private fields */ }
Expand description
A vacant Entry. It is part of the Entry
enum.
Implementations§
source§impl<'a> VacantEntry<'a>
impl<'a> VacantEntry<'a>
sourcepub fn key(&self) -> &String
pub fn key(&self) -> &String
Gets a reference to the key that would be used when inserting a value through the VacantEntry.
Examples
use serde_json::map::Entry;
let mut map = serde_json::Map::new();
match map.entry("serde") {
Entry::Vacant(vacant) => {
assert_eq!(vacant.key(), &"serde");
}
Entry::Occupied(_) => unimplemented!(),
}
sourcepub fn insert(self, value: Value) -> &'a mut Value
pub fn insert(self, value: Value) -> &'a mut Value
Sets the value of the entry with the VacantEntry’s key, and returns a mutable reference to it.
Examples
use serde_json::map::Entry;
let mut map = serde_json::Map::new();
match map.entry("serde") {
Entry::Vacant(vacant) => {
vacant.insert(json!("hoho"));
}
Entry::Occupied(_) => unimplemented!(),
}
Examples found in repository?
src/map.rs (line 558)
556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585
pub fn or_insert(self, default: Value) -> &'a mut Value {
match self {
Entry::Vacant(entry) => entry.insert(default),
Entry::Occupied(entry) => entry.into_mut(),
}
}
/// 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
///
/// ```
/// # use serde_json::json;
/// #
/// let mut map = serde_json::Map::new();
/// map.entry("serde").or_insert_with(|| json!("hoho"));
///
/// assert_eq!(map["serde"], "hoho".to_owned());
/// ```
pub fn or_insert_with<F>(self, default: F) -> &'a mut Value
where
F: FnOnce() -> Value,
{
match self {
Entry::Vacant(entry) => entry.insert(default()),
Entry::Occupied(entry) => entry.into_mut(),
}
}