pub trait Slices<'a, T>: Clone
where T: 'a,
{ // Required methods fn empty() -> Self; fn num_slices(&self) -> usize; fn slices(&self) -> impl Iterator<Item = &'a [T]>; fn lengths(&self) -> impl Iterator<Item = usize>; fn slice_at(&self, f: usize) -> Option<&'a [T]>; unsafe fn slice_at_unchecked(&self, f: usize) -> &'a [T]; }
Expand description

A collection of slices.

Required Methods§

Source

fn empty() -> Self

Creates an empty collection of slices.

Source

fn num_slices(&self) -> usize

Number of slices.

Source

fn slices(&self) -> impl Iterator<Item = &'a [T]>

Iterator over slices.

Source

fn lengths(&self) -> impl Iterator<Item = usize>

Iterator over lengths of slices.

Source

fn slice_at(&self, f: usize) -> Option<&'a [T]>

Returns a reference to the f-th slice. Returns None if out of bounds.

Source

unsafe fn slice_at_unchecked(&self, f: usize) -> &'a [T]

Returns the f-th slice without bounds checks.

§Safety

The caller must ensure that f < self.num_slices().

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, T: 'a> Slices<'a, T> for &'a [Vec<T>]

Source§

fn empty() -> Self

Source§

fn num_slices(&self) -> usize

Source§

fn slices(&self) -> impl Iterator<Item = &'a [T]>

Source§

fn lengths(&self) -> impl Iterator<Item = usize>

Source§

fn slice_at(&self, f: usize) -> Option<&'a [T]>

Source§

unsafe fn slice_at_unchecked(&self, f: usize) -> &'a [T]

Implementors§