Trait optics::traits::Optics

source ·
pub trait Optics<T: ?Sized> {
    type View: ?Sized;
}
Expand description

Any optics: a view type associated.

Required Associated Types§

source

type View: ?Sized

View type for this optics.

Implementations on Foreign Types§

source§

impl<L: Optics<T>, T: ?Sized> Optics<T> for &L

§

type View = <L as Optics<T>>::View

Implementors§

source§

impl<K: Optics<T>, L: Optics<K::View>, T: ?Sized> Optics<T> for Compose<K, L>

§

type View = <L as Optics<<K as Optics<T>>::View>>::View

source§

impl<T0> Optics<(T0,)> for _0

§

type View = T0

source§

impl<T0, T1> Optics<(T0, T1)> for _0

§

type View = T0

source§

impl<T0, T1> Optics<(T0, T1)> for _1

§

type View = T1

source§

impl<T0, T1, T2> Optics<(T0, T1, T2)> for _0

§

type View = T0

source§

impl<T0, T1, T2> Optics<(T0, T1, T2)> for _1

§

type View = T1

source§

impl<T0, T1, T2> Optics<(T0, T1, T2)> for _2

§

type View = T2

source§

impl<T0, T1, T2, T3> Optics<(T0, T1, T2, T3)> for _0

§

type View = T0

source§

impl<T0, T1, T2, T3> Optics<(T0, T1, T2, T3)> for _1

§

type View = T1

source§

impl<T0, T1, T2, T3> Optics<(T0, T1, T2, T3)> for _2

§

type View = T2

source§

impl<T0, T1, T2, T3> Optics<(T0, T1, T2, T3)> for _3

§

type View = T3

source§

impl<T> Optics<Option<T>> for _Some

§

type View = T

source§

impl<T> Optics<T> for Identity

§

type View = T

source§

impl<T, E> Optics<Result<T, E>> for _Err

§

type View = E

source§

impl<T, E> Optics<Result<T, E>> for _Ok

§

type View = T

source§

impl<T: ?Sized> Optics<T> for _Identity<T>

§

type View = T

source§

impl<T: ?Sized, L: Optics<T>, F, G> Optics<T> for MapFallible<L, F, G>

§

type View = <L as Optics<T>>::View