1#[macro_export]
10macro_rules! clone {
11 ( $( $var:ident ),* => async move $body:block ) => {{
12 $( let $var = $var.clone(); )*
13 async move $body
14 }};
15
16 ( $( $var:ident ),* => $body:block ) => {{
17 $( let $var = $var.clone(); )*
18 $body
19 }};
20
21 ( $( $var:ident ),* => move |$( $arg:ident $(: $ty:ty)? ),*| async move $body:block ) => {{
22 $( let $var = $var.clone(); )*
23 move |$( $arg $(: $ty)? ),*| {
24 $( let $var = $var.clone(); )*
25 async move $body
26 }
27 }};
28
29 ( $( $var:ident ),* => |$( $arg:ident $(: $ty:ty)? ),*| async move $body:block ) => {{
30 $( let $var = $var.clone(); )*
31 move |$( $arg $(: $ty)? ),*| {
32 $( let $var = $var.clone(); )*
33 async move $body
34 }
35 }};
36
37 ( $( $var:ident ),* => move |$( $arg:ident $(: $ty:ty)? ),*| $body:block ) => {{
38 $( let $var = $var.clone(); )*
39 move |$( $arg $(: $ty)? ),*| {
40 $( let $var = $var.clone(); )*
41 $body
42 }
43 }};
44
45 ( $( $var:ident ),* => |$( $arg:ident $(: $ty:ty)? ),*| $body:block ) => {{
46 $( let $var = $var.clone(); )*
47 move |$( $arg $(: $ty)? ),*| {
48 $( let $var = $var.clone(); )*
49 $body
50 }
51 }};
52}