Trait optics::traits::AffineTraversal

source ·
pub trait AffineTraversal<T>: Traversal<T> + AffineFold<T>
where Self::View: Sized,
{ // Provided methods fn map(&self, s: &mut T, f: impl FnOnce(&mut Self::View)) { ... } fn set(&self, s: &mut T, a: Self::View) { ... } }
Expand description

AffineTraversal: usually composition of Lenses and Prisms.

Provided Methods§

source

fn map(&self, s: &mut T, f: impl FnOnce(&mut Self::View))

Restricted version for Setter::over. Custom implementation recommended.

source

fn set(&self, s: &mut T, a: Self::View)

Apply a setter. No Clone is needed, because this optics is affine.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<L: AffineTraversal<T>, T> AffineTraversal<T> for &L
where Self::View: Sized,

source§

fn map(&self, s: &mut T, f: impl FnOnce(&mut Self::View))

source§

fn set(&self, s: &mut T, a: Self::View)

Implementors§

source§

impl<K, L, T> AffineTraversal<T> for Compose<K, L>
where K: AffineTraversal<T>, K::View: Sized, L: AffineTraversal<K::View>, L::View: Sized,

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<T> AffineTraversal<Option<T>> for _Some

source§

impl<T> AffineTraversal<T> for Identity

source§

impl<T> AffineTraversal<T> for _Identity<T>

source§

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

source§

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

source§

impl<T, L: AffineTraversal<T>, S, F, E, G> AffineTraversal<T> for MapFallible<L, F, G>
where F: Fn(L::Success) -> S, G: Fn(L::Error) -> E, L::View: Sized,