Trait Path

Source
pub trait Path<T> {
    type Lift;

    // Required method
    fn path_force(&self, arg: T) -> <Self as Path<T>>::Lift;

    // Provided method
    fn path(&self, arg: T) -> <Self as Path<T>>::Lift
       where <Self as Path<T>>::Lift: ExPath<Lift = <<T as Constrain<<Self as ExPath>::Lift>>::Lift as ExPath>::Lift>,
             T: Constrain<<Self as ExPath>::Lift>,
             <T as Constrain<<Self as ExPath>::Lift>>::Lift: ExPath,
             Self: ExPath { ... }
}

Required Associated Types§

Required Methods§

Source

fn path_force(&self, arg: T) -> <Self as Path<T>>::Lift

Provided Methods§

Source

fn path(&self, arg: T) -> <Self as Path<T>>::Lift
where <Self as Path<T>>::Lift: ExPath<Lift = <<T as Constrain<<Self as ExPath>::Lift>>::Lift as ExPath>::Lift>, T: Constrain<<Self as ExPath>::Lift>, <T as Constrain<<Self as ExPath>::Lift>>::Lift: ExPath, Self: ExPath,

Can call method if the existential paths of constrained input matches.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T: Clone> Path<Even<u8>> for Add<u8, T>
where Even<u8, T>: ExPath,

Source§

type Lift = Eq<bool, <<Even<u8> as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Even<u16>> for Add<u16, T>
where Even<u16, T>: ExPath,

Source§

type Lift = Eq<bool, <<Even<u16> as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Even<u32>> for Add<u32, T>
where Even<u32, T>: ExPath,

Source§

type Lift = Eq<bool, <<Even<u32> as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Even<u64>> for Add<u64, T>
where Even<u64, T>: ExPath,

Source§

type Lift = Eq<bool, <<Even<u64> as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for And<T>
where Not<T>: ExPath,

Source§

type Lift = Or<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Eq<bool, T>
where Not<T>: ExPath,

Source§

type Lift = Xor<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Exc<T>
where Not<T>: ExPath,

Source§

type Lift = Nrexc<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Nand<T>
where Not<T>: ExPath,

Source§

type Lift = Nor<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Nexc<T>
where Not<T>: ExPath,

Source§

type Lift = Rexc<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Nor<T>
where Not<T>: ExPath,

Source§

type Lift = Nand<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Nrexc<T>
where Not<T>: ExPath,

Source§

type Lift = Exc<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Or<T>
where Not<T>: ExPath,

Source§

type Lift = And<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Rexc<T>
where Not<T>: ExPath,

Source§

type Lift = Nexc<<<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Not> for Xor<T>
where Not<T>: ExPath,

Source§

type Lift = Eq<bool, <<Not as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Odd<u8>> for Add<u8, T>
where Odd<u8, T>: ExPath,

Source§

type Lift = Xor<<<Odd<u8> as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Odd<u16>> for Add<u16, T>
where Odd<u16, T>: ExPath,

Source§

type Lift = Xor<<<Odd<u16> as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Odd<u32>> for Add<u32, T>
where Odd<u32, T>: ExPath,

Source§

type Lift = Xor<<<Odd<u32> as Constrain<T>>::Lift as ExPath>::Lift>

Source§

impl<T: Clone> Path<Odd<u64>> for Add<u64, T>
where Odd<u64, T>: ExPath,

Source§

type Lift = Xor<<<Odd<u64> as Constrain<T>>::Lift as ExPath>::Lift>