pub struct OccupiedEntry<'a> { /* private fields */ }
Expand description
An occupied Entry. It is part of the Entry
enum.
Implementations§
Source§impl<'a> OccupiedEntry<'a>
impl<'a> OccupiedEntry<'a>
Sourcepub fn key(&self) -> &String
pub fn key(&self) -> &String
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!(),
}
Sourcepub fn get(&self) -> &Value
pub fn get(&self) -> &Value
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!(),
}
Sourcepub fn get_mut(&mut self) -> &mut Value
pub fn get_mut(&mut self) -> &mut Value
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);
Sourcepub fn into_mut(self) -> &'a mut Value
pub fn into_mut(self) -> &'a mut Value
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);
Sourcepub fn insert(&mut self, value: Value) -> Value
pub fn insert(&mut self, value: Value) -> Value
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!(),
}
Sourcepub fn remove(self) -> Value
pub fn remove(self) -> Value
Takes the value of the entry out of the map, and returns it.
If serde_json’s “preserve_order” is enabled, .remove()
is
equivalent to [.swap_remove()
][Self::swap_remove], replacing this
entry’s position with the last element. If you need to preserve the
relative order of the keys in the map, use
[.shift_remove()
][Self::shift_remove] instead.
§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!(),
}
Sourcepub fn remove_entry(self) -> (String, Value)
pub fn remove_entry(self) -> (String, Value)
Removes the entry from the map, returning the stored key and value.
If serde_json’s “preserve_order” is enabled, .remove_entry()
is
equivalent to [.swap_remove_entry()
][Self::swap_remove_entry],
replacing this entry’s position with the last element. If you need to
preserve the relative order of the keys in the map, use
[.shift_remove_entry()
][Self::shift_remove_entry] instead.
§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) => {
let (key, value) = occupied.remove_entry();
assert_eq!(key, "serde");
assert_eq!(value, 12);
}
Entry::Vacant(_) => unimplemented!(),
}
Auto Trait Implementations§
impl<'a> Freeze for OccupiedEntry<'a>
impl<'a> RefUnwindSafe for OccupiedEntry<'a>
impl<'a> Send for OccupiedEntry<'a>
impl<'a> Sync for OccupiedEntry<'a>
impl<'a> Unpin for OccupiedEntry<'a>
impl<'a> !UnwindSafe for OccupiedEntry<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes