pub struct Pool(/* private fields */);
Expand description
Non-owning wrapper for an ngx_pool_t
pointer, providing methods for working with memory pools.
See https://nginx.org/en/docs/dev/development_guide.html#pool
Implementations§
Source§impl Pool
impl Pool
Sourcepub unsafe fn from_ngx_pool(pool: *mut ngx_pool_t) -> Pool
pub unsafe fn from_ngx_pool(pool: *mut ngx_pool_t) -> Pool
Creates a new Pool
from an ngx_pool_t
pointer.
§Safety
The caller must ensure that a valid ngx_pool_t
pointer is provided, pointing to valid
memory and non-null. A null argument will cause an assertion failure and panic.
Sourcepub fn create_buffer(&mut self, size: usize) -> Option<TemporaryBuffer>
pub fn create_buffer(&mut self, size: usize) -> Option<TemporaryBuffer>
Creates a buffer of the specified size in the memory pool.
Returns Some(TemporaryBuffer)
if the buffer is successfully created, or None
if
allocation fails.
Sourcepub fn create_buffer_from_str(&mut self, str: &str) -> Option<TemporaryBuffer>
pub fn create_buffer_from_str(&mut self, str: &str) -> Option<TemporaryBuffer>
Creates a buffer from a string in the memory pool.
Returns Some(TemporaryBuffer)
if the buffer is successfully created, or None
if
allocation fails.
Sourcepub fn create_buffer_from_static_str(
&mut self,
str: &'static str,
) -> Option<MemoryBuffer>
pub fn create_buffer_from_static_str( &mut self, str: &'static str, ) -> Option<MemoryBuffer>
Creates a buffer from a static string in the memory pool.
Returns Some(MemoryBuffer)
if the buffer is successfully created, or None
if allocation
fails.
Sourcepub fn alloc(&mut self, size: usize) -> *mut c_void
pub fn alloc(&mut self, size: usize) -> *mut c_void
Allocates memory from the pool of the specified size. The resulting pointer is aligned to a platform word size.
Returns a raw pointer to the allocated memory.
Sourcepub fn alloc_type<T: Copy>(&mut self) -> *mut T
pub fn alloc_type<T: Copy>(&mut self) -> *mut T
Allocates memory for a type from the pool. The resulting pointer is aligned to a platform word size.
Returns a typed pointer to the allocated memory.
Sourcepub fn calloc(&mut self, size: usize) -> *mut c_void
pub fn calloc(&mut self, size: usize) -> *mut c_void
Allocates zeroed memory from the pool of the specified size. The resulting pointer is aligned to a platform word size.
Returns a raw pointer to the allocated memory.
Sourcepub fn calloc_type<T: Copy>(&mut self) -> *mut T
pub fn calloc_type<T: Copy>(&mut self) -> *mut T
Allocates zeroed memory for a type from the pool. The resulting pointer is aligned to a platform word size.
Returns a typed pointer to the allocated memory.
Sourcepub fn alloc_unaligned(&mut self, size: usize) -> *mut c_void
pub fn alloc_unaligned(&mut self, size: usize) -> *mut c_void
Allocates unaligned memory from the pool of the specified size.
Returns a raw pointer to the allocated memory.
Sourcepub fn alloc_type_unaligned<T: Copy>(&mut self) -> *mut T
pub fn alloc_type_unaligned<T: Copy>(&mut self) -> *mut T
Allocates unaligned memory for a type from the pool.
Returns a typed pointer to the allocated memory.
Trait Implementations§
Source§impl Allocator for Pool
impl Allocator for Pool
Source§fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
Source§unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout)
unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout)
ptr
. Read more§fn allocate_zeroed(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
fn allocate_zeroed(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
allocate
, but also ensures that the returned memory is zero-initialized. Read more§unsafe fn grow(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<[u8]>, AllocError>
unsafe fn grow( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<[u8]>, AllocError>
§unsafe fn grow_zeroed(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<[u8]>, AllocError>
unsafe fn grow_zeroed( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<[u8]>, AllocError>
grow
, but also ensures that the new contents are set to zero before being
returned. Read more