Struct components_arena::Arena[][src]

pub struct Arena<C: Component> { /* fields omitted */ }
Expand description

Unordered container with random access.

Implementations

Creates an arena instance.

Creates an arena instance with the specified initial capacity.

Returns reference to contained items packed in a special container. While arena itself is unique (i.e. non-clonable) object, this special container could be cloned.

Returns mutable reference to contained items packed in a (mostly readonly) special container. While arena itself is unique (i.e. non-clonable) object, this special container could be cloned.

👎 Deprecated:

use items().capacity instead

Returns the number of elements the arena can hold without reallocating.

👎 Deprecated:

use items().len instead

Returns the number of elements in the arena.

This function has linear worst-case complexity.

👎 Deprecated:

use items().is_empty instead

Returns true if the arena contains no elements.

This function has linear worst-case complexity.

👎 Deprecated:

use items().min_capacity instead

Returns the maximum number of elements ever in the arena. The arena capacity cannot be less than min_capacity.

Arena min_capacity never decreases.

👎 Deprecated:

use items_mut().reserve instead

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.

👎 Deprecated:

use items_mut().reserve_exact instead

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.

👎 Deprecated:

use items_mut().shrink_to instead

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.

👎 Deprecated:

use items_mut().shrink_to_fit instead

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.

👎 Deprecated:

use items_mut().try_reserve instead

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.

👎 Deprecated:

use items_mut().try_reserve_exact instead

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.

Place new component into the arena.

Examples

let mut arena = Arena::new();
let new_component_id = arena.insert(|id| (MyComponent { /* ... */ }, id));

Removes component with provided id.

The arena tries to detect invalid provided id (i. e. foreign, or previously dropped), and panics if such detection hits. But it is important to pay respect to the fact there is small probability that invalid id will not be intercepted.

Trait Implementations

Formats the value using the given formatter. Read more

The returned type after indexing.

Performs the indexing (container[index]) operation. Read more

Performs the mutable indexing (container[index]) operation. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.