pub struct VacantEntry<'a, T, C: Config = DefaultConfig> { /* 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().unwrap();
let key = entry.key();
entry.insert((key, "hello"));
key
};
assert_eq!(hello, slab.get(hello).unwrap().0);
assert_eq!("hello", slab.get(hello).unwrap().1);
Implementations§
Source§impl<'a, T, C: Config> VacantEntry<'a, T, C>
impl<'a, T, C: Config> VacantEntry<'a, T, C>
Sourcepub fn insert(self, val: T)
pub fn insert(self, val: T)
Insert a value in the entry.
To get the integer index at which this value will be inserted, use
key
prior to calling insert
.
§Examples
let mut slab = Slab::new();
let hello = {
let entry = slab.vacant_entry().unwrap();
let key = entry.key();
entry.insert((key, "hello"));
key
};
assert_eq!(hello, slab.get(hello).unwrap().0);
assert_eq!("hello", slab.get(hello).unwrap().1);
Sourcepub fn key(&self) -> usize
pub fn key(&self) -> usize
Return the integer index at which this entry will be inserted.
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().unwrap();
let key = entry.key();
entry.insert((key, "hello"));
key
};
assert_eq!(hello, slab.get(hello).unwrap().0);
assert_eq!("hello", slab.get(hello).unwrap().1);
Trait Implementations§
Auto Trait Implementations§
impl<'a, T, C> Freeze for VacantEntry<'a, T, C>
impl<'a, T, C = DefaultConfig> !RefUnwindSafe for VacantEntry<'a, T, C>
impl<'a, T, C = DefaultConfig> !Send for VacantEntry<'a, T, C>
impl<'a, T, C = DefaultConfig> !Sync for VacantEntry<'a, T, C>
impl<'a, T, C> Unpin for VacantEntry<'a, T, C>
impl<'a, T, C = DefaultConfig> !UnwindSafe for VacantEntry<'a, T, C>
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: 32 bytes