Tracking issue for https://github.com/rust-lang/rfcs/pull/235, there are a number of sub-issues associated with this: Backwards incompatible changes to make: - [x] [Remove collections traits](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#removing-the-traits) - @alexcrichton https://github.com/rust-lang/rust/pull/18474 - [x] [Add a `Borrow` trait](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#the-borrow-trait) - @aturon #18910 - [x] [Add methods using the `Borrow` trait, deprecating `_equiv` methods](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#using-borrow-to-replace-_equiv-methods) - @aturon #18910 - [x] [Ensure construction methods follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#construction) - - [x] [Ensure `FromIterator` is implemented](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#the-fromiterator-trait) - @gamazeps - [x] [Ensure insertion methods follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#insertion) - - [x] [Rename `Extendable` to `Extend`](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#the-extend-trait-was-extendable) - @gamazeps https://github.com/rust-lang/rust/pull/18475 - [x] [Ensure `Extend` is implemented](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#the-extend-trait-was-extendable) - @gamazeps https://github.com/rust-lang/rust/pull/18475 - [x] [Ensure deletion methods follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#deletion) - - [x] [Ensure inspection/mutation methods follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#inspectionmutation) - - [x] [Implement `Index` and `IndexMut` where appropriate](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#the-index-trait) - @alexcrichton - https://github.com/rust-lang/rust/pull/18445 - [x] [Ensure iteration methods follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#iteration) - - [x] [Ensure capacity-related methods follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#capacity-management) - - [x] [Implement bounded iterators for `TreeMap`](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#bounded-iterators) - [x] [Ensure set operations follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#set-operations) - - [x] [Ensure map operations follow conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#map-operations) - - [x] [Implement `Deref` for strings and vectors](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#relating-vec-and-string-to-slices) - @alexcrichton - https://github.com/rust-lang/rust/pull/18443 - [x] [Ensure string api related methods are follow utf8/byte conventions](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#string-api) - - [x] [Add `repeat` to `std::iter` and the prelude](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#removing-methods-like-from_elem-from_fn-grow-and-grow_fn) - @jakub- https://github.com/rust-lang/rust/pull/18468 Backwards compatible changes that will require additional language features: - [ ] [Add `ByNeed` and `Predicate` traits](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#minimizing-variants-byneed-and-predicate-traits) (needs negative bounds to work with unboxed closures) Backwards compatible changes to make: - [x] [Add `Cow` pointers](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#clone-on-write-cow-pointers) - @aturon #18910 - [x] [Add `IntoIterator`](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#intoiterator-and-iterable) - @aturon - [x] [Move `for`-loops to use `IntoIterator`](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#benefits-of-intoiterator) - @jakub- - [x] [Implement partitioning via `FromIterator`](https://github.com/rust-lang/rfcs/blob/master/text/0235-collections-conventions.md#minimizing-method-variants-via-iterators) - @aturon
Tracking issue for rust-lang/rfcs#235, there are a number of sub-issues associated with this:
Backwards incompatible changes to make:
Borrowtrait - @aturon libs: Add borrow module, deprecate _equiv and friends #18910Borrowtrait, deprecating_equivmethods - @aturon libs: Add borrow module, deprecate _equiv and friends #18910FromIteratoris implemented - @gamazepsExtendabletoExtend- @gamazeps Ensure Extend is implemented and renamed Extendable to Extend #18475Extendis implemented - @gamazeps Ensure Extend is implemented and renamed Extendable to Extend #18475IndexandIndexMutwhere appropriate - @alexcrichton - collections: Enable IndexMut for some collections #18445TreeMapDereffor strings and vectors - @alexcrichton - collections: impl Deref for Vec/String #18443repeattostd::iterand the prelude - @jakub- Add arepeatfunction to the prelude #18468Backwards compatible changes that will require additional language features:
ByNeedandPredicatetraits (needs negative bounds to work with unboxed closures)Backwards compatible changes to make:
Cowpointers - @aturon libs: Add borrow module, deprecate _equiv and friends #18910IntoIterator- @aturonfor-loops to useIntoIterator- @jakub-FromIterator- @aturon