pub struct VacantEntry<'a, T> { /* private fields */ }
Expand description
A handle to a vacant entry in a Slab
.
VacantEntry
allows constructing values with the key that they will be
assigned to.
§Examples
let mut slab = Slab::new();
let hello = {
let entry = slab.vacant_entry();
let key = entry.key();
entry.insert((key, "hello"));
key
};
assert_eq!(hello, slab[hello].0);
assert_eq!("hello", slab[hello].1);
Implementations§
Source§impl<'a, T> VacantEntry<'a, T>
impl<'a, T> VacantEntry<'a, T>
Sourcepub fn insert(self, val: T) -> &'a mut T
pub fn insert(self, val: T) -> &'a mut T
Insert a value in the entry, returning a mutable reference to the value.
To get the key associated with the value, use key
prior to calling
insert
.
§Examples
let mut slab = Slab::new();
let hello = {
let entry = slab.vacant_entry();
let key = entry.key();
entry.insert((key, "hello"));
key
};
assert_eq!(hello, slab[hello].0);
assert_eq!("hello", slab[hello].1);
Sourcepub fn key(&self) -> usize
pub fn key(&self) -> usize
Return the key associated with this entry.
A value stored in this entry will be associated with this key.
§Examples
let mut slab = Slab::new();
let hello = {
let entry = slab.vacant_entry();
let key = entry.key();
entry.insert((key, "hello"));
key
};
assert_eq!(hello, slab[hello].0);
assert_eq!("hello", slab[hello].1);
Trait Implementations§
Auto Trait Implementations§
impl<'a, T> Freeze for VacantEntry<'a, T>
impl<'a, T> RefUnwindSafe for VacantEntry<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for VacantEntry<'a, T>where
T: Send,
impl<'a, T> Sync for VacantEntry<'a, T>where
T: Sync,
impl<'a, T> Unpin for VacantEntry<'a, T>
impl<'a, T> !UnwindSafe for VacantEntry<'a, T>
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
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: 16 bytes