Trait lens_rs::traits::Optic[][src]

pub trait Optic<Opt> {
    type Image: ?Sized;
}

the basic Optic trait.

Associated Types

Loading content...

Implementations on Foreign Types

impl<Opt, T, E> Optic<Ok<Opt>> for Result<T, E> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T, E> Optic<Err<Opt>> for Result<T, E> where
    E: Optic<Opt>, 
[src]

type Image = E::Image

impl<Opt, T> Optic<Some<Opt>> for Option<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T> Optic<None<Opt>> for Option<T>[src]

type Image = ()

impl<Opt, A> Optic<_0<Opt>> for (A,) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A, B> Optic<_0<Opt>> for (A, B) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A, B> Optic<_1<Opt>> for (A, B) where
    B: Optic<Opt>, 
[src]

type Image = B::Image

impl<Opt, A, B, C> Optic<_0<Opt>> for (A, B, C) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A, B, C> Optic<_1<Opt>> for (A, B, C) where
    B: Optic<Opt>, 
[src]

type Image = B::Image

impl<Opt, A, B, C> Optic<_2<Opt>> for (A, B, C) where
    C: Optic<Opt>, 
[src]

type Image = C::Image

impl<Opt, A, B, C, D> Optic<_0<Opt>> for (A, B, C, D) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A, B, C, D> Optic<_1<Opt>> for (A, B, C, D) where
    B: Optic<Opt>, 
[src]

type Image = B::Image

impl<Opt, A, B, C, D> Optic<_2<Opt>> for (A, B, C, D) where
    C: Optic<Opt>, 
[src]

type Image = C::Image

impl<Opt, A, B, C, D> Optic<_3<Opt>> for (A, B, C, D) where
    D: Optic<Opt>, 
[src]

type Image = D::Image

impl<Opt, A, B, C, D, E> Optic<_0<Opt>> for (A, B, C, D, E) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A, B, C, D, E> Optic<_1<Opt>> for (A, B, C, D, E) where
    B: Optic<Opt>, 
[src]

type Image = B::Image

impl<Opt, A, B, C, D, E> Optic<_2<Opt>> for (A, B, C, D, E) where
    C: Optic<Opt>, 
[src]

type Image = C::Image

impl<Opt, A, B, C, D, E> Optic<_3<Opt>> for (A, B, C, D, E) where
    D: Optic<Opt>, 
[src]

type Image = D::Image

impl<Opt, A, B, C, D, E> Optic<_4<Opt>> for (A, B, C, D, E) where
    E: Optic<Opt>, 
[src]

type Image = E::Image

impl<Opt, A, B, C, D, E, F> Optic<_0<Opt>> for (A, B, C, D, E, F) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A, B, C, D, E, F> Optic<_1<Opt>> for (A, B, C, D, E, F) where
    B: Optic<Opt>, 
[src]

type Image = B::Image

impl<Opt, A, B, C, D, E, F> Optic<_2<Opt>> for (A, B, C, D, E, F) where
    C: Optic<Opt>, 
[src]

type Image = C::Image

impl<Opt, A, B, C, D, E, F> Optic<_3<Opt>> for (A, B, C, D, E, F) where
    D: Optic<Opt>, 
[src]

type Image = D::Image

impl<Opt, A, B, C, D, E, F> Optic<_4<Opt>> for (A, B, C, D, E, F) where
    E: Optic<Opt>, 
[src]

type Image = E::Image

impl<Opt, A, B, C, D, E, F> Optic<_5<Opt>> for (A, B, C, D, E, F) where
    F: Optic<Opt>, 
[src]

type Image = F::Image

impl<Opt, A, B, C, D, E, F, G> Optic<_0<Opt>> for (A, B, C, D, E, F, G) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A, B, C, D, E, F, G> Optic<_1<Opt>> for (A, B, C, D, E, F, G) where
    B: Optic<Opt>, 
[src]

type Image = B::Image

impl<Opt, A, B, C, D, E, F, G> Optic<_2<Opt>> for (A, B, C, D, E, F, G) where
    C: Optic<Opt>, 
[src]

type Image = C::Image

impl<Opt, A, B, C, D, E, F, G> Optic<_3<Opt>> for (A, B, C, D, E, F, G) where
    D: Optic<Opt>, 
[src]

type Image = D::Image

impl<Opt, A, B, C, D, E, F, G> Optic<_4<Opt>> for (A, B, C, D, E, F, G) where
    E: Optic<Opt>, 
[src]

type Image = E::Image

