[][src]Macro frunk::hlist

macro_rules! hlist {
    (  ) => { ... };
    ( ... $ rest : expr ) => { ... };
    (
$ a : expr ) => { ... };
    (
$ a : expr , $ ( $ tok : tt ) * ) => { ... };
}

Returns an HList based on the values passed in.

Helps to avoid having to write nested HCons.

Examples

let h = hlist![13.5f32, "hello", Some(41)];
let (h1, (h2, h3)) = h.into_tuple2();
assert_eq!(h1, 13.5f32);
assert_eq!(h2, "hello");
assert_eq!(h3, Some(41));

// Also works when you have trailing commas
let h4 = hlist!["yo",];
let h5 = hlist![13.5f32, "hello", Some(41),];
assert_eq!(h4, hlist!["yo"]);
assert_eq!(h5, hlist![13.5f32, "hello", Some(41)]);

// Use "...tail" to append an existing list at the end
let h6 = hlist![12, ...h5];
assert_eq!(h6, hlist![12, 13.5f32, "hello", Some(41)]);Run