pub struct VecStorage<T> { /* private fields */ }
Expand description
Re-usable memory for creating a vector of references.
See the module-level documentation for more information.
Implementations§
Source§impl<T> VecStorage<T>
impl<T> VecStorage<T>
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Create a new VecStorage<T>
with the provided capacity.
§Example
use vecstorage::VecStorage;
let storage = VecStorage::<u32>::with_capacity(5);
assert_eq!(storage.capacity(), 5);
Sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
Get the capacity of the VecStorage
.
§Example
use vecstorage::VecStorage;
let storage = VecStorage::<u32>::with_capacity(5);
assert_eq!(storage.capacity(), 5);
Sourcepub fn vec_guard<'s, TGuard>(&'s mut self) -> VecGuard<'s, T, TGuard>
pub fn vec_guard<'s, TGuard>(&'s mut self) -> VecGuard<'s, T, TGuard>
Creates a new VecGuard
using the memory allocated by self
.
This VecGuard` will automatically clear the vector when it goes out of scope.
§Panics
Panics if TGuard
doesn’t have the same size and alignment as T
.
Panics if mem::forget()
was called on a VecGuard
that was created previously on the same VecStorage
.
§Example
use vecstorage::VecStorage;
let mut storage = VecStorage::<u32>::with_capacity(2);
{
let mut guard = storage.vec_guard();
assert_eq!(guard.capacity(), 2);
assert_eq!(guard.len(), 0);
guard.push(3);
guard.push(2);
}
{
let mut guard = storage.vec_guard::<u32>();
assert_eq!(guard.capacity(), 2); // The memory of the `storage` is reused
assert_eq!(guard.len(), 0); // But its contents has been "cleared".
}
Trait Implementations§
Source§impl<T: Debug> Debug for VecStorage<T>
impl<T: Debug> Debug for VecStorage<T>
Source§impl<T> Drop for VecStorage<T>
impl<T> Drop for VecStorage<T>
impl<T> Send for VecStorage<T>where
T: Send,
impl<T> Sync for VecStorage<T>where
T: Sync,
Auto Trait Implementations§
impl<T> Freeze for VecStorage<T>
impl<T> RefUnwindSafe for VecStorage<T>where
T: RefUnwindSafe,
impl<T> Unpin for VecStorage<T>where
T: Unpin,
impl<T> UnwindSafe for VecStorage<T>where
T: UnwindSafe,
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