Struct quil_rs::instruction::InstructionHandler
source · pub struct InstructionHandler { /* private fields */ }
Expand description
A struct that allows setting optional overrides for key Instruction
methods.
A common use case for this is to support custom PRAGMA
instructions, which are treated as
classical style no-ops by default.
Implementations§
source§impl InstructionHandler
impl InstructionHandler
sourcepub fn set_is_scheduled<F>(self, f: F) -> Selfwhere
F: GetIsScheduledFnMut + 'static,
pub fn set_is_scheduled<F>(self, f: F) -> Selfwhere F: GetIsScheduledFnMut + 'static,
Set an override function for whether an instruction is scheduled.
If the provided function returns None
, a default will be used.
See also InstructionHandler::is_scheduled
.
sourcepub fn set_role_for_instruction<F>(self, f: F) -> Selfwhere
F: GetRoleForInstructionFnMut + 'static,
pub fn set_role_for_instruction<F>(self, f: F) -> Selfwhere F: GetRoleForInstructionFnMut + 'static,
Set an override function for determining an instruction’s InstructionRole
.
If the provided function returns None
, a default will be used.
See also InstructionHandler::role_for_instruction
.
sourcepub fn set_matching_frames<F>(self, f: F) -> Selfwhere
F: GetMatchingFramesFnMut + 'static,
pub fn set_matching_frames<F>(self, f: F) -> Selfwhere F: GetMatchingFramesFnMut + 'static,
Set an override function for determining an instruction’s MatchedFrames
.
If the provided function returns None
, a default will be used.
See also InstructionHandler::get_matching_frames
.
sourcepub fn set_memory_accesses<F>(self, f: F) -> Selfwhere
F: GetMemoryAccessesFnMut + 'static,
pub fn set_memory_accesses<F>(self, f: F) -> Selfwhere F: GetMemoryAccessesFnMut + 'static,
Set an override function for determining an instruction’s MemoryAccesses
.
If the provided function returns None
, a default will be used.
See also InstructionHandler::get_memory_accesses
.
sourcepub fn is_scheduled(&mut self, instruction: &Instruction) -> bool
pub fn is_scheduled(&mut self, instruction: &Instruction) -> bool
Determine whether the given instruction is scheduled.
This uses the return value of the override function, if set and returns Some
. If not set
or the function returns None
, defaults to the return value of
Instruction::is_scheduled
.
sourcepub fn role_for_instruction(
&mut self,
instruction: &Instruction
) -> InstructionRole
pub fn role_for_instruction( &mut self, instruction: &Instruction ) -> InstructionRole
Determine the InstructionRole
for the given instruction.
This uses the return value of the override function, if set and returns Some
. If not set
or the function returns None
, defaults to the return value of
InstructionRole::from
.
sourcepub fn matching_frames<'a>(
&mut self,
instruction: &'a Instruction,
program: &'a Program
) -> Option<MatchedFrames<'a>>
pub fn matching_frames<'a>( &mut self, instruction: &'a Instruction, program: &'a Program ) -> Option<MatchedFrames<'a>>
Determine the MatchedFrames
for the given instruction.
This uses the return value of the override function, if set and returns Some
. If not set
or the function returns None
, defaults to the return value of
Program::get_frames_for_instruction
.
sourcepub fn memory_accesses(&mut self, instruction: &Instruction) -> MemoryAccesses
pub fn memory_accesses(&mut self, instruction: &Instruction) -> MemoryAccesses
Determine the MemoryAccesses
for the given instruction.
This uses the return value of the override function, if set and returns Some
. If not set
or the function returns None
, defaults to the return value of
Instruction::get_memory_accesses
.