micromap_rawl/set/
drain.rs

1use crate::SetDrain;
2use core::iter::FusedIterator;
3
4impl<K: PartialEq> Iterator for SetDrain<'_, K> {
5    type Item = K;
6
7    #[inline]
8    #[must_use]
9    fn next(&mut self) -> Option<Self::Item> {
10        self.iter.next().map(|(k, ())| k)
11    }
12
13    #[inline]
14    fn size_hint(&self) -> (usize, Option<usize>) {
15        (self.iter.len(), Some(self.iter.len()))
16    }
17}
18
19impl<K: PartialEq> ExactSizeIterator for SetDrain<'_, K> {
20    #[inline]
21    fn len(&self) -> usize {
22        self.iter.len()
23    }
24}
25
26impl<K: PartialEq> FusedIterator for SetDrain<'_, K> {}