Lines Matching full:slice
5 /// Parallel iterator over immutable non-overlapping chunks of a slice
9 slice: &'data [T], field
13 pub(super) fn new(chunk_size: usize, slice: &'data [T]) -> Self { in new()
14 Self { chunk_size, slice } in new()
48 div_round_up(self.slice.len(), self.chunk_size) in len()
57 slice: self.slice, in with_producer()
64 slice: &'data [T], field
69 type IntoIter = ::std::slice::Chunks<'data, T>;
72 self.slice.chunks(self.chunk_size) in into_iter()
76 let elem_index = Ord::min(index * self.chunk_size, self.slice.len()); in split_at()
77 let (left, right) = self.slice.split_at(elem_index); in split_at()
81 slice: left, in split_at()
85 slice: right, in split_at()
91 /// Parallel iterator over immutable non-overlapping chunks of a slice
95 slice: &'data [T], field
100 pub(super) fn new(chunk_size: usize, slice: &'data [T]) -> Self { in new()
101 let rem_len = slice.len() % chunk_size; in new()
102 let len = slice.len() - rem_len; in new()
103 let (slice, rem) = slice.split_at(len); in new()
106 slice, in new()
111 /// Return the remainder of the original slice that is not going to be
112 /// returned by the iterator. The returned slice has at most `chunk_size-1`
149 self.slice.len() / self.chunk_size in len()
158 slice: self.slice, in with_producer()
165 slice: &'data [T], field
170 type IntoIter = ::std::slice::ChunksExact<'data, T>;
173 self.slice.chunks_exact(self.chunk_size) in into_iter()
178 let (left, right) = self.slice.split_at(elem_index); in split_at()
182 slice: left, in split_at()
186 slice: right, in split_at()
192 /// Parallel iterator over mutable non-overlapping chunks of a slice
196 slice: &'data mut [T], field
200 pub(super) fn new(chunk_size: usize, slice: &'data mut [T]) -> Self { in new()
201 Self { chunk_size, slice } in new()
229 div_round_up(self.slice.len(), self.chunk_size) in len()
238 slice: self.slice, in with_producer()
245 slice: &'data mut [T], field
250 type IntoIter = ::std::slice::ChunksMut<'data, T>;
253 self.slice.chunks_mut(self.chunk_size) in into_iter()
257 let elem_index = Ord::min(index * self.chunk_size, self.slice.len()); in split_at()
258 let (left, right) = self.slice.split_at_mut(elem_index); in split_at()
262 slice: left, in split_at()
266 slice: right, in split_at()
272 /// Parallel iterator over mutable non-overlapping chunks of a slice
276 slice: &'data mut [T], field
281 pub(super) fn new(chunk_size: usize, slice: &'data mut [T]) -> Self { in new()
282 let rem_len = slice.len() % chunk_size; in new()
283 let len = slice.len() - rem_len; in new()
284 let (slice, rem) = slice.split_at_mut(len); in new()
287 slice, in new()
292 /// Return the remainder of the original slice that is not going to be
293 /// returned by the iterator. The returned slice has at most `chunk_size-1`
305 /// Return the remainder of the original slice that is not going to be
306 /// returned by the iterator. The returned slice has at most `chunk_size-1`
315 /// Return the remainder of the original slice that is not going to be
316 /// returned by the iterator. The returned slice has at most `chunk_size-1`
317 /// elements. Subsequent calls will return an empty slice.
347 self.slice.len() / self.chunk_size in len()
356 slice: self.slice, in with_producer()
363 slice: &'data mut [T], field
368 type IntoIter = ::std::slice::ChunksExactMut<'data, T>;
371 self.slice.chunks_exact_mut(self.chunk_size) in into_iter()
376 let (left, right) = self.slice.split_at_mut(elem_index); in split_at()
380 slice: left, in split_at()
384 slice: right, in split_at()