Auto merge of #51151 - sdroege:exact-chunks-docs-order, r=dtolnay
Move slice::exact_chunks directly above exact_chunks_mut for more con… …sistent docs order See https://github.com/rust-lang/rust/issues/47115#issuecomment-392532855
This commit is contained in:
commit
6eafab06cf
1 changed files with 35 additions and 35 deletions
|
@ -691,41 +691,6 @@ impl<T> [T] {
|
||||||
Chunks { v: self, chunk_size: chunk_size }
|
Chunks { v: self, chunk_size: chunk_size }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns an iterator over `chunk_size` elements of the slice at a
|
|
||||||
/// time. The chunks are slices and do not overlap. If `chunk_size` does
|
|
||||||
/// not divide the length of the slice, then the last up to `chunk_size-1`
|
|
||||||
/// elements will be omitted.
|
|
||||||
///
|
|
||||||
/// Due to each chunk having exactly `chunk_size` elements, the compiler
|
|
||||||
/// can often optimize the resulting code better than in the case of
|
|
||||||
/// [`chunks`].
|
|
||||||
///
|
|
||||||
/// # Panics
|
|
||||||
///
|
|
||||||
/// Panics if `chunk_size` is 0.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// #![feature(exact_chunks)]
|
|
||||||
///
|
|
||||||
/// let slice = ['l', 'o', 'r', 'e', 'm'];
|
|
||||||
/// let mut iter = slice.exact_chunks(2);
|
|
||||||
/// assert_eq!(iter.next().unwrap(), &['l', 'o']);
|
|
||||||
/// assert_eq!(iter.next().unwrap(), &['r', 'e']);
|
|
||||||
/// assert!(iter.next().is_none());
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// [`chunks`]: #method.chunks
|
|
||||||
#[unstable(feature = "exact_chunks", issue = "47115")]
|
|
||||||
#[inline]
|
|
||||||
pub fn exact_chunks(&self, chunk_size: usize) -> ExactChunks<T> {
|
|
||||||
assert!(chunk_size != 0);
|
|
||||||
let rem = self.len() % chunk_size;
|
|
||||||
let len = self.len() - rem;
|
|
||||||
ExactChunks { v: &self[..len], chunk_size: chunk_size}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns an iterator over `chunk_size` elements of the slice at a time.
|
/// Returns an iterator over `chunk_size` elements of the slice at a time.
|
||||||
/// The chunks are mutable slices, and do not overlap. If `chunk_size` does
|
/// The chunks are mutable slices, and do not overlap. If `chunk_size` does
|
||||||
/// not divide the length of the slice, then the last chunk will not
|
/// not divide the length of the slice, then the last chunk will not
|
||||||
|
@ -761,6 +726,41 @@ impl<T> [T] {
|
||||||
ChunksMut { v: self, chunk_size: chunk_size }
|
ChunksMut { v: self, chunk_size: chunk_size }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns an iterator over `chunk_size` elements of the slice at a
|
||||||
|
/// time. The chunks are slices and do not overlap. If `chunk_size` does
|
||||||
|
/// not divide the length of the slice, then the last up to `chunk_size-1`
|
||||||
|
/// elements will be omitted.
|
||||||
|
///
|
||||||
|
/// Due to each chunk having exactly `chunk_size` elements, the compiler
|
||||||
|
/// can often optimize the resulting code better than in the case of
|
||||||
|
/// [`chunks`].
|
||||||
|
///
|
||||||
|
/// # Panics
|
||||||
|
///
|
||||||
|
/// Panics if `chunk_size` is 0.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// #![feature(exact_chunks)]
|
||||||
|
///
|
||||||
|
/// let slice = ['l', 'o', 'r', 'e', 'm'];
|
||||||
|
/// let mut iter = slice.exact_chunks(2);
|
||||||
|
/// assert_eq!(iter.next().unwrap(), &['l', 'o']);
|
||||||
|
/// assert_eq!(iter.next().unwrap(), &['r', 'e']);
|
||||||
|
/// assert!(iter.next().is_none());
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// [`chunks`]: #method.chunks
|
||||||
|
#[unstable(feature = "exact_chunks", issue = "47115")]
|
||||||
|
#[inline]
|
||||||
|
pub fn exact_chunks(&self, chunk_size: usize) -> ExactChunks<T> {
|
||||||
|
assert!(chunk_size != 0);
|
||||||
|
let rem = self.len() % chunk_size;
|
||||||
|
let len = self.len() - rem;
|
||||||
|
ExactChunks { v: &self[..len], chunk_size: chunk_size}
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns an iterator over `chunk_size` elements of the slice at a time.
|
/// Returns an iterator over `chunk_size` elements of the slice at a time.
|
||||||
/// The chunks are mutable slices, and do not overlap. If `chunk_size` does
|
/// The chunks are mutable slices, and do not overlap. If `chunk_size` does
|
||||||
/// not divide the length of the slice, then the last up to `chunk_size-1`
|
/// not divide the length of the slice, then the last up to `chunk_size-1`
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue