Skip to main content

ExecutableInstruction

Trait ExecutableInstruction 

Source
pub trait ExecutableInstruction<State, CustomError>
where Self: Instruction,
{ // Required method fn execute( self, state: &mut State, ) -> Result<ControlFlow<()>, ExecutionError<<<Self as Instruction>::Reg as Register>::Type, Self, CustomError>>; }
Expand description

Trait for executable instructions

Required Methods§

Source

fn execute( self, state: &mut State, ) -> Result<ControlFlow<()>, ExecutionError<<<Self as Instruction>::Reg as Register>::Type, Self, CustomError>>

Execute instruction

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.

Implementations on Foreign Types§

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64BInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64Instruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:, Memory: VirtualMemory, PC: ProgramCounter<Reg::Type, Memory, CustomError>, InstructionHandler: Rv64SystemInstructionHandler<Reg, Memory, PC, CustomError>,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64MInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbaInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbbInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbcInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbkcInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZbsInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZknhInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

§

impl<Reg, Memory, PC, InstructionHandler, CustomError> ExecutableInstruction<Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, CustomError> for Rv64ZmmulInstruction<Reg>
where Reg: Register<Type = u64>, [(); Reg::N]:,

§

fn execute( self, state: &mut Rv64InterpreterState<Reg, Memory, PC, InstructionHandler, CustomError>, ) -> Result<ControlFlow<()>, ExecutionError<Reg::Type, Self, CustomError>>

Implementors§