@@ -99,125 +99,6 @@ where
9999 ( start, end)
100100}
101101
102- #[ inline( always) ]
103- #[ cfg( feature = "unstable" ) ]
104- fn slice_take < ' a , T , R : core:: ops:: OneSidedRange < usize > > (
105- slice : & mut & ' a [ T ] ,
106- range : R ,
107- ) -> Option < & ' a [ T ] > {
108- slice. split_off ( range)
109- }
110-
111- #[ cfg( not( feature = "unstable" ) ) ]
112- fn slice_take < ' a , T , R : RangeBounds < usize > > ( slice : & mut & ' a [ T ] , range : R ) -> Option < & ' a [ T ] > {
113- match ( range. start_bound ( ) , range. end_bound ( ) ) {
114- ( Bound :: Unbounded , Bound :: Excluded ( index) ) => {
115- if * index > slice. len ( ) {
116- return None ;
117- }
118- let ( left, right) = slice. split_at ( * index) ;
119- * slice = right;
120- Some ( left)
121- }
122- ( Bound :: Included ( index) , Bound :: Unbounded ) => {
123- if * index > slice. len ( ) {
124- return None ;
125- }
126- let ( left, right) = slice. split_at ( * index) ;
127- * slice = left;
128- Some ( right)
129- }
130- _ => unimplemented ! ( ) ,
131- }
132- }
133-
134- #[ inline( always) ]
135- #[ cfg( feature = "unstable" ) ]
136- fn slice_take_mut < ' a , T , R : core:: ops:: OneSidedRange < usize > > (
137- slice : & mut & ' a mut [ T ] ,
138- range : R ,
139- ) -> Option < & ' a mut [ T ] > {
140- slice. split_off_mut ( range)
141- }
142-
143- #[ cfg( not( feature = "unstable" ) ) ]
144- fn slice_take_mut < ' a , T , R : RangeBounds < usize > > (
145- slice : & mut & ' a mut [ T ] ,
146- range : R ,
147- ) -> Option < & ' a mut [ T ] > {
148- match ( range. start_bound ( ) , range. end_bound ( ) ) {
149- ( Bound :: Unbounded , Bound :: Excluded ( index) ) => {
150- if * index > slice. len ( ) {
151- return None ;
152- }
153- let ( left, right) = core:: mem:: take ( slice) . split_at_mut ( * index) ;
154- * slice = right;
155- Some ( left)
156- }
157- ( Bound :: Included ( index) , Bound :: Unbounded ) => {
158- if * index > slice. len ( ) {
159- return None ;
160- }
161- let ( left, right) = core:: mem:: take ( slice) . split_at_mut ( * index) ;
162- * slice = left;
163- Some ( right)
164- }
165- _ => unimplemented ! ( ) ,
166- }
167- }
168-
169- #[ inline( always) ]
170- #[ cfg( feature = "unstable" ) ]
171- fn slice_take_first < ' a , T > ( slice : & mut & ' a [ T ] ) -> Option < & ' a T > {
172- slice. split_off_first ( )
173- }
174-
175- #[ cfg( not( feature = "unstable" ) ) ]
176- fn slice_take_first < ' a , T > ( slice : & mut & ' a [ T ] ) -> Option < & ' a T > {
177- let ( item, rest) = slice. split_first ( ) ?;
178- * slice = rest;
179- Some ( item)
180- }
181-
182- #[ inline( always) ]
183- #[ cfg( feature = "unstable" ) ]
184- fn slice_take_first_mut < ' a , T > ( slice : & mut & ' a mut [ T ] ) -> Option < & ' a mut T > {
185- slice. split_off_first_mut ( )
186- }
187-
188- #[ cfg( not( feature = "unstable" ) ) ]
189- fn slice_take_first_mut < ' a , T > ( slice : & mut & ' a mut [ T ] ) -> Option < & ' a mut T > {
190- let ( item, rest) = core:: mem:: take ( slice) . split_first_mut ( ) ?;
191- * slice = rest;
192- Some ( item)
193- }
194-
195- #[ inline( always) ]
196- #[ cfg( feature = "unstable" ) ]
197- fn slice_take_last < ' a , T > ( slice : & mut & ' a [ T ] ) -> Option < & ' a T > {
198- slice. split_off_last ( )
199- }
200-
201- #[ cfg( not( feature = "unstable" ) ) ]
202- fn slice_take_last < ' a , T > ( slice : & mut & ' a [ T ] ) -> Option < & ' a T > {
203- let ( item, rest) = slice. split_last ( ) ?;
204- * slice = rest;
205- Some ( item)
206- }
207-
208- #[ inline( always) ]
209- #[ cfg( feature = "unstable" ) ]
210- fn slice_take_last_mut < ' a , T > ( slice : & mut & ' a mut [ T ] ) -> Option < & ' a mut T > {
211- slice. split_off_last_mut ( )
212- }
213-
214- #[ cfg( not( feature = "unstable" ) ) ]
215- fn slice_take_last_mut < ' a , T > ( slice : & mut & ' a mut [ T ] ) -> Option < & ' a mut T > {
216- let ( item, rest) = core:: mem:: take ( slice) . split_last_mut ( ) ?;
217- * slice = rest;
218- Some ( item)
219- }
220-
221102/// An [iterator](core::iter::Iterator) over the elements of a `CircularBuffer`.
222103///
223104/// This struct is created by [`CircularBuffer::iter()`] and [`CircularBuffer::range()`]. See
@@ -258,29 +139,29 @@ impl<'a, T> Iter<'a, T> {
258139
259140 fn advance_front_by ( & mut self , count : usize ) {
260141 if self . right . len ( ) > count {
261- slice_take ( & mut self . right , ..count) ;
142+ let _ = self . right . split_off ( ..count) ;
262143 } else {
263144 let take_left = count - self . right . len ( ) ;
264145 debug_assert ! (
265146 take_left <= self . left. len( ) ,
266147 "attempted to advance past the back of the buffer"
267148 ) ;
268- slice_take ( & mut self . left , ..take_left) ;
149+ let _ = self . left . split_off ( ..take_left) ;
269150 self . right = & [ ] ;
270151 }
271152 }
272153
273154 fn advance_back_by ( & mut self , count : usize ) {
274155 if self . left . len ( ) > count {
275156 let take_left = self . left . len ( ) - count;
276- slice_take ( & mut self . left , take_left..) ;
157+ let _ = self . left . split_off ( take_left..) ;
277158 } else {
278159 let take_right = self . right . len ( ) - ( count - self . left . len ( ) ) ;
279160 debug_assert ! (
280161 take_right <= self . right. len( ) ,
281162 "attempted to advance past the front of the buffer"
282163 ) ;
283- slice_take ( & mut self . right , take_right..) ;
164+ let _ = self . right . split_off ( take_right..) ;
284165 self . left = & [ ] ;
285166 }
286167 }
@@ -297,9 +178,9 @@ impl<'a, T> Iterator for Iter<'a, T> {
297178 type Item = & ' a T ;
298179
299180 fn next ( & mut self ) -> Option < Self :: Item > {
300- if let Some ( item) = slice_take_first ( & mut self . right ) {
181+ if let Some ( item) = self . right . split_off_first ( ) {
301182 Some ( item)
302- } else if let Some ( item) = slice_take_first ( & mut self . left ) {
183+ } else if let Some ( item) = self . left . split_off_first ( ) {
303184 Some ( item)
304185 } else {
305186 None
@@ -324,9 +205,9 @@ impl<T> FusedIterator for Iter<'_, T> {}
324205
325206impl < T > DoubleEndedIterator for Iter < ' _ , T > {
326207 fn next_back ( & mut self ) -> Option < Self :: Item > {
327- if let Some ( item) = slice_take_last ( & mut self . left ) {
208+ if let Some ( item) = self . left . split_off_last ( ) {
328209 Some ( item)
329- } else if let Some ( item) = slice_take_last ( & mut self . right ) {
210+ } else if let Some ( item) = self . right . split_off_last ( ) {
330211 Some ( item)
331212 } else {
332213 None
@@ -392,29 +273,29 @@ impl<'a, T> IterMut<'a, T> {
392273
393274 fn advance_front_by ( & mut self , count : usize ) {
394275 if self . right . len ( ) > count {
395- slice_take_mut ( & mut self . right , ..count) ;
276+ let _ = self . right . split_off_mut ( ..count) ;
396277 } else {
397278 let take_left = count - self . right . len ( ) ;
398279 debug_assert ! (
399280 take_left <= self . left. len( ) ,
400281 "attempted to advance past the back of the buffer"
401282 ) ;
402- slice_take_mut ( & mut self . left , ..take_left) ;
283+ let _ = self . left . split_off_mut ( ..take_left) ;
403284 self . right = & mut [ ] ;
404285 }
405286 }
406287
407288 fn advance_back_by ( & mut self , count : usize ) {
408289 if self . left . len ( ) > count {
409290 let take_left = self . left . len ( ) - count;
410- slice_take_mut ( & mut self . left , take_left..) ;
291+ let _ = self . left . split_off_mut ( take_left..) ;
411292 } else {
412293 let take_right = self . right . len ( ) - ( count - self . left . len ( ) ) ;
413294 debug_assert ! (
414295 take_right <= self . right. len( ) ,
415296 "attempted to advance past the front of the buffer"
416297 ) ;
417- slice_take_mut ( & mut self . right , take_right..) ;
298+ let _ = self . right . split_off_mut ( take_right..) ;
418299 self . left = & mut [ ] ;
419300 }
420301 }
@@ -431,9 +312,9 @@ impl<'a, T> Iterator for IterMut<'a, T> {
431312 type Item = & ' a mut T ;
432313
433314 fn next ( & mut self ) -> Option < Self :: Item > {
434- if let Some ( item) = slice_take_first_mut ( & mut self . right ) {
315+ if let Some ( item) = self . right . split_off_first_mut ( ) {
435316 Some ( item)
436- } else if let Some ( item) = slice_take_first_mut ( & mut self . left ) {
317+ } else if let Some ( item) = self . left . split_off_first_mut ( ) {
437318 Some ( item)
438319 } else {
439320 None
@@ -458,9 +339,9 @@ impl<T> FusedIterator for IterMut<'_, T> {}
458339
459340impl < T > DoubleEndedIterator for IterMut < ' _ , T > {
460341 fn next_back ( & mut self ) -> Option < Self :: Item > {
461- if let Some ( item) = slice_take_last_mut ( & mut self . left ) {
342+ if let Some ( item) = self . left . split_off_last_mut ( ) {
462343 Some ( item)
463- } else if let Some ( item) = slice_take_last_mut ( & mut self . right ) {
344+ } else if let Some ( item) = self . right . split_off_last_mut ( ) {
464345 Some ( item)
465346 } else {
466347 None
0 commit comments