]> git.lizzy.rs Git - enumset.git/commitdiff
Implement ExactSizeIterator for EnumSetIter
authorDana Marcuse <dana@marcuse.us>
Fri, 29 May 2020 19:58:47 +0000 (15:58 -0400)
committerDana Marcuse <dana@marcuse.us>
Fri, 29 May 2020 19:58:47 +0000 (15:58 -0400)
enumset/src/lib.rs
enumset/tests/ops.rs

index 9c5bb464bcbe6a43da3475aafaa16224d2bc39c2..d03767e0e18f7a8b0d9e7a207282314ecee5ba46 100644 (file)
@@ -649,6 +649,8 @@ impl <T: EnumSetType> Iterator for EnumSetIter<T> {
     }
 }
 
+impl<T: EnumSetType> ExactSizeIterator for EnumSetIter<T> {}
+
 impl<T: EnumSetType> Extend<T> for EnumSet<T> {
     fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I) {
         iter.into_iter().for_each(|v| { self.insert(v); });
index 5c0ad76c3e013cc8d5a04958e1c149193ab360ba..aa7019b8c3334d8d8c5bf48da393d60fe0a009fa 100644 (file)
@@ -196,9 +196,11 @@ macro_rules! test_enum {
             let mut itr = set.iter();
             for idx in 0 .. count {
                 assert_eq!(itr.size_hint(), (count-idx, Some(count-idx)));
+                assert_eq!(itr.len(), count-idx);
                 assert!(itr.next().is_some());
             }
             assert_eq!(itr.size_hint(), (0, Some(0)));
+            assert_eq!(itr.len(), 0);
         }
         #[test]
         fn test_iter_size_hint() {