#[cfg(target_pointer_width = "32")]
include!("bindings_rest_32.rs");
#[cfg(target_pointer_width = "64")]
include!("bindings_rest.rs");
macro_rules! convert_to_typedefs {
() => {};
(
pub fn $func_name:ident($($arg:ident:$ty:ty),*$(,)?);
$($tail:tt)*
) => {
pub type $func_name = unsafe extern "C" fn($($arg:$ty),*);
convert_to_typedefs! { $($tail)* }
};
(
pub fn $func_name:ident($($arg:ident:$ty:ty),*$(,)?) -> *const $retval:path;
$($tail:tt)*
) => {
pub type $func_name = unsafe extern "C" fn($($arg:$ty),*) -> *const $retval;
convert_to_typedefs! { $($tail)* }
};
(
pub fn $func_name:ident($($arg:ident:$ty:ty),*$(,)?) -> *mut $retval:path;
$($tail:tt)*
) => {
pub type $func_name = unsafe extern "C" fn($($arg:$ty),*) -> *mut $retval;
convert_to_typedefs! { $($tail)* }
};
(
pub fn $func_name:ident($($arg:ident:$ty:ty),*$(,)?) -> $retval:path;
$($tail:tt)*
) => {
pub type $func_name = unsafe extern "C" fn($($arg:$ty),*) -> $retval;
convert_to_typedefs! { $($tail)* }
};
(
extern "C" {
$($tail:tt)*
}
) => {
convert_to_typedefs! { $($tail)* }
};
}
include!("bindings_funcs.rs");