Trait lens_rs::traits::Lens [−][src]
A trait representing the optics allows you to access the field.
A Lens
can access the substructure must exist.
Example
let mut x = (1, (2, (3, 4))); *optics!(_1._1._1).view_mut(&mut x) *= 2; assert_eq!(optics!(_1._1._1).view(x), 8);
Associated Types
Loading content...Required methods
fn view(&self, source: T) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a T) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut T) -> &'a mut Self::To
[src]
Implementors
impl<Ls, A> Lens<(A,)> for _0<Ls> where
Ls: Lens<A>,
[src]
Ls: Lens<A>,
type To = Ls::To
fn view(&self, source: (A,)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A,)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A,)) -> &'a mut Self::To
[src]
impl<Ls, A, B> Lens<(A, B)> for _0<Ls> where
Ls: Lens<A>,
[src]
Ls: Lens<A>,
type To = Ls::To
fn view(&self, source: (A, B)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B)) -> &'a mut Self::To
[src]
impl<Ls, A, B> Lens<(A, B)> for _1<Ls> where
Ls: Lens<B>,
[src]
Ls: Lens<B>,
type To = Ls::To
fn view(&self, source: (A, B)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C> Lens<(A, B, C)> for _0<Ls> where
Ls: Lens<A>,
[src]
Ls: Lens<A>,
type To = Ls::To
fn view(&self, source: (A, B, C)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C> Lens<(A, B, C)> for _1<Ls> where
Ls: Lens<B>,
[src]
Ls: Lens<B>,
type To = Ls::To
fn view(&self, source: (A, B, C)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C> Lens<(A, B, C)> for _2<Ls> where
Ls: Lens<C>,
[src]
Ls: Lens<C>,
type To = Ls::To
fn view(&self, source: (A, B, C)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D> Lens<(A, B, C, D)> for _0<Ls> where
Ls: Lens<A>,
[src]
Ls: Lens<A>,
type To = Ls::To
fn view(&self, source: (A, B, C, D)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D> Lens<(A, B, C, D)> for _1<Ls> where
Ls: Lens<B>,
[src]
Ls: Lens<B>,
type To = Ls::To
fn view(&self, source: (A, B, C, D)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D> Lens<(A, B, C, D)> for _2<Ls> where
Ls: Lens<C>,
[src]
Ls: Lens<C>,
type To = Ls::To
fn view(&self, source: (A, B, C, D)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D> Lens<(A, B, C, D)> for _3<Ls> where
Ls: Lens<D>,
[src]
Ls: Lens<D>,
type To = Ls::To
fn view(&self, source: (A, B, C, D)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E> Lens<(A, B, C, D, E)> for _0<Ls> where
Ls: Lens<A>,
[src]
Ls: Lens<A>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E> Lens<(A, B, C, D, E)> for _1<Ls> where
Ls: Lens<B>,
[src]
Ls: Lens<B>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E> Lens<(A, B, C, D, E)> for _2<Ls> where
Ls: Lens<C>,
[src]
Ls: Lens<C>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E> Lens<(A, B, C, D, E)> for _3<Ls> where
Ls: Lens<D>,
[src]
Ls: Lens<D>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E> Lens<(A, B, C, D, E)> for _4<Ls> where
Ls: Lens<E>,
[src]
Ls: Lens<E>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E, F> Lens<(A, B, C, D, E, F)> for _0<Ls> where
Ls: Lens<A>,
[src]
Ls: Lens<A>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E, F)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E, F> Lens<(A, B, C, D, E, F)> for _1<Ls> where
Ls: Lens<B>,
[src]
Ls: Lens<B>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E, F)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E, F> Lens<(A, B, C, D, E, F)> for _2<Ls> where
Ls: Lens<C>,
[src]
Ls: Lens<C>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E, F)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E, F> Lens<(A, B, C, D, E, F)> for _3<Ls> where
Ls: Lens<D>,
[src]
Ls: Lens<D>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E, F)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E, F> Lens<(A, B, C, D, E, F)> for _4<Ls> where
Ls: Lens<E>,
[src]
Ls: Lens<E>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E, F)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E, F> Lens<(A, B, C, D, E, F)> for _5<Ls> where
Ls: Lens<F>,
[src]
Ls: Lens<F>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F)) -> &'a Self::To
[src]
fn view_mut<'a>(&self, source: &'a mut (A, B, C, D, E, F)) -> &'a mut Self::To
[src]
impl<Ls, A, B, C, D, E, F, G> Lens<(A, B, C, D, E, F, G)> for _0<Ls> where
Ls: Lens<A>,
[src]
Ls: Lens<A>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F, G)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F, G)) -> &'a Self::To
[src]
fn view_mut<'a>(
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
[src]
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
impl<Ls, A, B, C, D, E, F, G> Lens<(A, B, C, D, E, F, G)> for _1<Ls> where
Ls: Lens<B>,
[src]
Ls: Lens<B>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F, G)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F, G)) -> &'a Self::To
[src]
fn view_mut<'a>(
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
[src]
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
impl<Ls, A, B, C, D, E, F, G> Lens<(A, B, C, D, E, F, G)> for _2<Ls> where
Ls: Lens<C>,
[src]
Ls: Lens<C>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F, G)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F, G)) -> &'a Self::To
[src]
fn view_mut<'a>(
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
[src]
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
impl<Ls, A, B, C, D, E, F, G> Lens<(A, B, C, D, E, F, G)> for _3<Ls> where
Ls: Lens<D>,
[src]
Ls: Lens<D>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F, G)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F, G)) -> &'a Self::To
[src]
fn view_mut<'a>(
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
[src]
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
impl<Ls, A, B, C, D, E, F, G> Lens<(A, B, C, D, E, F, G)> for _4<Ls> where
Ls: Lens<E>,
[src]
Ls: Lens<E>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F, G)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F, G)) -> &'a Self::To
[src]
fn view_mut<'a>(
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
[src]
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
impl<Ls, A, B, C, D, E, F, G> Lens<(A, B, C, D, E, F, G)> for _5<Ls> where
Ls: Lens<F>,
[src]
Ls: Lens<F>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F, G)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F, G)) -> &'a Self::To
[src]
fn view_mut<'a>(
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
[src]
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
impl<Ls, A, B, C, D, E, F, G> Lens<(A, B, C, D, E, F, G)> for _6<Ls> where
Ls: Lens<G>,
[src]
Ls: Lens<G>,
type To = Ls::To
fn view(&self, source: (A, B, C, D, E, F, G)) -> Self::To
[src]
fn view_ref<'a>(&self, source: &'a (A, B, C, D, E, F, G)) -> &'a Self::To
[src]
fn view_mut<'a>(
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To
[src]
&self,
source: &'a mut (A, B, C, D, E, F, G)
) -> &'a mut Self::To