[][src]Macro frunk::hlist_pat

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

Macro for pattern-matching on HLists.

Taken from https://github.com/tbu-/rust-rfcs/blob/master/text/0873-type-macros.md

Examples

let h = hlist![13.5f32, "hello", Some(41)];
let hlist_pat![a1, a2, a3] = h;
assert_eq!(a1, 13.5f32);
assert_eq!(a2, "hello");
assert_eq!(a3, Some(41));

// Use "...tail" to match the rest of the list
let hlist_pat![b_head, ...b_tail] = h;
assert_eq!(b_head, 13.5f32);
assert_eq!(b_tail, hlist!["hello", Some(41)]);

// You can also use "..." to just ignore the rest.
let hlist_pat![c, ...] = h;
assert_eq!(c, 13.5f32);Run