|
1 | 1 | use super::{Bucket, Entries, IndexMap, Iter, IterMut, Keys, Values, ValuesMut}; |
2 | | -use crate::util::{simplify_range, try_simplify_range}; |
| 2 | +use crate::util::try_simplify_range; |
3 | 3 |
|
4 | 4 | use core::cmp::Ordering; |
5 | 5 | use core::fmt; |
@@ -308,47 +308,10 @@ impl_index!( |
308 | 308 | ops::RangeFull, |
309 | 309 | ops::RangeInclusive<usize>, |
310 | 310 | ops::RangeTo<usize>, |
311 | | - ops::RangeToInclusive<usize> |
| 311 | + ops::RangeToInclusive<usize>, |
| 312 | + (Bound<usize>, Bound<usize>) |
312 | 313 | ); |
313 | 314 |
|
314 | | -// NB: with MSRV 1.53, we can forward `Bound` pairs to direct slice indexing like other ranges |
315 | | - |
316 | | -impl<K, V, S> Index<(Bound<usize>, Bound<usize>)> for IndexMap<K, V, S> { |
317 | | - type Output = Slice<K, V>; |
318 | | - |
319 | | - fn index(&self, range: (Bound<usize>, Bound<usize>)) -> &Self::Output { |
320 | | - let entries = self.as_entries(); |
321 | | - let range = simplify_range(range, entries.len()); |
322 | | - Slice::from_slice(&entries[range]) |
323 | | - } |
324 | | -} |
325 | | - |
326 | | -impl<K, V, S> IndexMut<(Bound<usize>, Bound<usize>)> for IndexMap<K, V, S> { |
327 | | - fn index_mut(&mut self, range: (Bound<usize>, Bound<usize>)) -> &mut Self::Output { |
328 | | - let entries = self.as_entries_mut(); |
329 | | - let range = simplify_range(range, entries.len()); |
330 | | - Slice::from_mut_slice(&mut entries[range]) |
331 | | - } |
332 | | -} |
333 | | - |
334 | | -impl<K, V> Index<(Bound<usize>, Bound<usize>)> for Slice<K, V> { |
335 | | - type Output = Slice<K, V>; |
336 | | - |
337 | | - fn index(&self, range: (Bound<usize>, Bound<usize>)) -> &Self { |
338 | | - let entries = &self.entries; |
339 | | - let range = simplify_range(range, entries.len()); |
340 | | - Slice::from_slice(&entries[range]) |
341 | | - } |
342 | | -} |
343 | | - |
344 | | -impl<K, V> IndexMut<(Bound<usize>, Bound<usize>)> for Slice<K, V> { |
345 | | - fn index_mut(&mut self, range: (Bound<usize>, Bound<usize>)) -> &mut Self { |
346 | | - let entries = &mut self.entries; |
347 | | - let range = simplify_range(range, entries.len()); |
348 | | - Slice::from_mut_slice(&mut entries[range]) |
349 | | - } |
350 | | -} |
351 | | - |
352 | 315 | #[cfg(test)] |
353 | 316 | mod tests { |
354 | 317 | use super::*; |
|
0 commit comments