Struct capnp::message::ScratchSpaceHeapAllocator [−][src]
An Allocator whose first segment is a backed by a user-provided buffer.
Recall that an Allocator
implementation must ensure that allocated segments are
initially zeroed. ScratchSpaceHeapAllocator
ensures that is the case by zeroing
the entire buffer upon initial construction, and then zeroing any potentially used
part of the buffer upon deallocate_segment()
.
You can reuse a ScratchSpaceHeapAllocator
by calling message::Builder::into_allocator()
,
or by initally passing it to message::Builder::new()
as a &mut ScratchSpaceHeapAllocator
.
Such reuse can save significant amounts of zeroing.
Implementations
impl<'a> ScratchSpaceHeapAllocator<'a>
[src]
pub fn new(scratch_space: &'a mut [u8]) -> ScratchSpaceHeapAllocator<'a>
[src]
Writes zeroes into the entire buffer and constructs a new allocator from it.
If the buffer is large, this operation could be relatively expensive. If you want to reuse
the same scratch space in a later message, you should reuse the entire
ScratchSpaceHeapAllocator
, to avoid paying this full cost again.
pub fn second_segment_words(self, value: u32) -> ScratchSpaceHeapAllocator<'a>
[src]
Sets the size of the second segment in words, where 1 word = 8 bytes.
(The first segment is the scratch space passed to ScratchSpaceHeapAllocator::new()
.
pub fn allocation_strategy(
self,
value: AllocationStrategy
) -> ScratchSpaceHeapAllocator<'a>
[src]
self,
value: AllocationStrategy
) -> ScratchSpaceHeapAllocator<'a>
Sets the allocation strategy for segments after the second one.
Trait Implementations
impl<'a> Allocator for ScratchSpaceHeapAllocator<'a>
[src]
Auto Trait Implementations
impl<'a> RefUnwindSafe for ScratchSpaceHeapAllocator<'a>
impl<'a> Send for ScratchSpaceHeapAllocator<'a>
impl<'a> Sync for ScratchSpaceHeapAllocator<'a>
impl<'a> Unpin for ScratchSpaceHeapAllocator<'a>
impl<'a> !UnwindSafe for ScratchSpaceHeapAllocator<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,