Enum quil_rs::instruction::Instruction
source · pub enum Instruction {
Show 39 variants
Arithmetic(Arithmetic),
BinaryLogic(BinaryLogic),
CalibrationDefinition(Calibration),
Capture(Capture),
CircuitDefinition(CircuitDefinition),
Convert(Convert),
Comparison(Comparison),
Declaration(Declaration),
Delay(Delay),
Exchange(Exchange),
Fence(Fence),
FrameDefinition(FrameDefinition),
Gate(Gate),
GateDefinition(GateDefinition),
Halt,
Include(Include),
Jump(Jump),
JumpUnless(JumpUnless),
JumpWhen(JumpWhen),
Label(Label),
Load(Load),
MeasureCalibrationDefinition(MeasureCalibrationDefinition),
Measurement(Measurement),
Move(Move),
Nop,
Pragma(Pragma),
Pulse(Pulse),
RawCapture(RawCapture),
Reset(Reset),
SetFrequency(SetFrequency),
SetPhase(SetPhase),
SetScale(SetScale),
ShiftFrequency(ShiftFrequency),
ShiftPhase(ShiftPhase),
Store(Store),
SwapPhases(SwapPhases),
UnaryLogic(UnaryLogic),
WaveformDefinition(WaveformDefinition),
Wait,
}
Variants§
Arithmetic(Arithmetic)
BinaryLogic(BinaryLogic)
CalibrationDefinition(Calibration)
Capture(Capture)
CircuitDefinition(CircuitDefinition)
Convert(Convert)
Comparison(Comparison)
Declaration(Declaration)
Delay(Delay)
Exchange(Exchange)
Fence(Fence)
FrameDefinition(FrameDefinition)
Gate(Gate)
GateDefinition(GateDefinition)
Halt
Include(Include)
Jump(Jump)
JumpUnless(JumpUnless)
JumpWhen(JumpWhen)
Label(Label)
Load(Load)
MeasureCalibrationDefinition(MeasureCalibrationDefinition)
Measurement(Measurement)
Move(Move)
Nop
Pragma(Pragma)
Pulse(Pulse)
RawCapture(RawCapture)
Reset(Reset)
SetFrequency(SetFrequency)
SetPhase(SetPhase)
SetScale(SetScale)
ShiftFrequency(ShiftFrequency)
ShiftPhase(ShiftPhase)
Store(Store)
SwapPhases(SwapPhases)
UnaryLogic(UnaryLogic)
WaveformDefinition(WaveformDefinition)
Wait
Implementations§
source§impl Instruction
impl Instruction
sourcepub fn apply_to_expressions(&mut self, closure: impl FnMut(&mut Expression))
pub fn apply_to_expressions(&mut self, closure: impl FnMut(&mut Expression))
Apply the provided closure to this instruction, mutating any Expression
s within.
Does not affect instructions without Expression
s within.
Does not traverse or mutate instructions nested within blocks (such as
within DEFCAL
).
Example
use std::mem::replace;
use std::str::FromStr;
use quil_rs::{expression::Expression, Program};
let program = Program::from_str("SHIFT-PHASE 0 \"rf\" 2*2").unwrap();
let mut instructions = program.to_instructions();
instructions.iter_mut().for_each(|inst| inst.apply_to_expressions(Expression::simplify));
assert_eq!(instructions[0].to_string(), String::from("SHIFT-PHASE 0 \"rf\" 4"))
sourcepub fn is_scheduled(&self) -> bool
pub fn is_scheduled(&self) -> bool
Per the Quil-T spec, whether this instruction’s timing within the pulse program must be precisely controlled so as to begin exactly on the end of the latest preceding timed instruction
source§impl Instruction
impl Instruction
sourcepub fn get_memory_accesses(&self) -> MemoryAccesses
pub fn get_memory_accesses(&self) -> MemoryAccesses
Return all memory accesses by the instruction - in expressions, captures, and memory manipulation
Trait Implementations§
source§impl Clone for Instruction
impl Clone for Instruction
source§fn clone(&self) -> Instruction
fn clone(&self) -> Instruction
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Instruction
impl Debug for Instruction
source§impl Display for Instruction
impl Display for Instruction
source§impl From<&Instruction> for InstructionRole
impl From<&Instruction> for InstructionRole
source§fn from(instruction: &Instruction) -> Self
fn from(instruction: &Instruction) -> Self
Converts to this type from the input type.
source§impl PartialEq<Instruction> for Instruction
impl PartialEq<Instruction> for Instruction
source§fn eq(&self, other: &Instruction) -> bool
fn eq(&self, other: &Instruction) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl StructuralPartialEq for Instruction
Auto Trait Implementations§
impl RefUnwindSafe for Instruction
impl Send for Instruction
impl Sync for Instruction
impl Unpin for Instruction
impl UnwindSafe for Instruction
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more