В функции разные ветви возвращают разные типы итераторов. Какое требование impl Trait нарушено в этом коде?
fn numbers(only_even: bool) -> impl Iterator<Item = u32> {
if only_even {
0..10
} else {
(0..10).filter(|x| x % 2 == 0)
}
}