File tree Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -367,3 +367,27 @@ fn bench_partial_cmp(b: &mut Bencher) {
367367fn bench_lt ( b : & mut Bencher ) {
368368 b. iter ( || ( 0 ..100000 ) . map ( black_box) . lt ( ( 0 ..100000 ) . map ( black_box) ) )
369369}
370+
371+ #[ bench]
372+ fn bench_trusted_random_access_adapters ( b : & mut Bencher ) {
373+ let vec1: Vec < _ > = ( 0usize ..100000 ) . collect ( ) ;
374+ let vec2 = black_box ( vec1. clone ( ) ) ;
375+ b. iter ( || {
376+ let mut iter = vec1
377+ . iter ( )
378+ . copied ( )
379+ . enumerate ( )
380+ . map ( |( idx, e) | idx. wrapping_add ( e) )
381+ . zip ( vec2. iter ( ) . copied ( ) )
382+ . map ( |( a, b) | a. wrapping_add ( b) )
383+ . fuse ( ) ;
384+ let mut acc: usize = 0 ;
385+ let size = iter. size ( ) ;
386+ for i in 0 ..size {
387+ // SAFETY: TRA requirements are satisfied by 0..size iteration and then dropping the
388+ // iterator.
389+ acc = acc. wrapping_add ( unsafe { iter. __iterator_get_unchecked ( i) } ) ;
390+ }
391+ acc
392+ } )
393+ }
Original file line number Diff line number Diff line change 33#![ feature( flt2dec) ]
44#![ feature( int_log) ]
55#![ feature( test) ]
6+ #![ feature( trusted_random_access) ]
67
78extern crate test;
89
You can’t perform that action at this time.
0 commit comments