Struct components_arena::Arena

source ·
pub struct Arena<C: Component + 'static> { /* private fields */ }
Expand description

Unordered container with random access.

Implementations§

Creates an arena instance.

Creates an arena instance with the specified initial capacity.

Creates an arena instance.

Creates an arena instance with the specified initial capacity.

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

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 read-only) special container. While arena itself is unique (i.e. non-clonable) object, this special container could be cloned.

Reserves capacity for at least one more element. The collection may reserve more space to avoid frequent reallocations. After calling reserve, capacity will be greater than or equal to self.items().len() + 1. Does nothing if capacity is already sufficient.

Panics

Panics if the new capacity overflows usize.

Reserves the minimum capacity for exactly one more element. After calling reserve_exact, capacity will be greater than or equal to self.items().len() + 1. 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.

Tries to reserve capacity for at least one more element. The collection may reserve more space to avoid frequent reallocations. After calling try_reserve, capacity will be greater than or equal to self.items().len() + 1. 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 one more element. The collection may reserve more space to avoid frequent reallocations. After calling try_reserve_exact, capacity will be greater than or equal to self.items().len() + 1. 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
Returns the “default value” for a type. 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

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

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.