Indexing

Trait Indexing 

Source
pub trait Indexing<T, E> {
    // Required methods
    fn get_at<'a>(&self, root: &'a T, idx: usize) -> &'a E;
    fn get_mut_at<'a>(&self, root: &'a mut T, idx: usize) -> &'a mut E;
    fn set_at(&self, root: &mut T, idx: usize, value: E);
    fn set_mut_at(&self, root: &mut T, idx: usize, f: impl FnOnce(&mut E));
    fn set_clone_at(&self, root: &mut T, idx: usize, value: &E)
       where E: Clone;
}

Required Methods§

Source

fn get_at<'a>(&self, root: &'a T, idx: usize) -> &'a E

Source

fn get_mut_at<'a>(&self, root: &'a mut T, idx: usize) -> &'a mut E

Source

fn set_at(&self, root: &mut T, idx: usize, value: E)

Source

fn set_mut_at(&self, root: &mut T, idx: usize, f: impl FnOnce(&mut E))

Source

fn set_clone_at(&self, root: &mut T, idx: usize, value: &E)
where E: Clone,

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.

Implementors§

Source§

impl<T, E> Indexing<T, E> for Accessor<T, Vec<E>>