mod handle_set;
mod ptr;
pub use handle_set::{Handle as FfiHandle, HandleSet as FfiHandleSet};
pub use ptr::*;
#[macro_export]
macro_rules! cstr {
($s:literal) => {
unsafe { ::std::mem::transmute::<_, &::std::ffi::CStr>(concat!($s, "\0")) }
};
}
#[macro_export]
macro_rules! zeroed_init {
() => (
unsafe {
#[allow(invalid_value)]
::std::mem::MaybeUninit::zeroed().assume_init()
}
);
($x:ident $(,$field:ident: $value:expr)* $(,)?) => (
unsafe {
$x = {
#[allow(invalid_value)]
::std::mem::MaybeUninit::zeroed().assume_init()
};
$(std::ptr::write(&mut $x.$field, $value);)*
}
);
}
#[macro_export]
macro_rules! uninit_assume_init {
($(,)?) => {
unsafe {
#[allow(invalid_value)]
::std::mem::MaybeUninit::uninit().assume_init()
}
};
}