Add a marker trait
std::iter and implement it on
Fuse<I> and applicable iterators and adapters. By implementing
Fused, an iterator promises to behave as if
Iterator::fuse() had been called on it (i.e. return
None forever after returning
Currently, there’s no way to say “I want an iterator that returns None forever after returning None once”. This means that, to be safe, API’s need to manually call
fuse() on their iterators if they intend to rely on this behavior. However, many iterators already behave this way so having a way to mark them would be really nice.
- Yet another special iterator trait.
- This won’t be fully useful until we get some form of specialization.