Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upAdd support for dedup, dedup_by, and dedup_by_key #72
Conversation
|
This pull request adds support for dedup, dedup_by, and dedup_by_key as requested in #2 |
|
This looks good, thanks! One comment below: |
| @@ -91,13 +91,37 @@ pub trait VecLike<T>: | |||
|
|
|||
| /// Append an element to the vector. | |||
| fn push(&mut self, value: T); | |||
| /// Removes consecutive repeated elements. | |||
| fn dedup(&mut self) where T: PartialEq<T>; | |||
This comment has been minimized.
This comment has been minimized.
mbrubeck
Nov 29, 2017
Contributor
I'm not sure we want to add these as trait methods. Currently this trait is very minimal; adding these methods would be a breaking change and a bit of a burden for other types that implement it. (The use case for this trait is questionable anyway, and I think we might deprecate and remove it instead.)
If we did add these methods, then we should probably also add truncate, and then provide default implementations of the dedup methods based on that.
This comment has been minimized.
This comment has been minimized.
hoggetaylor
Nov 29, 2017
Author
I have added a commit to remove these methods from the VecLike trait.
|
@bors-servo r+ Thanks! |
|
|
Add support for dedup, dedup_by, and dedup_by_key <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/72) <!-- Reviewable:end -->
|
|
Version 0.6.0 Includes these changes since the last release: * Breaking change: Remove deprecated `SmallVecN` type aliases and `push_all_move` method (#77) * Breaking change: Make `retain` pass `&mut T` to its predicate (#61) * Add new methods `dedup`, `dedup_by`, and `dedup_by_key` (#72) * Deprecate the `VecLike` trait in favor of standard library traits (#74) * Optimize the `Clone` and `Deserialize` implementations to avoid unnecessary reallocation (#71) * Optimize `extend_from_slice` and `insert_from_slice` to use `copy_nonoverlapping` (#76) * Include the text of the Mozilla Public License in the source repo (#69) * Improved documentation (#75) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/78) <!-- Reviewable:end -->
hoggetaylor commentedNov 29, 2017
•
edited by larsbergstrom
This change is