[−][src]Trait arraylib::Slice
Extension for slice
Associated Types
type Item
Item of the slice, i.e.
[T]: Slice<Item = T>
Required methods
fn copied<A>(&self) -> Result<A, SizeError> where
A: Array<Item = Self::Item>,
A::Item: Copy,
A: Array<Item = Self::Item>,
A::Item: Copy,
Copy self
into an owned array.
Return Err(SizeError)
if len of self
is not equal to A::SIZE
.
Examples
use arraylib::Slice; let slice: &[i32] = &[0, 1, 2, 3, 4]; let array: [i32; 5] = slice.copied().unwrap(); assert_eq!(array, [0, 1, 2, 3, 4])
use arraylib::{SizeError, Slice}; let slice: &[i32] = &[0, 1, 2, 3, 4]; let result = slice.copied::<[i32; 2]>(); assert_eq!(result, Err(SizeError::Greater(3, ())))
fn cloned<A>(&self) -> Result<A, SizeError> where
A: Array<Item = Self::Item>,
A::Item: Clone,
A: Array<Item = Self::Item>,
A::Item: Clone,
Clone self
into an owned array.
Return Err(SizeError)
if len of self
is not equal to A::SIZE
.
Examples
use arraylib::Slice; use core::ops::Range; // Range is not `Copy` let slice: &[Range<usize>] = &[0..1, 1..3, 2..10]; let array: [Range<usize>; 3] = slice.cloned().unwrap(); assert_eq!(array, [0..1, 1..3, 2..10])
use arraylib::{SizeError, Slice}; use core::ops::Range; let slice: &[Range<usize>] = &[0..1, 1..3, 2..10]; let result = slice.cloned::<[Range<usize>; 5]>(); assert_eq!(result, Err(SizeError::Less(2, ())))