Struct cache_2q::OccupiedEntry
[−]
[src]
pub struct OccupiedEntry<'a, K: 'a, V: 'a> { /* fields omitted */ }
Methods
impl<'a, K: 'a, V: 'a> OccupiedEntry<'a, K, V>
[src]
fn key(&self) -> &K
Gets a reference to the key in the entry.
Examples
use cache_2q::{Cache, Entry}; let mut cache: Cache<&str, u32> = Cache::new(8); cache.entry("poneyland").or_insert(12); match cache.entry("poneyland") { Entry::Vacant(_) => { panic!("Should be occupied"); }, Entry::Occupied(occupied) => { assert_eq!(occupied.key(), &"poneyland"); }, }
fn get(&self) -> &V
Gets a reference to the value in the entry.
Examples
use cache_2q::{Cache, Entry}; let mut cache: Cache<&str, u32> = Cache::new(8); cache.entry("poneyland").or_insert(12); if let Entry::Occupied(o) = cache.entry("poneyland") { assert_eq!(o.get(), &12); } else { panic!("Entry should be occupied"); }
fn get_mut(&mut self) -> &mut V
Gets a mutable reference to the value in the entry.
Examples
use cache_2q::{Cache, Entry}; let mut cache: Cache<&str, u32> = Cache::new(8); cache.entry("poneyland").or_insert(12); assert_eq!(*cache.get("poneyland").unwrap(), 12); if let Entry::Occupied(mut o) = cache.entry("poneyland") { *o.get_mut() += 10; } else { panic!("Entry should be occupied"); } assert_eq!(*cache.get("poneyland").unwrap(), 22);
fn into_mut(self) -> &'a mut V
Converts the OccupiedEntry into a mutable reference to the value in the entry with a lifetime bound to the cache itself.
Examples
use cache_2q::{Cache, Entry}; let mut cache: Cache<&str, u32> = Cache::new(8); cache.entry("poneyland").or_insert(12); assert_eq!(*cache.get("poneyland").unwrap(), 12); if let Entry::Occupied(o) = cache.entry("poneyland") { *o.into_mut() += 10; } else { panic!("Entry should be occupied"); } assert_eq!(*cache.get("poneyland").unwrap(), 22);
fn insert(&mut self, value: V) -> V
Sets the value of the entry, and returns the entry's old value.
Examples
use cache_2q::{Cache, Entry}; let mut cache: Cache<&str, u32> = Cache::new(8); cache.entry("poneyland").or_insert(12); if let Entry::Occupied(mut o) = cache.entry("poneyland") { assert_eq!(o.insert(15), 12); } else { panic!("Entry should be occupied"); } assert_eq!(*cache.get("poneyland").unwrap(), 15);
fn remove_entry(self) -> (K, V)
Take the ownership of the key and value from the cache.
Examples
use cache_2q::{Cache, Entry}; let mut cache: Cache<&str, u32> = Cache::new(8); cache.entry("poneyland").or_insert(12); if let Entry::Occupied(o) = cache.entry("poneyland") { // We delete the entry from the cache. o.remove_entry(); } else { panic!("Entry should be occupied"); } assert_eq!(cache.contains_key("poneyland"), false);
fn remove(self) -> V
Takes the value out of the entry, and returns it.
Examples
use cache_2q::{Cache, Entry}; let mut cache: Cache<&str, u32> = Cache::new(8); cache.entry("poneyland").or_insert(12); if let Entry::Occupied(o) = cache.entry("poneyland") { assert_eq!(o.remove(), 12); } else { panic!("Entry should be occupied"); } assert_eq!(cache.contains_key("poneyland"), false);