Macro mapcomp::hashsetc[][src]

macro_rules! hashsetc {
    (@__ $acc:ident, $exp:expr; for $item:pat in $iter:expr; if $cond:expr) => { ... };
    (@__ $acc:ident, $exp:expr; for $item:pat in $iter:expr) => { ... };
    (@__ $acc:ident, $exp:expr; for $item:pat in $iter:expr; if $cond:expr; $($tail:tt)+) => { ... };
    (@__ $acc:ident, $exp:expr; for $item:pat in $iter:expr; $($tail:tt)+) => { ... };
    ($exp:expr; $($tail:tt)+) => { ... };
}

Hash Set Comprehension

Creates a HashSet from the contents of the comprehension. It is analogous to Python's set comprehension.

Python code:

matrix = [[3, 8, 7], [9, 5, 3], [4, 5, 6]]

members = {n for row in matrix for n in row}

Rust equivalent code:

let matrix = [[3, 8, 7], [9, 5, 3], [4, 5, 6]];

let members = hashsetc!{n; for row in &matrix; for n in row};

for n in &[3, 8, 7, 9, 5, 4, 6] {
    assert!(members.contains(n));
}