File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed
library/core/src/slice/iter Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -185,6 +185,14 @@ macro_rules! iterator {
185185 }
186186 }
187187
188+ #[ inline]
189+ fn advance_by( & mut self , n: usize ) -> Result <( ) , usize >{
190+ let advance = cmp:: min( n, len!( self ) ) ;
191+ // SAFETY: `advance` does not exceed `self.len()` by construction
192+ unsafe { self . post_inc_start( advance as isize ) } ;
193+ if advance == n { Ok ( ( ) ) } else { Err ( advance) }
194+ }
195+
188196 #[ inline]
189197 fn last( mut self ) -> Option <$elem> {
190198 self . next_back( )
@@ -371,6 +379,14 @@ macro_rules! iterator {
371379 Some ( next_back_unchecked!( self ) )
372380 }
373381 }
382+
383+ #[ inline]
384+ fn advance_back_by( & mut self , n: usize ) -> Result <( ) , usize > {
385+ let advance = cmp:: min( n, len!( self ) ) ;
386+ // SAFETY: `advance` does not exceed `self.len()` by construction
387+ unsafe { self . pre_dec_end( advance as isize ) } ;
388+ if advance == n { Ok ( ( ) ) } else { Err ( advance) }
389+ }
374390 }
375391
376392 #[ stable( feature = "fused" , since = "1.26.0" ) ]
You can’t perform that action at this time.
0 commit comments