1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#[macro_export]
macro_rules! start_script {
(
$( #[$attr:meta] )*
$pub:vis
async
fn start<$lt:lifetime> ($this:tt : $this_ty:ty, $engine_globals:tt : $engine_globals_ty:ty) -> Swap
{
$($body:tt)*
}
) => (
$( #[$attr] )*
#[allow(unused_parens)]
$pub
fn start<$lt> ($this : $this_ty, $engine_globals : $engine_globals_ty) -> ::std::pin::Pin<::std::boxed::Box<
dyn ::std::future::Future<Output = Swap>
+ ::std::marker::Send + $lt
>>
{
::std::boxed::Box::pin(async move {
$($body)*
})
}
)
}
#[macro_export]
macro_rules! frame_script {
(
$( #[$attr:meta] )*
$pub:vis
async
fn frame<$lt:lifetime> ($this:tt : $this_ty:ty , $engine_globals:tt : $engine_globals_ty:ty) -> Swap
{
$($body:tt)*
}
) => (
$( #[$attr] )*
#[allow(unused_parens)]
$pub
fn frame<$lt> ($this : $this_ty, $engine_globals : $engine_globals_ty) -> ::std::pin::Pin<::std::boxed::Box<
dyn ::std::future::Future<Output = Swap>
+ ::std::marker::Send + $lt
>>
{
::std::boxed::Box::pin(async move {
$($body)*
})
}
)
}
#[macro_export]
macro_rules! event_handler {
(
$( #[$attr:meta] )*
$pub:vis
async
fn event_handler<$lt:lifetime> ($this:tt : $this_ty:ty , $engine_globals:tt : $engine_globals_ty:ty, $event:tt : $event_ty:ty) -> Swap
{
$($body:tt)*
}
) => (
$( #[$attr] )*
#[allow(unused_parens)]
$pub
fn event_handler<$lt> ($this : $this_ty, $engine_globals : $engine_globals_ty, $event: $event_ty) -> ::std::pin::Pin<::std::boxed::Box<
dyn ::std::future::Future<Output = Swap>
+ ::std::marker::Send + $lt
>>
{
::std::boxed::Box::pin(async move {
$($body)*
})
}
)
}