Macro Set

Source
macro_rules! Set {
    ($(,)?) => { ... };
    ($t1:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty, $t6:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty, $t6:ty, $t7:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty, $t6:ty, $t7:ty, $t8:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty, $t6:ty, $t7:ty, $t8:ty, $t9:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty, $t6:ty, $t7:ty, $t8:ty, $t9:ty, $t10:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty, $t6:ty, $t7:ty, $t8:ty, $t9:ty, $t10:ty, $t11:ty $(,)?) => { ... };
    ($t1:ty, $t2:ty, $t3:ty, $t4:ty, $t5:ty, $t6:ty, $t7:ty, $t8:ty, $t9:ty, $t10:ty, $t11:ty, $t12:ty $(,)?) => { ... };
}
Expand description

Create a Set from a list of types.

Example:

  • Set![] == Set<dyn Zero>
  • Set![u32] == Set<dyn One<u32>>
  • Set![u32, u64] == Set<dyn Two<u32, u64>>

This macro works for up to 12 types.