1use ::std::alloc::alloc;
3use ::std::alloc::dealloc;
4use ::std::alloc::Layout;
5use ::std::mem::align_of;
6
7#[no_mangle]
8pub unsafe fn contract_alloc(len: usize) -> *mut u8 {
9 let align = align_of::<usize>();
10 let layout = Layout::from_size_align_unchecked(len, align);
11 alloc(layout)
12}
13
14#[no_mangle]
15pub unsafe fn contract_dealloc(ptr: *mut u8, size: usize) {
16 let align = align_of::<usize>();
17 let layout = Layout::from_size_align_unchecked(size, align);
18 dealloc(ptr, layout);
19}