pub struct GlobalPool { /* private fields */ }Expand description
A memory pool for general-purpose memory used for storage/processing of byte sequences.
§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 GlobalPool, which is a reasonable
default when there is no specific reason use a different memory provider.
Implementations§
Source§impl GlobalPool
impl GlobalPool
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new instance of the global memory pool.
§Efficiency
Each call to new() allocates a separate instance of the pool with its own memory capacity,
so avoid creating multiple instances if you can reuse an existing one.
Clones of a pool act as shared handles and share the memory capacity - feel free to clone as needed for convenient referencing purposes.
Sourcepub fn reserve(&self, min_bytes: usize) -> BytesBuf
pub 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.
Trait Implementations§
Source§impl Clone for GlobalPool
impl Clone for GlobalPool
Source§fn clone(&self) -> GlobalPool
fn clone(&self) -> GlobalPool
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more