SliceExt

Trait SliceExt 

Source
pub trait SliceExt<I, O>
where O: ?Sized,
{ // Required method fn eget(&self, index: I) -> Result<&O>; }
Expand description

Extension trait for slices.

Required Methods§

Source

fn eget(&self, index: I) -> Result<&O>

Returns a reference to an element or subslice depending on the type of index.

  • If given a position, returns a reference to the element at that position or [Err(_)] if out of bounds.
  • If given a range, returns the subslice corresponding to that range, or [Err(_)] if out of bounds.
§Examples
let v = [10, 40, 30];
assert_eq!(Ok(&40), v.eget(1));
assert_eq!(Ok(&[10, 40][..]), v.eget(0..2));
assert_eq!(&ErrorType::IndexOutOfBounds(3, 3), v.eget(3).err().unwrap().ty());
assert_eq!(&ErrorType::RangeOutOfBounds(0, 4, 3), v.eget(0..4).err().unwrap().ty());

Implementations on Foreign Types§

Source§

impl<'a, T> SliceExt<usize, T> for &'a [T]

Source§

fn eget(&self, index: usize) -> Result<&T>

Source§

impl<'a, T> SliceExt<Range<usize>, [T]> for &'a [T]

Source§

fn eget(&self, index: Range<usize>) -> Result<&[T]>

Source§

impl<'a, T> SliceExt<RangeFrom<usize>, [T]> for &'a [T]

Source§

fn eget(&self, index: RangeFrom<usize>) -> Result<&[T]>

Source§

impl<'a, T> SliceExt<RangeFull, [T]> for &'a [T]

Source§

fn eget(&self, _: RangeFull) -> Result<&[T]>

Source§

impl<'a, T> SliceExt<RangeInclusive<usize>, [T]> for &'a [T]

Source§

fn eget(&self, index: RangeInclusive<usize>) -> Result<&[T]>

Source§

impl<'a, T> SliceExt<RangeTo<usize>, [T]> for &'a [T]

Source§

fn eget(&self, index: RangeTo<usize>) -> Result<&[T]>

Source§

impl<'a, T> SliceExt<RangeToInclusive<usize>, [T]> for &'a [T]

Source§

fn eget(&self, index: RangeToInclusive<usize>) -> Result<&[T]>

Source§

impl<T> SliceExt<usize, T> for [T]

Source§

fn eget(&self, index: usize) -> Result<&T>

Source§

impl<T> SliceExt<Range<usize>, [T]> for [T]

Source§

fn eget(&self, index: Range<usize>) -> Result<&[T]>

Source§

impl<T> SliceExt<RangeFrom<usize>, [T]> for [T]

Source§

fn eget(&self, index: RangeFrom<usize>) -> Result<&[T]>

Source§

impl<T> SliceExt<RangeFull, [T]> for [T]

Source§

fn eget(&self, _: RangeFull) -> Result<&[T]>

Source§

impl<T> SliceExt<RangeInclusive<usize>, [T]> for [T]

Source§

fn eget(&self, index: RangeInclusive<usize>) -> Result<&[T]>

Source§

impl<T> SliceExt<RangeTo<usize>, [T]> for [T]

Source§

fn eget(&self, index: RangeTo<usize>) -> Result<&[T]>

Source§

impl<T> SliceExt<RangeToInclusive<usize>, [T]> for [T]

Source§

fn eget(&self, index: RangeToInclusive<usize>) -> Result<&[T]>

Implementors§