Struct rustc_arena::DroplessArena [−][src]
pub struct DroplessArena {
start: Cell<*mut u8>,
end: Cell<*mut u8>,
chunks: RefCell<Vec<TypedArenaChunk<u8>>>,
}Fields
start: Cell<*mut u8>Expand description
A pointer to the start of the free space.
end: Cell<*mut u8>Expand description
A pointer to the end of free space.
The allocation proceeds from the end of the chunk towards the start. When this pointer crosses the start pointer, a new chunk is allocated.
chunks: RefCell<Vec<TypedArenaChunk<u8>>>Expand description
A vector of arena chunks.
Implementations
impl DroplessArena[src]
impl DroplessArena[src]pub(crate) fn grow(&self, additional: usize)[src]
pub(crate) fn alloc_raw_without_grow(&self, layout: Layout) -> Option<*mut u8>[src]
pub(crate) fn alloc_raw_without_grow(&self, layout: Layout) -> Option<*mut u8>[src]Allocates a byte slice with specified layout from the current memory
chunk. Returns None if there is no free space left to satisfy the
request.
pub fn alloc_raw(&self, layout: Layout) -> *mut u8[src]
pub fn alloc<T>(&self, object: T) -> &mut T[src]
pub fn alloc_slice<T>(&self, slice: &[T]) -> &mut [T] where
T: Copy, [src]
pub fn alloc_slice<T>(&self, slice: &[T]) -> &mut [T] where
T: Copy, [src]Allocates a slice of objects that are copied into the DroplessArena, returning a mutable
reference to it. Will panic if passed a zero-sized type.
Panics:
- Zero-sized types
- Zero-length slices
pub(crate) unsafe fn write_from_iter<T, I: Iterator<Item = T>>(
&self,
iter: I,
len: usize,
mem: *mut T
) -> &mut [T][src]
&self,
iter: I,
len: usize,
mem: *mut T
) -> &mut [T]
pub fn alloc_from_iter<T, I: IntoIterator<Item = T>>(&self, iter: I) -> &mut [T][src]
Trait Implementations
impl Default for DroplessArena[src]
impl Default for DroplessArena[src]fn default() -> DroplessArena[src]
fn default() -> DroplessArena[src]Returns the “default value” for a type. Read more