pub trait Memory: Debug {
// Required method
fn reserve(&self, min_bytes: usize) -> BytesBuf;
}Expand description
Provides memory capacity for byte sequences.
Call reserve() to reserve memory capacity and obtain a BytesBuf
that can be used to fill the reserved memory with data.
§Choosing a memory provider
If you are writing bytes to or reading bytes from an object that either itself implements
Memory or exposes an implementation via HasMemory,
you should use Memory::reserve() from this provider
to obtain memory to store bytes in.
Otherwise, use a shared instance of GlobalPool, which is a reasonable
default when there is no specific reason use a different memory provider.
§Resource management
The reserved memory is released when the last BytesBuf or
BytesView referencing it is dropped.
Required Methods§
Sourcefn reserve(&self, min_bytes: usize) -> BytesBuf
fn reserve(&self, min_bytes: usize) -> BytesBuf
Reserves at least min_bytes bytes of memory capacity.
Returns an empty BytesBuf that can be used to fill the reserved memory with data.
The memory provider may provide more memory than requested.
The memory reservation request will always be fulfilled, obtaining more memory from the operating system if necessary.
§Zero-sized reservations
Reserving zero bytes of memory is a valid operation and will return a BytesBuf
with zero or more bytes of capacity.
§Panics
May panic if the operating system runs out of memory.
Implementors§
impl Memory for GlobalPool
impl Memory for OpaqueMemory
impl Memory for FixedBlockMemory
test-util only.impl Memory for TransparentMemory
test-util only.