Struct components_arena::ArenaItems [−][src]
pub struct ArenaItems<C: Component> { /* fields omitted */ }
Expand description
Implementations
Returns the number of elements the arena can hold without reallocating.
Returns the number of elements in the arena.
This function has linear worst-case complexity.
Returns true
if the arena contains no elements.
This function has linear worst-case complexity.
Returns the maximum number of elements ever in the arena.
The arena capacity cannot be less than min_capacity
.
Arena min_capacity
never decreases.
Examples
let mut arena = Arena::new(); assert_eq!(arena.items().min_capacity(), 0); let id_1 = arena.insert(|id| (MyComponent { /* ... */ }, id)); assert_eq!(arena.items().min_capacity(), 1); let id_2 = arena.insert(|id| (MyComponent { /* ... */ }, id)); assert_eq!(arena.items().min_capacity(), 2); arena.remove(id_1); assert_eq!(arena.items().min_capacity(), 2); let id_3 = arena.insert(|id| (MyComponent { /* ... */ }, id)); assert_eq!(arena.items().min_capacity(), 2); let id_4 = arena.insert(|id| (MyComponent { /* ... */ }, id)); assert_eq!(arena.items().min_capacity(), 3);
Reserves capacity for at least additional
more elements.
The collection may reserve more space to avoid frequent reallocations.
After calling reserve
, capacity will be greater than or equal to
self.min_capacity() + additional
. Does nothing if capacity is already sufficient.
Panics
Panics if the new capacity overflows usize.
Reserves the minimum capacity for exactly additional
more elements.
After calling reserve_exact
, capacity will be greater than or equal to
self.min_capacity() + additional
. Does nothing if the capacity is already sufficient.
Note that the allocator may give the collection more space than it requests.
Therefore, capacity can not be relied upon to be precisely minimal.
Prefer reserve
if future insertions are expected.
Panics
Panics if the new capacity overflows usize.
Shrinks the capacity of the arena with a lower bound.
The capacity will remain at least as large as both the min_capacity
and the supplied value.
Shrinks the capacity of the vector as much as possible.
It will drop down as close as possible to the min_capacity
but the allocator may still inform the arena that there is space for a few more elements.
Tries to reserve capacity for at least additional more elements.
The collection may reserve more space to avoid frequent reallocations.
After calling try_reserve
, capacity will be greater than or equal
to self.min_capacity() + additional
. Does nothing if capacity is already sufficient.
Errors
If the capacity overflows, or the allocator reports a failure, then an error is returned.
Tries to reserve capacity for exactly additional
more elements.
The collection may reserve more space to avoid frequent reallocations.
After calling try_reserve_exact
, capacity will be greater than or equal
to self.min_capacity() + additional
. Does nothing if capacity is already sufficient.
Note that the allocator may give the collection more space than it requests.
Therefore, capacity can not be relied upon to be precisely minimal.
Prefer try_reserve
if future insertions are expected.
Errors
If the capacity overflows, or the allocator reports a failure, then an error is returned.
Returns item occupying index
place with its Id
, or None
if there is no such.
Panics
Panics if index
is greater than or equal to min_capacity()
.
Returns Id
of item occupying index
place, or None
if there is no such.
Panics
Panics if index
is greater than or equal to min_capacity()
.
Returns item occupying index
place, or None
if there is no such.
Panics
Panics if index
is greater than or equal to min_capacity()
.
pub fn ids(&self) -> ArenaItemsIds<'_, C>ⓘNotable traits for ArenaItemsIds<'a, C>impl<'a, C: Component> Iterator for ArenaItemsIds<'a, C> type Item = Id<C>;
pub fn ids(&self) -> ArenaItemsIds<'_, C>ⓘNotable traits for ArenaItemsIds<'a, C>impl<'a, C: Component> Iterator for ArenaItemsIds<'a, C> type Item = Id<C>;
impl<'a, C: Component> Iterator for ArenaItemsIds<'a, C> type Item = Id<C>;
Returns an iterator over all item ids.
pub fn values(&self) -> ArenaItemsValues<'_, C>ⓘNotable traits for ArenaItemsValues<'a, C>impl<'a, C: Component> Iterator for ArenaItemsValues<'a, C> type Item = &'a C;
pub fn values(&self) -> ArenaItemsValues<'_, C>ⓘNotable traits for ArenaItemsValues<'a, C>impl<'a, C: Component> Iterator for ArenaItemsValues<'a, C> type Item = &'a C;
impl<'a, C: Component> Iterator for ArenaItemsValues<'a, C> type Item = &'a C;
Returns an iterator over all items.
pub fn iter(&self) -> ArenaItemsIter<'_, C>ⓘNotable traits for ArenaItemsIter<'a, C>impl<'a, C: Component> Iterator for ArenaItemsIter<'a, C> type Item = (Id<C>, &'a C);
pub fn iter(&self) -> ArenaItemsIter<'_, C>ⓘNotable traits for ArenaItemsIter<'a, C>impl<'a, C: Component> Iterator for ArenaItemsIter<'a, C> type Item = (Id<C>, &'a C);
impl<'a, C: Component> Iterator for ArenaItemsIter<'a, C> type Item = (Id<C>, &'a C);
Returns an iterator over all items combined with their ids.
pub fn into_ids(self) -> ArenaItemsIntoIds<C>ⓘNotable traits for ArenaItemsIntoIds<C>impl<C: Component> Iterator for ArenaItemsIntoIds<C> type Item = Id<C>;
pub fn into_ids(self) -> ArenaItemsIntoIds<C>ⓘNotable traits for ArenaItemsIntoIds<C>impl<C: Component> Iterator for ArenaItemsIntoIds<C> type Item = Id<C>;
impl<C: Component> Iterator for ArenaItemsIntoIds<C> type Item = Id<C>;
Transforms the container into an iterator over all items ids.
pub fn into_values(self) -> ArenaItemsIntoValues<C>ⓘNotable traits for ArenaItemsIntoValues<C>impl<C: Component> Iterator for ArenaItemsIntoValues<C> type Item = C;
pub fn into_values(self) -> ArenaItemsIntoValues<C>ⓘNotable traits for ArenaItemsIntoValues<C>impl<C: Component> Iterator for ArenaItemsIntoValues<C> type Item = C;
impl<C: Component> Iterator for ArenaItemsIntoValues<C> type Item = C;
Transforms the container into an iterator over all items.
Trait Implementations
Auto Trait Implementations
impl<C> RefUnwindSafe for ArenaItems<C> where
C: RefUnwindSafe,
impl<C> Send for ArenaItems<C> where
C: Send,
impl<C> Sync for ArenaItems<C> where
C: Sync,
impl<C> Unpin for ArenaItems<C> where
C: Unpin,
impl<C> UnwindSafe for ArenaItems<C> where
C: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more