Skip to content

Commit

Permalink
Rollup merge of #104643 - pnkfelix:examples-for-chunks-remainder, r=s…
Browse files Browse the repository at this point in the history
…cottmcm

add examples to chunks remainder methods.

add examples to chunks remainder methods.

my motivation for adding the examples was to make it very clear that the state of the iterator (in terms of where its cursor lies) has no effect on what remainder returns.

Also fixed some links to rchunk remainder methods.
  • Loading branch information
matthiaskrgr authored Nov 20, 2022
2 parents 9a95696 + 98993af commit 8465748
Showing 1 changed file with 30 additions and 2 deletions.
32 changes: 30 additions & 2 deletions library/core/src/slice/iter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1834,6 +1834,20 @@ impl<'a, T> ChunksExact<'a, T> {
/// Returns the remainder of the original slice that is not going to be
/// returned by the iterator. The returned slice has at most `chunk_size-1`
/// elements.
///
/// # Example
///
/// ```
/// let slice = ['l', 'o', 'r', 'e', 'm'];
/// let mut iter = slice.chunks_exact(2);
/// assert_eq!(iter.remainder(), &['m'][..]);
/// assert_eq!(iter.next(), Some(&['l', 'o'][..]));
/// assert_eq!(iter.remainder(), &['m'][..]);
/// assert_eq!(iter.next(), Some(&['r', 'e'][..]));
/// assert_eq!(iter.remainder(), &['m'][..]);
/// assert_eq!(iter.next(), None);
/// assert_eq!(iter.remainder(), &['m'][..]);
/// ```
#[must_use]
#[stable(feature = "chunks_exact", since = "1.31.0")]
pub fn remainder(&self) -> &'a [T] {
Expand Down Expand Up @@ -2869,7 +2883,7 @@ unsafe impl<T> Sync for RChunksMut<'_, T> where T: Sync {}
/// ```
///
/// [`rchunks_exact`]: slice::rchunks_exact
/// [`remainder`]: ChunksExact::remainder
/// [`remainder`]: RChunksExact::remainder
/// [slices]: slice
#[derive(Debug)]
#[stable(feature = "rchunks", since = "1.31.0")]
Expand All @@ -2892,6 +2906,20 @@ impl<'a, T> RChunksExact<'a, T> {
/// Returns the remainder of the original slice that is not going to be
/// returned by the iterator. The returned slice has at most `chunk_size-1`
/// elements.
///
/// # Example
///
/// ```
/// let slice = ['l', 'o', 'r', 'e', 'm'];
/// let mut iter = slice.rchunks_exact(2);
/// assert_eq!(iter.remainder(), &['l'][..]);
/// assert_eq!(iter.next(), Some(&['e', 'm'][..]));
/// assert_eq!(iter.remainder(), &['l'][..]);
/// assert_eq!(iter.next(), Some(&['o', 'r'][..]));
/// assert_eq!(iter.remainder(), &['l'][..]);
/// assert_eq!(iter.next(), None);
/// assert_eq!(iter.remainder(), &['l'][..]);
/// ```
#[must_use]
#[stable(feature = "rchunks", since = "1.31.0")]
pub fn remainder(&self) -> &'a [T] {
Expand Down Expand Up @@ -3031,7 +3059,7 @@ unsafe impl<'a, T> TrustedRandomAccessNoCoerce for RChunksExact<'a, T> {
/// ```
///
/// [`rchunks_exact_mut`]: slice::rchunks_exact_mut
/// [`into_remainder`]: ChunksExactMut::into_remainder
/// [`into_remainder`]: RChunksExactMut::into_remainder
/// [slices]: slice
#[derive(Debug)]
#[stable(feature = "rchunks", since = "1.31.0")]
Expand Down

0 comments on commit 8465748

Please sign in to comment.