macro_rules! vec_it {
(
$expr:expr ,
for $var:pat in $iterable:expr
$(
,
$($if_cond:tt)*
)?
) => { ... };
(@parsing_mapped_expr
$fallback_to_vec:tt
) => { ... };
(@parsing_mapped_expr
$mapped_expression:tt
for
$($rest:tt)*
) => { ... };
(@parsing_mapped_expr
[ $($mapped_expression_tts:tt)* ]
$current_tt:tt
$($rest:tt)*
) => { ... };
(@parsing_for
[ $($mapped_expression_tts:tt)* ]
[ $($for_body_tts:tt)* ]
) => { ... };
(@parsing_for
[ $($mapped_expression_tts:tt)* ]
[ $($for_body_tts:tt)* ]
if
$($rest:tt)*
) => { ... };
(@parsing_for
$mapped_expression:tt
[ $($for_body_tts:tt)* ]
$current_tt:tt
$($rest:tt)*
) => { ... };
(
$($tt:tt)*
) => { ... };
}
Python "list" comprehensions: same as iter!
,
but collect
ed into a Vec
instead.
vec_it!
fallbacks to ::std::vec!
functionality,
thus allowing maximum compatiblity!
use ::iter_python::vec_it as vec;
let v1 = vec![i for i in 1 ..= 4];
let v2 = vec![1, 2, 3, 4];
assert_eq!(v1, v2);
It has not been named vec
to prevent lints against ambiguous blob imports.