Trait optics::traits::Setter

source ·
pub trait Setter<T>: Optics<T>
where Self::View: Sized,
{ // Required method fn over(&self, s: &mut T, f: &mut dyn FnMut(&mut Self::View)); // Provided method fn set_cloned(&self, a: &Self::View, s: &mut T) where Self::View: Clone { ... } }
Expand description

Setter.

Required Methods§

source

fn over(&self, s: &mut T, f: &mut dyn FnMut(&mut Self::View))

Apply a setter as a modifier.

Provided Methods§

source

fn set_cloned(&self, a: &Self::View, s: &mut T)
where Self::View: Clone,

Apply a setter.

§Note

The value to be set is cloned, because we don’t know the exact number of holes to be filled in. If the optics has a stricter interface (i.e., it also implements AffineTraversal), use AffineTraversal::set instead.

Implementations on Foreign Types§

source§

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

source§

fn over(&self, s: &mut T, f: &mut dyn FnMut(&mut Self::View))

source§

fn set_cloned(&self, a: &Self::View, s: &mut T)
where Self::View: Clone,

Implementors§

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<T> Setter<Option<T>> for _Some

source§

impl<T> Setter<T> for Identity

source§

impl<T> Setter<T> for _Identity<T>

source§

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

source§

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

source§

impl<T, L: Setter<T>, F, G> Setter<T> for MapFallible<L, F, G>
where L::View: Sized,