rust/library/core/src
bors b33e234155 Auto merge of #79895 - Kerollmops:slice-group-by, r=m-ou-se
The return of the GroupBy and GroupByMut iterators on slice

According to https://github.com/rust-lang/rfcs/pull/2477#issuecomment-742034372, I am opening this PR again, this time I implemented it in safe Rust only, it is therefore much easier to read and is completely safe.

This PR proposes to add two new methods to the slice, the `group_by` and `group_by_mut`. These two methods provide a way to iterate over non-overlapping sub-slices of a base slice that are separated by the predicate given by the user (e.g. `Partial::eq`, `|a, b| a.abs() < b.abs()`).

```rust
let slice = &[1, 1, 1, 3, 3, 2, 2, 2];

let mut iter = slice.group_by(|a, b| a == b);
assert_eq!(iter.next(), Some(&[1, 1, 1][..]));
assert_eq!(iter.next(), Some(&[3, 3][..]));
assert_eq!(iter.next(), Some(&[2, 2, 2][..]));
assert_eq!(iter.next(), None);
```

[An RFC](https://github.com/rust-lang/rfcs/pull/2477) was open 2 years ago but wasn't necessary.
2020-12-31 12:00:43 +00:00
..
alloc Auto merge of #79045 - oli-obk:dont_rely_on_alloc_happening_for_soundness, r=TimDiekmann 2020-12-26 19:43:12 +00:00
array Added reference to tracking issue 2020-12-17 00:27:21 +01:00
char Add "chr" as doc alias to char::from_u32 2020-12-28 09:29:42 +01:00
convert Rollup merge of #77339 - fusion-engineering-forks:tryfrom-nonzero-to-nonzero, r=dtolnay 2020-10-23 18:26:16 +09:00
fmt Use more std:: instead of core:: in docs for consistency, add more intra doc links 2020-12-02 00:41:53 +01:00
future Use more std:: instead of core:: in docs for consistency, add more intra doc links 2020-12-02 00:41:53 +01:00
hash fix aliasing issues in SipHasher 2020-10-31 16:26:06 +01:00
iter Add tracking issue 2020-12-30 12:07:28 -08:00
macros Bump bootstrap compiler to 1.50 beta 2020-12-30 09:27:19 -05:00
mem Rollup merge of #80491 - RalfJung:dangling-of-val, r=oli-obk 2020-12-30 20:56:56 +00:00
num Fix typos. 2020-12-30 23:23:02 +01:00
ops small TypeVisitor refactor 2020-12-07 15:52:59 +01:00
prelude mv std libs to library/ 2020-07-27 19:51:13 -05:00
ptr Auto merge of #79684 - usbalbin:const_copy, r=oli-obk 2020-12-30 12:43:02 +00:00
slice Auto merge of #79895 - Kerollmops:slice-group-by, r=m-ou-se 2020-12-31 12:00:43 +00:00
str Add "length" as doc alias to len methods 2020-12-28 09:13:46 +01:00
sync Remove all doc_comment!{} hacks by using #[doc = expr] where needed. 2020-12-30 22:49:08 +01:00
task Use more std:: instead of core:: in docs for consistency, add more intra doc links 2020-12-02 00:41:53 +01:00
unicode Privatize some of libcore unicode_internals 2020-12-07 16:16:42 +03:00
any.rs update tracking issue for const_type_id 2020-09-24 09:00:04 +10:00
ascii.rs Fixed some intra-docs links in library/core 2020-09-18 07:49:29 +08:00
bool.rs Stabilise then 2020-11-22 13:45:14 +00:00
borrow.rs Remove AsRef link as it is in the prelude 2020-08-10 20:29:20 +02:00
cell.rs Auto merge of #79485 - EllenNyan:stabilize_unsafe_cell_get_mut, r=m-ou-se 2020-12-18 11:39:26 +00:00
clone.rs Improve readability 2020-09-01 19:56:32 +02:00
cmp.rs Optimization for bool's PartialOrd impl 2020-12-14 23:32:52 +02:00
default.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
ffi.rs Properly define va_arg and va_list for aarch64-apple-darwin 2020-10-25 21:37:01 -04:00
hint.rs Stabilize hint::spin_loop 2020-11-06 23:41:55 +08:00
internal_macros.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
intrinsics.rs Auto merge of #80511 - Mark-Simulacrum:bump-stage0, r=pietroalbini 2020-12-30 18:32:31 +00:00
lazy.rs Capitalize safety comments 2020-09-08 22:26:44 -04:00
lib.rs Remove all doc_comment!{} hacks by using #[doc = expr] where needed. 2020-12-30 22:49:08 +01:00
marker.rs Auto merge of #77893 - petertodd:2020-impl-default-for-phantompinned, r=dtolnay 2020-11-23 07:00:30 +00:00
option.rs Improve wording of flatten() docs 2020-12-10 20:36:12 -08:00
panic.rs Use more std:: instead of core:: in docs for consistency, add more intra doc links 2020-12-02 00:41:53 +01:00
panicking.rs Bump bootstrap compiler version 2020-11-19 19:23:36 -05:00
pin.rs Add tracking issue number for pin_static_ref. 2020-10-21 16:30:41 +02:00
primitive.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
raw.rs Use intra-doc-links in core::{raw, ffi, pin} 2020-08-22 22:25:27 +02:00
result.rs Improve wording of flatten() docs 2020-12-10 20:36:12 -08:00
time.rs Remove Duration::MIN entirely 2020-10-27 15:48:58 -07:00
tuple.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
unit.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00