Python generator expressions ([
iter!
]) and "list" comprehensions ([vec_it!
])
Add the following line to your Cargo.toml
, under [dependencies]
:
toml
iter-python = "0.9.0"
Bring [iter!
] and [(enhanced) vec!
][vec_it!
] into scope in you Rust code with:
rust
use ::iter_python::{iter, vec_it as vec};
``rust
//! Run with
cargo 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.