Lines Matching refs:end
46 pub(super) end: *const T, // If T is a ZST, this is actually ptr+len. This encoding is picked so that
47 // ptr == end is a quick test for the Iterator being empty, that works
129 self.end = self.buf.as_ptr();
140 // For th ZST case, it is crucial that we mutate `end` here, not `ptr`.
141 // `ptr` must stay aligned, while `end` may be unaligned.
142 self.end = self.ptr;
152 // all those checks. We have `this.buf` ≤ `this.ptr` ≤ `this.end`,
154 // range. `end` ≤ `buf + cap`, so the range will be in-bounds.
164 this.ptr.sub_ptr(buf)..this.end.sub_ptr(buf)
191 if self.ptr == self.end {
195 // reducing the `end`.
196 self.end = self.end.wrapping_byte_sub(1);
211 self.end.addr().wrapping_sub(self.ptr.addr())
213 unsafe { self.end.sub_ptr(self.ptr) }
223 // See `next` for why we sub `end` here.
224 self.end = self.end.wrapping_byte_sub(step_size);
254 self.end = self.end.wrapping_byte_sub(N);
300 if self.end == self.ptr {
304 self.end = self.end.wrapping_byte_sub(1);
309 self.end = unsafe { self.end.sub(1) };
311 Some(unsafe { ptr::read(self.end) })
320 self.end = self.end.wrapping_byte_sub(step_size);
323 self.end = unsafe { self.end.sub(step_size) };
325 let to_drop = ptr::slice_from_raw_parts_mut(self.end as *mut T, step_size);
337 self.ptr == self.end