Struct physfs_sys::PHYSFS_Allocator [−][src]
#[repr(C)]pub struct PHYSFS_Allocator {
pub Init: Option<unsafe extern "C" fn() -> c_int>,
pub Deinit: Option<unsafe extern "C" fn()>,
pub Malloc: Option<unsafe extern "C" fn(arg1: PHYSFS_uint64) -> *mut c_void>,
pub Realloc: Option<unsafe extern "C" fn(arg1: *mut c_void, arg2: PHYSFS_uint64) -> *mut c_void>,
pub Free: Option<unsafe extern "C" fn(arg1: *mut c_void)>,
}
Expand description
\struct PHYSFS_Allocator \brief PhysicsFS allocation function pointers.
(This is for limited, hardcore use. If you don’t immediately see a need for it, you can probably ignore this forever.)
You create one of these structures for use with PHYSFS_setAllocator. Allocators are assumed to be reentrant by the caller; please mutex accordingly.
Allocations are always discussed in 64-bits, for future expansion…we’re on the cusp of a 64-bit transition, and we’ll probably be allocating 6 gigabytes like it’s nothing sooner or later, and I don’t want to change this again at that point. If you’re on a 32-bit platform and have to downcast, it’s okay to return NULL if the allocation is greater than 4 gigabytes, since you’d have to do so anyhow.
\sa PHYSFS_setAllocator
Fields
Init: Option<unsafe extern "C" fn() -> c_int>
< Initialize. Can be NULL. Zero on failure.
Deinit: Option<unsafe extern "C" fn()>
< Deinitialize your allocator. Can be NULL.
Malloc: Option<unsafe extern "C" fn(arg1: PHYSFS_uint64) -> *mut c_void>
< Allocate like malloc().
Realloc: Option<unsafe extern "C" fn(arg1: *mut c_void, arg2: PHYSFS_uint64) -> *mut c_void>
< Reallocate like realloc().
Free: Option<unsafe extern "C" fn(arg1: *mut c_void)>
< Free memory from Malloc or Realloc.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for PHYSFS_Allocator
impl Send for PHYSFS_Allocator
impl Sync for PHYSFS_Allocator
impl Unpin for PHYSFS_Allocator
impl UnwindSafe for PHYSFS_Allocator
Blanket Implementations
Mutably borrows from an owned value. Read more