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§

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!(),
}
Examples found in repository?
src/map.rs (line 538)
536
537
538
539
540
541
    pub fn key(&self) -> &String {
        match self {
            Entry::Vacant(e) => e.key(),
            Entry::Occupied(e) => e.key(),
        }
    }

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(),
        }
    }

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.