|
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