impl<Opt, A, B, C, D, E, F, G> Optic<_5<Opt>> for (A, B, C, D, E, F, G) where
    F: Optic<Opt>, 
[src]

type Image = F::Image

impl<Opt, A, B, C, D, E, F, G> Optic<_6<Opt>> for (A, B, C, D, E, F, G) where
    G: Optic<Opt>, 
[src]

type Image = G::Image

impl<Opt, A> Optic<_both<Opt>> for (A,) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A> Optic<_both<Opt>> for (A, A) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A> Optic<_both<Opt>> for (A, A, A) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A> Optic<_both<Opt>> for (A, A, A, A) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A> Optic<_both<Opt>> for (A, A, A, A, A) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A> Optic<_both<Opt>> for (A, A, A, A, A, A) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, A> Optic<_both<Opt>> for (A, A, A, A, A, A, A) where
    A: Optic<Opt>, 
[src]

type Image = A::Image

impl<Opt, T> Optic<_mapped<Opt>> for Vec<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T> Optic<_mapped<Opt>> for VecDeque<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T> Optic<_mapped<Opt>> for LinkedList<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T> Optic<_box<Opt>> for Rc<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T> Optic<_box<Opt>> for Arc<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_ref<Opt>> for Box<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_mut<Opt>> for Box<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_box<Opt>> for Box<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_ref<Opt>> for Rc<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_ref<Opt>> for Arc<T> where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_ref<Opt>> for &mut T where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_mut<Opt>> for &mut T where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<Opt, T: ?Sized> Optic<_ref<Opt>> for &T where
    T: Optic<Opt>, 
[src]

type Image = T::Image

impl<T, Opt> Optic<_ix<usize, Opt>> for Vec<T> where
    T: Optic<Opt>, 
[src]

type Image = <T as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<Range<usize>, Opt>> for Vec<T> where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<RangeTo<usize>, Opt>> for Vec<T> where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<RangeFrom<usize>, Opt>> for Vec<T> where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<RangeFull, Opt>> for Vec<T> where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<usize, Opt>> for VecDeque<T> where
    T: Optic<Opt>, 
[src]

type Image = <T as Optic<Opt>>::Image

impl<T, Opt, const N: usize> Optic<_ix<usize, Opt>> for [T; N] where
    T: Optic<Opt>, 
[src]

type Image = <T as Optic<Opt>>::Image

impl<T, Opt, const N: usize> Optic<_ix<Range<usize>, Opt>> for [T; N] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt, const N: usize> Optic<_ix<RangeTo<usize>, Opt>> for [T; N] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt, const N: usize> Optic<_ix<RangeFrom<usize>, Opt>> for [T; N] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt, const N: usize> Optic<_ix<RangeFull, Opt>> for [T; N] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<usize, Opt>> for [T] where
    T: Optic<Opt>, 
[src]

type Image = <T as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<Range<usize>, Opt>> for [T] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<RangeTo<usize>, Opt>> for [T] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<RangeFrom<usize>, Opt>> for [T] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<T, Opt> Optic<_ix<RangeFull, Opt>> for [T] where
    [T]: Optic<Opt>, 
[src]

type Image = <[T] as Optic<Opt>>::Image

impl<Opt> Optic<_ix<Range<usize>, Opt>> for String where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<Opt> Optic<_ix<RangeTo<usize>, Opt>> for String where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<Opt> Optic<_ix<RangeFrom<usize>, Opt>> for String where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<Opt> Optic<_ix<RangeFull, Opt>> for String where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<Opt> Optic<_ix<Range<usize>, Opt>> for str where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<Opt> Optic<_ix<RangeTo<usize>, Opt>> for str where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<Opt> Optic<_ix<RangeFrom<usize>, Opt>> for str where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<Opt> Optic<_ix<RangeFull, Opt>> for str where
    str: Optic<Opt>, 
[src]

type Image = <str as Optic<Opt>>::Image

impl<K, Q: ?Sized, V, Opt> Optic<_ix<&'_ Q, Opt>> for BTreeMap<K, V> where
    K: Borrow<Q> + Ord,
    Q: Ord,
    V: Optic<Opt>, 
[src]

type Image = V::Image

impl<K, Q: ?Sized, V, Opt> Optic<_ix<&'_ Q, Opt>> for HashMap<K, V> where
    K: Eq + Hash + Borrow<Q>,
    Q: Eq + Hash,
    V: Optic<Opt>, 
[src]

type Image = V::Image

Loading content...

Implementors

impl<T> Optic<__> for T[src]

type Image = T

Loading content...