[][src]Trait ferrite_session::Prism

pub trait Prism<Row> where
    Row: RowCon
{ type Elem; fn inject_elem<F>(elem: Applied<F, Self::Elem>) -> AppliedSum<Row, F>
    where
        F: TyCon
;
fn extract_elem<F>(
        row: AppliedSum<Row, F>
    ) -> Option<Applied<F, Self::Elem>>
    where
        F: TyCon
; }

Associated Types

type Elem

Loading content...

Required methods

fn inject_elem<F>(elem: Applied<F, Self::Elem>) -> AppliedSum<Row, F> where
    F: TyCon

fn extract_elem<F>(row: AppliedSum<Row, F>) -> Option<Applied<F, Self::Elem>> where
    F: TyCon

Loading content...

Implementors

impl<A, R> Prism<(A, R)> for ChoiceSelector<Z> where
    A: Send + 'static,
    R: RowCon
[src]

type Elem = A

impl<N, A, R> Prism<(A, R)> for ChoiceSelector<S<N>> where
    R: RowCon,
    A: Send + 'static,
    ChoiceSelector<N>: Prism<R>, 
[src]

type Elem = <ChoiceSelector<N> as Prism<R>>::Elem

Loading content...