1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#[macro_export]
macro_rules! import {
($name:ident, fn($($argument_name:ident: $argument_type:ty),* $(,)?) -> $result_type:ty $(,)?) => {
extern "C" {
fn $name($($argument_name: $argument_type),*) -> $result_type;
}
};
($name:ident, async fn($($argument_name:ident: $argument_type:ty),* $(,)?) -> $result_type:ty $(,)?) => {
extern "C" {
fn $name(
stack: &mut $crate::cps::AsyncStack<$result_type>,
continue_: $crate::cps::ContinuationFunction<$result_type, $result_type>,
$($argument_name: $argument_type),*
);
}
};
}