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
#[macro_export]
macro_rules! __impl_pass_dep {
    ($dep:ident) => {
        $crate::auto_wrap_rc!($dep)
    };
    ($dep:ident = $dep_expr:expr) => {
        $crate::auto_wrap_rc!($dep_expr)
    };
}

#[macro_export]
macro_rules! __impl_let_dep_list {
    ({ $dep_tuple:expr } $dep:ident) => {
        let $dep = $dep_tuple;
    };
    ({ $dep_tuple:expr } $dep:ident $($dep_list:ident)+) => {
        let ($dep, $($dep_list),+) = Clone::clone(&*$dep_tuple);
    };
}

#[macro_export]
macro_rules! __impl_let_dep_list_memo {
    ({ $dep_tuple:expr } $dep:ident) => {
        let $dep = $dep_tuple;
    };
    ({ $dep_tuple:expr } $dep:ident $($dep_list:ident)+) => {
        let ($dep, $($dep_list),+) = $dep_tuple.as_ref();
    };
}