iter-python

Python generator expressions ([iter!]) and "list" comprehensions ([vec_it!])

Repository Latest version Documentation License

Usage

  1. Add the following line to your Cargo.toml, under [dependencies]:

    toml iter-python = "0.9.0"

  2. Bring [iter!] and [(enhanced) vec!][vec_it!] into scope in you Rust code with:

    rust use ::iter_python::{iter, vec_it as vec};

Example

``rust //! Run withcargo run --example readme`

use ::iterpython::{ iter, // "generator expressions" vecit as vec, // "list comprehensions" };

fn main () { use ::itertools::Itertools; // .join() method

let s = iter!(
    format!("{}!", s)
    for s in " Hello World ".split_whitespace()
    if !s.is_empty()
).join("\n");
dbg!(&s);
assert_eq!(
    s,
    "Hello!\nWorld!",
);

let v = vec![
    x
    for &x_opt in &[None, Some(42), None]
    if let Some(x) = x_opt
];
dbg!(&v);
assert_eq!(
    v,
    vec![42],  // classic vec! macro is still there
);

} ```

See [iter!] and [vec_it!] for more examples.