Skip to main content

Either

Macro Either 

Source
macro_rules! Either {
    ($A:ty$(,)?) => { ... };
    ($A:ty, $B:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty, $J:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty, $J:ty, $K:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty, $J:ty, $K:ty, $L:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty, $J:ty, $K:ty, $L:ty, $M:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty, $J:ty, $K:ty, $L:ty, $M:ty, $N:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty, $J:ty, $K:ty, $L:ty, $M:ty, $N:ty, $O:ty$(,)?) => { ... };
    ($A:ty, $B:ty, $C:ty, $D:ty, $E:ty, $F:ty, $G:ty, $H:ty, $I:ty, $J:ty, $K:ty, $L:ty, $M:ty, $N:ty, $O:ty, $P:ty$(,)?) => { ... };
}
Expand description

Convenience macro for refering to Either types by listing their variants.

ยงExample

use either_of::Either;

let _: either_of::EitherOf3<u8, i8, u32> = <Either!(u8, i8, u32)>::A(0);

A single type parameter equates to its value:

let a: Either!(i32) = 0;
let _: i32 = a;