Rollup merge of #110997 - scottmcm:slice-iter-comments, r=the8472
Improve internal field comments on `slice::Iter(Mut)` I wrote these in a previous PR that I ended up withdrawing, so might as well submit them separately. `@bors` rollup=always
This commit is contained in:
commit
f7208139de
@ -60,10 +60,17 @@ fn into_iter(self) -> IterMut<'a, T> {
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||
pub struct Iter<'a, T: 'a> {
|
||||
/// The pointer to the next element to return, or the past-the-end location
|
||||
/// if the iterator is empty.
|
||||
///
|
||||
/// This address will be used for all ZST elements, never changed.
|
||||
ptr: NonNull<T>,
|
||||
end: *const T, // If T is a ZST, this is actually ptr+len. This encoding is picked so that
|
||||
// ptr == end is a quick test for the Iterator being empty, that works
|
||||
// for both ZST and non-ZST.
|
||||
/// For non-ZSTs, the non-null pointer to the past-the-end element.
|
||||
///
|
||||
/// For ZSTs, this is `ptr.wrapping_byte_add(len)`.
|
||||
///
|
||||
/// For all types, `ptr == end` tests whether the iterator is empty.
|
||||
end: *const T,
|
||||
_marker: PhantomData<&'a T>,
|
||||
}
|
||||
|
||||
@ -179,10 +186,17 @@ fn as_ref(&self) -> &[T] {
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||
pub struct IterMut<'a, T: 'a> {
|
||||
/// The pointer to the next element to return, or the past-the-end location
|
||||
/// if the iterator is empty.
|
||||
///
|
||||
/// This address will be used for all ZST elements, never changed.
|
||||
ptr: NonNull<T>,
|
||||
end: *mut T, // If T is a ZST, this is actually ptr+len. This encoding is picked so that
|
||||
// ptr == end is a quick test for the Iterator being empty, that works
|
||||
// for both ZST and non-ZST.
|
||||
/// For non-ZSTs, the non-null pointer to the past-the-end element.
|
||||
///
|
||||
/// For ZSTs, this is `ptr.wrapping_byte_add(len)`.
|
||||
///
|
||||
/// For all types, `ptr == end` tests whether the iterator is empty.
|
||||
end: *mut T,
|
||||
_marker: PhantomData<&'a mut T>,
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user