Trait Constrain

Source
pub trait Constrain<I> {
    type Lift;

    // Required method
    fn i_force(&self, _: I) -> Self::Lift;

    // Provided method
    fn i(&self, i: I) -> Self::Lift
       where Self::Lift: ExPath { ... }
}
Expand description

Implemented by higher order representations of constrained functions.

Required Associated Types§

Required Methods§

Source

fn i_force(&self, _: I) -> Self::Lift

Override input constraint even when existential path does not exist.

Provided Methods§

Source

fn i(&self, i: I) -> Self::Lift
where Self::Lift: ExPath,

Constrains input but only if an existential path is supported for the constraint.

Implementations on Foreign Types§

Source§

impl<I> Constrain<I> for ()

Source§

type Lift = ()

Source§

fn i_force(&self, _: I)

Implementors§

Source§

impl<Co: Clone, Tr: Clone, Fa: Clone, I, I2> Constrain<I> for If<Co, Tr, Fa, I2>

Source§

type Lift = If<Co, Tr, Fa, I>

Source§

impl<I, I2> Constrain<I2> for And<I>

Source§

type Lift = And<I2>

Source§

impl<I, I2> Constrain<I2> for Exc<I>

Source§

type Lift = Exc<I2>

Source§

impl<I, I2> Constrain<I2> for Nand<I>

Source§

type Lift = Nand<I2>

Source§

impl<I, I2> Constrain<I2> for Nexc<I>

Source§

type Lift = Nexc<I2>

Source§

impl<I, I2> Constrain<I2> for Nor<I>

Source§

type Lift = Nor<I2>

Source§

impl<I, I2> Constrain<I2> for Not<I>

Source§

type Lift = Not<I2>

Source§

impl<I, I2> Constrain<I2> for Nrexc<I>

Source§

type Lift = Nrexc<I2>

Source§

impl<I, I2> Constrain<I2> for Or<I>

Source§

type Lift = Or<I2>

Source§

impl<I, I2> Constrain<I2> for Rexc<I>

Source§

type Lift = Rexc<I2>

Source§

impl<I, I2> Constrain<I2> for Xor<I>

Source§

type Lift = Xor<I2>

Source§

impl<T, I, I2> Constrain<I2> for Add<T, I>

Source§

type Lift = Add<T, I2>

Source§

impl<T, I, I2> Constrain<I2> for Eq<T, I>

Source§

type Lift = Eq<T, I2>

Source§

impl<T, I, I2> Constrain<I2> for Even<T, I>

Source§

type Lift = Even<T, I2>

Source§

impl<T, I, I2> Constrain<I2> for False1<T, I>

Source§

type Lift = False1<T, I2>

Source§

impl<T, I, I2> Constrain<I2> for Id<T, I>

Source§

type Lift = Id<T, I2>

Source§

impl<T, I, I2> Constrain<I2> for Odd<T, I>

Source§

type Lift = Odd<T, I2>

Source§

impl<T: Clone, I, I2> Constrain<I2> for AddK<T, I>

Source§

type Lift = AddK<T, I2>

Source§

impl<T: Clone, I, I2> Constrain<I2> for EqK<T, I>

Source§

type Lift = EqK<T, I2>

Source§

impl<T: Clone, I, I2> Constrain<I2> for GeK<T, I>

Source§

type Lift = GeK<T, I2>

Source§

impl<T: Clone, I, I2> Constrain<I2> for LtK<T, I>

Source§

type Lift = LtK<T, I2>