Trait lens_rs::traits::Review[][src]

pub trait Review<T> {
    type From;
    fn review(&self, from: Self::From) -> T;
}

A trait representing the optics describes how to construct a single value.

Example

use lens_rs::*;
let optic = optics!(Ok.Err.Some);
let nested: Result<Result<(), _>, ()> = optic.review((1,2,3));
assert_eq!(nested, Ok(Err(Some((1,2,3)))));

Associated Types

Loading content...

Required methods

fn review(&self, from: Self::From) -> T[src]

Loading content...

Implementors

impl<Rv, A> Review<(A,)> for _0<Rv> where
    Rv: Review<A>, 
[src]

type From = Rv::From

impl<Rv, A> Review<(A,)> for _both<Rv> where
    Rv: Review<A>, 
[src]

type From = Rv::From

impl<Rv, T> Review<Option<T>> for None<Rv> where
    Rv: Review<()>, 
[src]

type From = ()

impl<Rv, T> Review<Option<T>> for Some<Rv> where
    Rv: Review<T>, 
[src]

type From = Rv::From

impl<Rv, T> Review<Box<T, Global>> for _box<Rv> where
    Rv: Review<T>, 
[src]

type From = Rv::From

impl<Rv, T> Review<Rc<T>> for _rc<Rv> where
    Rv: Review<T>, 
[src]

type From = Rv::From

impl<Rv, T> Review<Arc<T>> for _arc<Rv> where
    Rv: Review<T>, 
[src]

type From = Rv::From

impl<Rv, T, E> Review<Result<T, E>> for Err<Rv> where
    Rv: Review<E>, 
[src]

type From = Rv::From

impl<Rv, T, E> Review<Result<T, E>> for Ok<Rv> where
    Rv: Review<T>, 
[src]

type From = Rv::From

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

type From = T

Loading content...