File tree Expand file tree Collapse file tree 1 file changed +26
-1
lines changed
turbopack/crates/turbo-tasks-backend/src/utils Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ impl<T> ChunkedVec<T> {
41
41
}
42
42
}
43
43
44
- pub fn iter ( & self ) -> impl Iterator < Item = & T > {
44
+ pub fn iter ( & self ) -> impl ExactSizeIterator < Item = & T > {
45
45
ExactSizeIter {
46
46
iter : self . chunks . iter ( ) . flat_map ( |chunk| chunk. iter ( ) ) ,
47
47
len : self . len ( ) ,
@@ -104,3 +104,28 @@ impl<I: Iterator> ExactSizeIterator for ExactSizeIter<I> {
104
104
self . len
105
105
}
106
106
}
107
+
108
+ #[ cfg( test) ]
109
+ mod tests {
110
+ use super :: ChunkedVec ;
111
+
112
+ #[ test]
113
+ fn test_chunked_vec ( ) {
114
+ for i in 0 ..1000 {
115
+ let mut vec = ChunkedVec :: new ( ) ;
116
+ for j in 0 ..i {
117
+ vec. push ( j) ;
118
+ }
119
+ assert_eq ! ( vec. len( ) , i) ;
120
+ assert_eq ! (
121
+ vec. iter( ) . copied( ) . collect:: <Vec <_>>( ) ,
122
+ ( 0 ..i) . collect:: <Vec <_>>( )
123
+ ) ;
124
+ assert_eq ! ( vec. iter( ) . len( ) , i) ;
125
+ assert_eq ! ( vec. is_empty( ) , i == 0 ) ;
126
+ let iter = vec. into_iter ( ) ;
127
+ assert_eq ! ( iter. len( ) , i) ;
128
+ assert_eq ! ( iter. collect:: <Vec <_>>( ) , ( 0 ..i) . collect:: <Vec <_>>( ) ) ;
129
+ }
130
+ }
131
+ }
You can’t perform that action at this time.
0 commit comments