Struct columnation::StableRegion

source ·
pub struct StableRegion<T> { /* private fields */ }
Expand description

A region allocator which holds items at stable memory locations.

Items once inserted will not be moved, and their locations in memory can be relied on by others, until the region is cleared.

This type accepts owned data, rather than references, and does not itself intend to implement Region. Rather, it is a useful building block for other less-safe code that wants allocated data to remain at fixed memory locations.

Implementations§

source§

impl<T> StableRegion<T>

source

pub fn with_limit(limit: usize) -> Self

Construct a StableRegion with a allocation size limit.

source

pub fn clear(&mut self)

Clears the contents without dropping any elements.

source

pub fn copy_iter<I>(&mut self, items: I) -> &mut [T]
where I: Iterator<Item = T> + ExactSizeIterator,

Copies an iterator of items into the region.

source

pub fn copy_slice(&mut self, items: &[T]) -> &mut [T]
where T: Clone,

Copies a slice of cloneable items into the region.

source

pub fn reserve(&mut self, count: usize)

Ensures that there is space in self.local to copy at least count items.

source

pub fn with_capacity(count: usize) -> Self

Allocates a new Self that can accept count items without reallocation.

source

pub fn len(&self) -> usize

The number of items current held in the region.

source

pub fn heap_size(&self, callback: impl FnMut(usize, usize))

Trait Implementations§

source§

impl<T> Default for StableRegion<T>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<T> Freeze for StableRegion<T>

§

impl<T> RefUnwindSafe for StableRegion<T>
where T: RefUnwindSafe,

§

impl<T> Send for StableRegion<T>
where T: Send,

§

impl<T> Sync for StableRegion<T>
where T: Sync,

§

impl<T> Unpin for StableRegion<T>
where T: Unpin,

§

impl<T> UnwindSafe for StableRegion<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.