pub enum Entry<'a, K, V, S, A: Allocator, P: TreePolicy<K = K, V = V, S = S>>where
K: Ord,{
Occupied(OccupiedEntry<'a, K, V, S, A, P>),
Vacant(VacantEntry<'a, K, V, S, A, P>),
}Expand description
A view into a single entry in a tree, which may either be vacant or occupied.
This enum is constructed from the AugmentedRBTreeInt::entry method on
AugmentedRBTree.
Variants§
Occupied(OccupiedEntry<'a, K, V, S, A, P>)
An occupied entry.
Vacant(VacantEntry<'a, K, V, S, A, P>)
A vacant entry.
Implementations§
Source§impl<'a, K, V, S, A: Allocator, P: TreePolicy<K = K, V = V, S = S>> Entry<'a, K, V, S, A, P>where
K: Ord,
impl<'a, K, V, S, A: Allocator, P: TreePolicy<K = K, V = V, S = S>> Entry<'a, K, V, S, A, P>where
K: Ord,
Sourcepub fn or_insert(self, default: V) -> &'a mut V
pub fn or_insert(self, default: V) -> &'a mut V
Ensures a value is in the entry by inserting the default if empty, and returns a mutable reference to the value in the entry.
§Examples
let mut tree = AugmentedRBTree::<&str, u32, SubtreeSize>::new();
tree.entry("hello").or_insert(3);
assert_eq!(tree.get(&"hello"), Some(&3));
*tree.entry("hello").or_insert(10) += 2;
assert_eq!(tree.get(&"hello"), Some(&5));Sourcepub fn or_insert_with(self, default: impl FnOnce() -> V) -> &'a mut V
pub fn or_insert_with(self, default: impl FnOnce() -> V) -> &'a mut V
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
let mut tree = AugmentedRBTree::<&str, Vec<i32>, SubtreeSize>::new();
tree.entry("hello").or_insert_with(Vec::new).push(1);
assert_eq!(tree.get(&"hello"), Some(&vec![1]));Sourcepub fn or_default(self) -> &'a mut Vwhere
V: Default,
pub fn or_default(self) -> &'a mut Vwhere
V: Default,
Ensures a value is in the entry by inserting the default value if empty, and returns a mutable reference to the value in the entry.
§Examples
let mut tree = AugmentedRBTree::<&str, u32, SubtreeSize>::new();
tree.entry("hello").or_default();
assert_eq!(tree.get(&"hello"), Some(&0));Sourcepub fn key(&self) -> &K
pub fn key(&self) -> &K
Returns a reference to this entry’s key.
§Examples
let mut tree = AugmentedRBTree::<&str, u32, Unit>::new();
assert_eq!(tree.entry("hello").key(), &"hello");Sourcepub fn and_modify(self, f: impl FnOnce(&mut V)) -> Self
pub fn and_modify(self, f: impl FnOnce(&mut V)) -> Self
Provides in-place mutable access to an occupied entry before any potential inserts.
§Examples
let mut tree = AugmentedRBTree::<&str, u32, Unit>::new();
tree.entry("hello").and_modify(|e| *e += 1).or_insert(42);
assert_eq!(tree.get(&"hello"), Some(&42));
tree.entry("hello").and_modify(|e| *e += 1).or_insert(42);
assert_eq!(tree.get(&"hello"), Some(&43));Trait Implementations§
Auto Trait Implementations§
impl<'a, K, V, S, A, P> !Send for Entry<'a, K, V, S, A, P>
impl<'a, K, V, S, A, P> !Sync for Entry<'a, K, V, S, A, P>
impl<'a, K, V, S, A, P> !UnwindSafe for Entry<'a, K, V, S, A, P>
impl<'a, K, V, S, A, P> Freeze for Entry<'a, K, V, S, A, P>where
K: Freeze,
impl<'a, K, V, S, A, P> RefUnwindSafe for Entry<'a, K, V, S, A, P>
impl<'a, K, V, S, A, P> Unpin for Entry<'a, K, V, S, A, P>where
K: Unpin,
impl<'a, K, V, S, A, P> UnsafeUnpin for Entry<'a, K, V, S, A, P>where
K: UnsafeUnpin,
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
Mutably borrows from an owned value. Read more