pub struct OccupiedEntry<'a> { /* private fields */ }
Expand description

An occupied Entry. It is part of the Entry enum.

Implementations§

Gets a reference to the key in the entry.

Examples
use serde_json::map::Entry;

let mut map = serde_json::Map::new();
map.insert("serde".to_owned(), json!(12));

match map.entry("serde") {
    Entry::Occupied(occupied) => {
        assert_eq!(occupied.key(), &"serde");
    }
    Entry::Vacant(_) => unimplemented!(),
}
Examples found in repository?
src/map.rs (line 539)
536
537
538
539
540
541
    pub fn key(&self) -> &String {
        match self {
            Entry::Vacant(e) => e.key(),
            Entry::Occupied(e) => e.key(),
        }
    }

Gets a reference to the value in the entry.

Examples
use serde_json::map::Entry;

let mut map = serde_json::Map::new();
map.insert("serde".to_owned(), json!(12));

match map.entry("serde") {
    Entry::Occupied(occupied) => {
        assert_eq!(occupied.get(), 12);
    }
    Entry::Vacant(_) => unimplemented!(),
}

Gets a mutable reference to the value in the entry.

Examples
use serde_json::map::Entry;

let mut map = serde_json::Map::new();
map.insert("serde".to_owned(), json!([1, 2, 3]));

match map.entry("serde") {
    Entry::Occupied(mut occupied) => {
        occupied.get_mut().as_array_mut().unwrap().push(json!(4));
    }
    Entry::Vacant(_) => unimplemented!(),
}

assert_eq!(map["serde"].as_array().unwrap().len(), 4);
Examples found in repository?
src/map.rs (line 614)
608
609
610
611
612
613
614
615
616
617
618
619
    pub fn and_modify<F>(self, f: F) -> Self
    where
        F: FnOnce(&mut Value),
    {
        match self {
            Entry::Occupied(mut entry) => {
                f(entry.get_mut());
                Entry::Occupied(entry)
            }
            Entry::Vacant(entry) => Entry::Vacant(entry),
        }
    }

Converts the entry into a mutable reference to its value.

Examples
use serde_json::map::Entry;

let mut map = serde_json::Map::new();
map.insert("serde".to_owned(), json!([1, 2, 3]));

match map.entry("serde") {
    Entry::Occupied(mut occupied) => {
        occupied.into_mut().as_array_mut().unwrap().push(json!(4));
    }
    Entry::Vacant(_) => unimplemented!(),
}

assert_eq!(map["serde"].as_array().unwrap().len(), 4);
Examples found in repository?
src/map.rs (line 559)
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(),
        }
    }

Sets the value of the entry with the OccupiedEntry’s key, and returns the entry’s old value.

Examples
use serde_json::map::Entry;

let mut map = serde_json::Map::new();
map.insert("serde".to_owned(), json!(12));

match map.entry("serde") {
    Entry::Occupied(mut occupied) => {
        assert_eq!(occupied.insert(json!(13)), 12);
        assert_eq!(occupied.get(), 13);
    }
    Entry::Vacant(_) => unimplemented!(),
}

Takes the value of the entry out of the map, and returns it.

Examples
use serde_json::map::Entry;

let mut map = serde_json::Map::new();
map.insert("serde".to_owned(), json!(12));

match map.entry("serde") {
    Entry::Occupied(occupied) => {
        assert_eq!(occupied.remove(), 12);
    }
    Entry::Vacant(_) => unimplemented!(),
}

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.