mirmalloc 0.2.0

MiMalloc Rust Bindings
Documentation
use std::ffi::c_long;
use std::ptr::null_mut;
use libmimalloc_sys_ms::{mi_collect, mi_option_arena_reserve, mi_option_set, mi_stats_print};

pub struct ArenaSize(pub usize);

impl ArenaSize {
    pub const fn from_kb(size: usize) -> Self {
        Self(size)
    }
}

pub fn print_stats() {
    unsafe { mi_stats_print(null_mut()) }
}

pub fn set_arena_reserve(arena: ArenaSize) {
    unsafe { mi_option_set(mi_option_arena_reserve, arena.0 as c_long) }
}

pub fn collect(force: bool) {
    unsafe { mi_collect(force) }
}