[][src]Macro linq::linq

macro_rules! linq {
    (from $v:ident in $c:expr, select $ms:expr) => { ... };
    (from $v:ident in $c:expr, $(where $mw:expr,)+ select $ms:expr) => { ... };
    (from $v:ident in $c:expr, orderby $mo:expr, select $ms:expr) => { ... };
    (from $v:ident in $c:expr, orderby $mo:expr, descending, select $ms:expr) => { ... };
    (from $v:ident in $c:expr, $(where $mw:expr,)+ orderby $mo:expr, select $ms:expr) => { ... };
    (from $v:ident in $c:expr, $(where $mw:expr,)+ orderby $mo:expr, descending, select $ms:expr) => { ... };
    (from $v0:ident in $c0:expr, from $v:ident in $c:expr, select $ms:expr) => { ... };
    (from $v0:ident in $c0:expr, zfrom $v:ident in $c:expr, select $ms:expr) => { ... };
}

Create linq query

Use , to split each sub-statement.

See readme for more usage.

Examples

use linq::linq;
use linq::iter::Enumerable;

let x = 1..100;

let y: Vec<i32> = x
    .clone()
    .where_by(|p| p <= &5)
    .order_by(|p| -p)
    .select(|p| p * 2)
    .collect();

let e: Vec<i32> =
    linq!(from p in x.clone(), where p <= &5, orderby -p, select p * 2).collect();
assert_eq!(e, y);