Trait slice_utils::SliceOwned
source · pub trait SliceOwned: Slice {
// Required method
fn get_owned(&self, index: usize) -> Option<Self::Output>;
// Provided methods
fn array_chunks<const N: usize>(self) -> ArrayChunksOwned<Self, N> ⓘ
where Self: Sized { ... }
fn array_windows<const N: usize>(self) -> ArrayWindowsOwned<Self, N> ⓘ
where Self: Sized { ... }
fn chunks(&self, size: usize) -> ChunksOwned<'_, Self> ⓘ { ... }
fn map<F: Fn(Self::Output) -> R, R>(self, f: F) -> MapOwned<Self, F>
where Self: Sized { ... }
fn iter(self) -> IterOwned<Self> ⓘ
where Self: Sized { ... }
fn windows(&self, size: usize) -> WindowsOwned<'_, Self> ⓘ { ... }
}
Expand description
A Slice
that can return owned values.
Required Methods§
Provided Methods§
sourcefn array_chunks<const N: usize>(self) -> ArrayChunksOwned<Self, N> ⓘwhere
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunksOwned<Self, N> ⓘwhere
Self: Sized,
Return an iterator over arrays covering consecutive portions of the slice.
Analagous to slice::array_chunks
.
§Panics
If N == 0
, panics.
§Examples
let slice = [1, 2, 3, 4, 5];
let mut iter = slice.array_chunks::<2>();
assert_eq!(iter.next(), Some([1, 2]));
assert_eq!(iter.next(), Some([3, 4]));
assert!(iter.next().is_none());
assert_eq!(iter.remainder(), [5]);
sourcefn array_windows<const N: usize>(self) -> ArrayWindowsOwned<Self, N> ⓘwhere
Self: Sized,
fn array_windows<const N: usize>(self) -> ArrayWindowsOwned<Self, N> ⓘwhere
Self: Sized,
Return an iterator over arrays covering overlapping portions of the slice.
Analagous to slice::array_windows
.
§Panics
If N == 0
, panics.
§Examples
let slice = [1, 2, 3, 4, 5];
let mut iter = slice.array_windows::<3>();
assert_eq!(iter.next(), Some([1, 2, 3]));
assert_eq!(iter.next(), Some([2, 3, 4]));
assert_eq!(iter.next(), Some([3, 4, 5]));
assert!(iter.next().is_none());
sourcefn chunks(&self, size: usize) -> ChunksOwned<'_, Self> ⓘ
fn chunks(&self, size: usize) -> ChunksOwned<'_, Self> ⓘ
Return an iterator over slices covering consecutive portions of the slice.
Analagous to slice::chunks
.
§Panics
If size == 0
, panics.
§Examples
let slice = [1, 2, 3, 4, 5];
let mut iter = slice.chunks(2);
assert_eq!(iter.next().unwrap(), [1, 2]);
assert_eq!(iter.next().unwrap(), [3, 4]);
assert_eq!(iter.next().unwrap(), [5]);
assert!(iter.next().is_none());
sourcefn map<F: Fn(Self::Output) -> R, R>(self, f: F) -> MapOwned<Self, F>where
Self: Sized,
fn map<F: Fn(Self::Output) -> R, R>(self, f: F) -> MapOwned<Self, F>where
Self: Sized,
Call a closure on index, returning a new type.
Analagous to Iterator::map
.
§Examples
let slice = [0, 1, 2].map(|x| x != 0);
assert_eq!(slice, [false, true, true]);
sourcefn iter(self) -> IterOwned<Self> ⓘwhere
Self: Sized,
fn iter(self) -> IterOwned<Self> ⓘwhere
Self: Sized,
Creates an iterator over the slice.
§Examples
let slice = [1, 2].chain([3]);
let mut iter = slice.iter();
assert_eq!(iter.next(), Some(1));
assert_eq!(iter.next(), Some(2));
assert_eq!(iter.next(), Some(3));
assert!(iter.next().is_none());
sourcefn windows(&self, size: usize) -> WindowsOwned<'_, Self> ⓘ
fn windows(&self, size: usize) -> WindowsOwned<'_, Self> ⓘ
Return an iterator over slices covering overlapping portions of the slice. The last window may be smaller than the rest.
Analagous to slice::windows
.
§Panics
If size == 0
, panics.
§Examples
let slice = [1, 2, 3, 4, 5];
let mut iter = slice.windows(3);
assert_eq!(iter.next().unwrap(), [1, 2, 3]);
assert_eq!(iter.next().unwrap(), [2, 3, 4]);
assert_eq!(iter.next().unwrap(), [3, 4, 5]);
assert!(iter.next().is_none());
Object Safety§
This trait is not object safe.