Trait lens_rs::traits::TraversalRef [−][src]
A trait representing the optics allows you to traverse over a structure and change out its contents.
A Traversal
can access the multiple substructures.
Example
let mut x = (1, vec![Some((2, 3)), None]); optics!(_1.Mapped._Some._0) .traverse_mut(&mut x) .into_iter() .for_each(|i| *i += 1); assert_eq!(optics!(_1._mapped.Some._0).traverse(x), vec![3]);
Associated Types
Loading content...Required methods
fn traverse_ref<'a>(&self, source: &'a T) -> Vec<&'a Self::To>
[src]
Implementors
impl<'t, T: ?Sized, Tr> TraversalRef<&'t T> for _ref<Tr> where
Tr: TraversalRef<<&'t T as Deref>::Target>,
[src]
Tr: TraversalRef<<&'t T as Deref>::Target>,
impl<'t, T: ?Sized, Tr> TraversalRef<&'t mut T> for _mut<Tr> where
Tr: TraversalRef<<&'t mut T as Deref>::Target>,
[src]
Tr: TraversalRef<<&'t mut T as Deref>::Target>,
impl<T> TraversalRef<T> for __
[src]
impl<T: ?Sized, Tr> TraversalRef<Box<T, Global>> for _box<Tr> where
Tr: TraversalRef<<Box<T> as Deref>::Target>,
[src]
Tr: TraversalRef<<Box<T> as Deref>::Target>,
impl<T: ?Sized, Tr> TraversalRef<Rc<T>> for _arc<Tr> where
Tr: TraversalRef<<Rc<T> as Deref>::Target>,
[src]
Tr: TraversalRef<<Rc<T> as Deref>::Target>,
impl<T: ?Sized, Tr> TraversalRef<Rc<T>> for _rc<Tr> where
Tr: TraversalRef<<Rc<T> as Deref>::Target>,
[src]
Tr: TraversalRef<<Rc<T> as Deref>::Target>,
impl<Tr, A> TraversalRef<(A, A, A, A, A, A, A)> for _both<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, A, A, A, A, A, A)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, A, A, A, A, A, A)
) -> Vec<&'a Self::To>
impl<Tr, A> TraversalRef<(A, A, A, A, A, A)> for _both<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a (A, A, A, A, A, A)) -> Vec<&'a Self::To>
[src]
impl<Tr, A> TraversalRef<(A, A, A, A, A)> for _both<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A> TraversalRef<(A, A, A, A)> for _both<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A> TraversalRef<(A, A, A)> for _both<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A> TraversalRef<(A, A)> for _both<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A> TraversalRef<(A,)> for _0<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A> TraversalRef<(A,)> for _both<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A, B> TraversalRef<(A, B)> for _0<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A, B> TraversalRef<(A, B)> for _1<Tr> where
Tr: TraversalRef<B>,
[src]
Tr: TraversalRef<B>,
impl<Tr, A, B, C> TraversalRef<(A, B, C)> for _0<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A, B, C> TraversalRef<(A, B, C)> for _1<Tr> where
Tr: TraversalRef<B>,
[src]
Tr: TraversalRef<B>,
impl<Tr, A, B, C> TraversalRef<(A, B, C)> for _2<Tr> where
Tr: TraversalRef<C>,
[src]
Tr: TraversalRef<C>,
impl<Tr, A, B, C, D> TraversalRef<(A, B, C, D)> for _0<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A, B, C, D> TraversalRef<(A, B, C, D)> for _1<Tr> where
Tr: TraversalRef<B>,
[src]
Tr: TraversalRef<B>,
impl<Tr, A, B, C, D> TraversalRef<(A, B, C, D)> for _2<Tr> where
Tr: TraversalRef<C>,
[src]
Tr: TraversalRef<C>,
impl<Tr, A, B, C, D> TraversalRef<(A, B, C, D)> for _3<Tr> where
Tr: TraversalRef<D>,
[src]
Tr: TraversalRef<D>,
impl<Tr, A, B, C, D, E> TraversalRef<(A, B, C, D, E)> for _0<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
impl<Tr, A, B, C, D, E> TraversalRef<(A, B, C, D, E)> for _1<Tr> where
Tr: TraversalRef<B>,
[src]
Tr: TraversalRef<B>,
impl<Tr, A, B, C, D, E> TraversalRef<(A, B, C, D, E)> for _2<Tr> where
Tr: TraversalRef<C>,
[src]
Tr: TraversalRef<C>,
impl<Tr, A, B, C, D, E> TraversalRef<(A, B, C, D, E)> for _3<Tr> where
Tr: TraversalRef<D>,
[src]
Tr: TraversalRef<D>,
impl<Tr, A, B, C, D, E> TraversalRef<(A, B, C, D, E)> for _4<Tr> where
Tr: TraversalRef<E>,
[src]
Tr: TraversalRef<E>,
impl<Tr, A, B, C, D, E, F> TraversalRef<(A, B, C, D, E, F)> for _0<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> Vec<&'a Self::To>
[src]
impl<Tr, A, B, C, D, E, F> TraversalRef<(A, B, C, D, E, F)> for _1<Tr> where
Tr: TraversalRef<B>,
[src]
Tr: TraversalRef<B>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> Vec<&'a Self::To>
[src]
impl<Tr, A, B, C, D, E, F> TraversalRef<(A, B, C, D, E, F)> for _2<Tr> where
Tr: TraversalRef<C>,
[src]
Tr: TraversalRef<C>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> Vec<&'a Self::To>
[src]
impl<Tr, A, B, C, D, E, F> TraversalRef<(A, B, C, D, E, F)> for _3<Tr> where
Tr: TraversalRef<D>,
[src]
Tr: TraversalRef<D>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> Vec<&'a Self::To>
[src]
impl<Tr, A, B, C, D, E, F> TraversalRef<(A, B, C, D, E, F)> for _4<Tr> where
Tr: TraversalRef<E>,
[src]
Tr: TraversalRef<E>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> Vec<&'a Self::To>
[src]
impl<Tr, A, B, C, D, E, F> TraversalRef<(A, B, C, D, E, F)> for _5<Tr> where
Tr: TraversalRef<F>,
[src]
Tr: TraversalRef<F>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> Vec<&'a Self::To>
[src]
impl<Tr, A, B, C, D, E, F, G> TraversalRef<(A, B, C, D, E, F, G)> for _0<Tr> where
Tr: TraversalRef<A>,
[src]
Tr: TraversalRef<A>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
impl<Tr, A, B, C, D, E, F, G> TraversalRef<(A, B, C, D, E, F, G)> for _1<Tr> where
Tr: TraversalRef<B>,
[src]
Tr: TraversalRef<B>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
impl<Tr, A, B, C, D, E, F, G> TraversalRef<(A, B, C, D, E, F, G)> for _2<Tr> where
Tr: TraversalRef<C>,
[src]
Tr: TraversalRef<C>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
impl<Tr, A, B, C, D, E, F, G> TraversalRef<(A, B, C, D, E, F, G)> for _3<Tr> where
Tr: TraversalRef<D>,
[src]
Tr: TraversalRef<D>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
impl<Tr, A, B, C, D, E, F, G> TraversalRef<(A, B, C, D, E, F, G)> for _4<Tr> where
Tr: TraversalRef<E>,
[src]
Tr: TraversalRef<E>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
impl<Tr, A, B, C, D, E, F, G> TraversalRef<(A, B, C, D, E, F, G)> for _5<Tr> where
Tr: TraversalRef<F>,
[src]
Tr: TraversalRef<F>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
impl<Tr, A, B, C, D, E, F, G> TraversalRef<(A, B, C, D, E, F, G)> for _6<Tr> where
Tr: TraversalRef<G>,
[src]
Tr: TraversalRef<G>,
type To = Tr::To
fn traverse_ref<'a>(
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
[src]
&self,
source: &'a (A, B, C, D, E, F, G)
) -> Vec<&'a Self::To>
impl<Tr, T> TraversalRef<Option<T>> for Some<Tr> where
Tr: TraversalRef<T>,
[src]
Tr: TraversalRef<T>,
impl<Tr, T> TraversalRef<LinkedList<T>> for _mapped<Tr> where
Tr: TraversalRef<<LinkedList<T> as IntoIterator>::Item>,
[src]
Tr: TraversalRef<<LinkedList<T> as IntoIterator>::Item>,
type To = Tr::To
fn traverse_ref<'a>(&self, source: &'a LinkedList<T>) -> Vec<&'a Self::To>
[src]
impl<Tr, T> TraversalRef<VecDeque<T>> for _mapped<Tr> where
Tr: TraversalRef<<VecDeque<T> as IntoIterator>::Item>,
[src]
Tr: TraversalRef<<VecDeque<T> as IntoIterator>::Item>,
impl<Tr, T> TraversalRef<Vec<T, Global>> for _mapped<Tr> where
Tr: TraversalRef<<Vec<T> as IntoIterator>::Item>,
[src]
Tr: TraversalRef<<Vec<T> as IntoIterator>::Item>,
impl<Tr, T, E> TraversalRef<Result<T, E>> for Err<Tr> where
Tr: TraversalRef<E>,
[src]
Tr: TraversalRef<E>,
impl<Tr, T, E> TraversalRef<Result<T, E>> for Ok<Tr> where
Tr: TraversalRef<T>,
[src]
Tr: TraversalRef<T>,