Struct capnp::message::HeapAllocator
source · [−]pub struct HeapAllocator { /* private fields */ }
Expand description
Standard segment allocator. Allocates each segment via alloc::alloc::alloc_zeroed()
.
Implementations
sourceimpl HeapAllocator
impl HeapAllocator
pub fn new() -> HeapAllocator
sourcepub fn first_segment_words(self, value: u32) -> HeapAllocator
pub fn first_segment_words(self, value: u32) -> HeapAllocator
Sets the size of the initial segment in words, where 1 word = 8 bytes.
sourcepub fn allocation_strategy(self, value: AllocationStrategy) -> HeapAllocator
pub fn allocation_strategy(self, value: AllocationStrategy) -> HeapAllocator
Sets the allocation strategy for segments after the first one.
sourcepub fn max_segment_words(self, value: u32) -> HeapAllocator
pub fn max_segment_words(self, value: u32) -> HeapAllocator
Sets the maximum number of words allowed in a single allocation.
Trait Implementations
sourceimpl Allocator for HeapAllocator
impl Allocator for HeapAllocator
sourcefn allocate_segment(&mut self, minimum_size: u32) -> (*mut u8, u32)
fn allocate_segment(&mut self, minimum_size: u32) -> (*mut u8, u32)
Allocates zeroed memory for a new segment, returning a pointer to the start of the segment
and a u32 indicating the length of the segment in words. The allocated segment must be
at least minimum_size
words long (minimum_size * 8
bytes long). Allocator implementations
commonly allocate much more than the minimum, to reduce the total number of segments needed.
A reasonable strategy is to allocate the maximum of minimum_size
and twice the size of the
previous segment. Read more
sourcefn deallocate_segment(&mut self, ptr: *mut u8, word_size: u32, _words_used: u32)
fn deallocate_segment(&mut self, ptr: *mut u8, word_size: u32, _words_used: u32)
Indicates that a segment, previously allocated via allocate_segment(), is no longer in use.
word_size
is the length of the segment in words, as returned from allocate_segment()
.
words_used
is always less than or equal to word_size
, and indicates how many
words (contiguous from the start of the segment) were possibly written with non-zero values. Read more
Auto Trait Implementations
impl RefUnwindSafe for HeapAllocator
impl Send for HeapAllocator
impl Sync for HeapAllocator
impl Unpin for HeapAllocator
impl UnwindSafe for HeapAllocator
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more