1#![cfg_attr(not(any(target_arch = "wasm32")), no_std)]
2
3extern crate alloc;
4
5use alloc::alloc::Layout;
6
7#[cfg(target_arch = "wasm32")]
8mod wasm_glue;
10
11mod writeable;
12pub use writeable::DiplomatWriteable;
13
14mod result;
15pub use result::DiplomatResult;
16
17pub type DiplomatChar = u32;
19
20pub type DiplomatStr = [u8];
22
23pub type DiplomatStr16 = [u16];
25
26pub type DiplomatByte = u8;
30
31#[no_mangle]
36pub unsafe extern "C" fn diplomat_alloc(size: usize, align: usize) -> *mut u8 {
37 alloc::alloc::alloc(Layout::from_size_align(size, align).unwrap())
38}
39
40#[no_mangle]
44pub unsafe extern "C" fn diplomat_free(ptr: *mut u8, size: usize, align: usize) {
45 alloc::alloc::dealloc(ptr, Layout::from_size_align(size, align).unwrap())
46}