>>975
イテレータとの折衷案はいかが
一応coro-prime-sieveと書かれているから
yieldを使うコルーチンを使って
篩法で実装されていればいいと解釈すると
これがシンプルでよいかと

fn prime_generator() -> impl Iterator<Item = usize> {
gen {
let mut primes = Vec::new();
for i in 2.. {
if primes.iter().all(|&prime| i % prime != 0) {
primes.push(i);
yield i;
}
}
}
}