blob: 5a1ded7bf9192c5ecc6f23ab629f7e85a87e935c [file] [log] [blame]
use crate::ptr;
pub type Key = usize;
type Dtor = unsafe extern "C" fn(*mut u8);
static mut STORAGE: crate::vec::Vec<(*mut u8, Option<Dtor>)> = Vec::new();
#[inline]
pub unsafe fn create(dtor: Option<Dtor>) -> Key {
let key = STORAGE.len();
STORAGE.push((ptr::null_mut(), dtor));
key
}
#[inline]
pub unsafe fn set(key: Key, value: *mut u8) {
STORAGE[key].0 = value;
}
#[inline]
pub unsafe fn get(key: Key) -> *mut u8 {
STORAGE[key].0
}
#[inline]
pub unsafe fn destroy(_key: Key) {
}