When returning an iterator of an unspecified type, I like to return impl ExactSizeIterator when I know that the type I'm returning always implements that trait. That gives the caller more options. But I noticed that while the regular Iterator trait has the #[must_use] attribute, the ExactSizeIterator trait does not. This means that the caller isn't warned about ignoring the return value when they call my function. This seems like an odd oversight, so the attribute should probably be added?
The same seems to apply to other more specific iterator traits, like DoubleEndedIterator and FusedIterator.
When returning an iterator of an unspecified type, I like to return
impl ExactSizeIteratorwhen I know that the type I'm returning always implements that trait. That gives the caller more options. But I noticed that while the regularIteratortrait has the#[must_use]attribute, theExactSizeIteratortrait does not. This means that the caller isn't warned about ignoring the return value when they call my function. This seems like an odd oversight, so the attribute should probably be added?The same seems to apply to other more specific iterator traits, like
DoubleEndedIteratorandFusedIterator.