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
#[macro_export]
macro_rules! gen_full_variant {
    ($($a:tt)*) => {
        comet_macro_procs::generate_hash!{ _gen_full_variant!{ $($a)* } }
    };
}

#[macro_export]
macro_rules! _gen_full_variant {
    ($gensym:ident, $($a:tt)*) => {
        Msg::$gensym
    };
}

#[macro_export]
macro_rules! gen_variant {
    ($($a:tt)*) => {
        comet_macros::gensym!{ _gen_variant!{ $($a)* } }
    };
}

#[macro_export]
macro_rules! _gen_variant {
    ($gensym:ident, $($a:tt)*) => {
        $gensym
    };
}