[][src]Macro frunk::Coprod

macro_rules! Coprod {
    (  ) => { ... };
    ( ... $ Rest : ty ) => { ... };
    ( $ A : ty ) => { ... };
    (
$ A : ty , $ ( $ tok : tt ) * ) => { ... };
}

Returns a type signature for a Coproduct of the provided types

This is a type macro (introduced in Rust 1.13) that makes it easier to write nested type signatures.

Examples

type I32Bool = Coprod!(i32, bool);
let co1 = I32Bool::inject(3);

// Use ...Tail to append another coproduct at the end.
let co2 = <Coprod!(&str, String, ...I32Bool)>::inject(3);Run