File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -100,3 +100,29 @@ pub fn extend_for_unit() {
100100 }
101101 assert_eq ! ( x, 5 ) ;
102102}
103+
104+ #[ test]
105+ pub fn inplace_result_collect ( ) {
106+ let src = vec ! [ 0usize ; 256 ] ;
107+ let srcptr = src. as_ptr ( ) ;
108+ let sink = src. into_iter ( ) . map ( |i| Ok ( i) ) . collect :: < Result < Vec < _ > , ( ) > > ( ) . unwrap ( ) ;
109+ let sinkptr = sink. as_ptr ( ) ;
110+ assert_eq ! ( srcptr, sinkptr) ;
111+
112+ let src: Vec < usize > = vec ! [ 0usize ; 256 ] ;
113+ let srcptr = src. as_ptr ( ) ;
114+ let iter = src
115+ . into_iter ( )
116+ . enumerate ( )
117+ . map ( |i| i. 0 + i. 1 )
118+ . zip ( std:: iter:: repeat ( 1usize ) )
119+ . map ( |( a, b) | a + b)
120+ . map_while ( Option :: Some )
121+ . peekable ( )
122+ . skip ( 1 )
123+ . map ( |e| std:: num:: NonZeroUsize :: new ( e) )
124+ . map ( |z| z. map ( |u| u. get ( ) ) . ok_or ( ( ) ) ) ;
125+ let sink = iter. collect :: < Result < Vec < _ > , _ > > ( ) . unwrap ( ) ;
126+ let sinkptr = sink. as_ptr ( ) ;
127+ assert_eq ! ( srcptr, sinkptr as * const usize ) ;
128+ }
You can’t perform that action at this time.
0 commit comments