私は、各ブランチが異なるタイプを返すことができる一致を実行しようとするコードを持っていますが、はすべてIterator<Item=usize>
を実装しています。イテレータを返すマッチアーム?
let found: Iterator<Item = usize> = match requirements {
Requirements::A => MatchingAs { ainternals: [] },
Requirements::B => MatchingBs { binternals: [] },
Requirements::C => MatchingCs { cinternals: [] },
};
return found.any(|m| m == 1)
...どこMatchingAs
、MatchingBs
、およびMatchingCs
すべてimpl
std::iter::Iterator<Item = usize>
。
私はIterator
がサイズにされていないという事実と壁当たっている:
| the trait `std::marker::Sized` is not implemented for `std::iter::Iterator<Item=usize>`
を一致アームが共有特性を持つオブジェクトを返し、その後、頼る持っている良い方法はあります(のみ)結果を処理する際の特性について?
これは[イテレータを返すための正しい方法?](http://stackoverflow.com/q/27535289/155423)の重複しない理由を説明してください – Shepmaster