ssa_traits::op

Trait OpValue

Source
pub trait OpValue<F: Func, O>: Sized {
    type Residue;
    type Capture: HasValues<F>;
    type Spit;

    // Required methods
    fn disasm(
        self,
        f: &mut F,
    ) -> Result<(O, Self::Capture, Self::Spit), Self::Residue>;
    fn of(f: &mut F, o: O, c: Self::Capture, s: Self::Spit) -> Option<Self>;
    fn lift(f: &mut F, r: Self::Residue) -> Option<Self>;
}

Required Associated Types§

Required Methods§

Source

fn disasm( self, f: &mut F, ) -> Result<(O, Self::Capture, Self::Spit), Self::Residue>

Source

fn of(f: &mut F, o: O, c: Self::Capture, s: Self::Spit) -> Option<Self>

Source

fn lift(f: &mut F, r: Self::Residue) -> Option<Self>

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<F: Func, A, B, T: OpValue<F, A, Residue: OpValue<F, B>>> OpValue<F, Either<A, B>> for T

Source§

type Residue = <<T as OpValue<F, A>>::Residue as OpValue<F, B>>::Residue

Source§

type Capture = Either<<T as OpValue<F, A>>::Capture, <<T as OpValue<F, A>>::Residue as OpValue<F, B>>::Capture>

Source§

type Spit = Either<<T as OpValue<F, A>>::Spit, <<T as OpValue<F, A>>::Residue as OpValue<F, B>>::Spit>