Struct mz_ore::region::LgAllocRegion

source ·
pub struct LgAllocRegion<T> {
    local: Region<T>,
    stash: Vec<Region<T>>,
    limit: usize,
}
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.

Fields§

§local: Region<T>

The active allocation into which we are writing.

§stash: Vec<Region<T>>

All previously active allocations.

§limit: usize

The maximum allocation size

Implementations§

source§

impl<T> LgAllocRegion<T>

source

pub fn with_limit(limit: usize) -> Self

Construct a LgAllocRegion 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))

Visit contained allocations to determine their size and capacity.

Trait Implementations§

source§

impl<T> Debug for LgAllocRegion<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> Default for LgAllocRegion<T>

source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<T> Freeze for LgAllocRegion<T>

§

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

§

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

§

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

§

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

§

impl<T> UnwindSafe for LgAllocRegion<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, U> CastInto<U> for T
where U: CastFrom<T>,

source§

fn cast_into(self) -> U

Performs the cast.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,