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> {
4141 }
4242 }
4343
44- pub fn iter ( & self ) -> impl Iterator < Item = & T > {
44+ pub fn iter ( & self ) -> impl ExactSizeIterator < Item = & T > {
4545 ExactSizeIter {
4646 iter : self . chunks . iter ( ) . flat_map ( |chunk| chunk. iter ( ) ) ,
4747 len : self . len ( ) ,
@@ -104,3 +104,28 @@ impl<I: Iterator> ExactSizeIterator for ExactSizeIter<I> {
104104 self . len
105105 }
106106}
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