pub struct CalibrationSet {
    pub calibrations: Vec<Calibration>,
    pub measure_calibrations: Vec<MeasureCalibrationDefinition>,
}
Expand description

A collection of Quil calibrations (DEFCAL instructions) with utility methods.

Fields§

§calibrations: Vec<Calibration>§measure_calibrations: Vec<MeasureCalibrationDefinition>

Implementations§

source§

impl CalibrationSet

source

pub fn calibrations(&self) -> &[Calibration]

Return all Calibrations in the set

source

pub fn measure_calibrations(&self) -> &[MeasureCalibrationDefinition]

Return all MeasureCalibrationDefinitions in the set

source

pub fn expand( &self, instruction: &Instruction, previous_calibrations: &[Instruction] ) -> Result<Option<Vec<Instruction>>, ProgramError>

Given an instruction, return the instructions to which it is expanded if there is a match. Recursively calibrate instructions, returning an error if a calibration directly or indirectly expands into itself.

source

pub fn get_match_for_measurement( &self, measurement: &Measurement ) -> Option<&MeasureCalibrationDefinition>

Returns the last-specified MeasureCalibrationDefinition that matches the target qubit (if any), or otherwise the last-specified one that specified no qubit.

If multiple calibrations match the measurement, the precedence is as follows:

  1. Match fixed qubit.
  2. Match variable qubit.
  3. Match no qubit.

In the case of multiple calibrations with equal precedence, the last one wins.

source

pub fn get_match_for_gate(&self, gate: &Gate) -> Option<&Calibration>

Return the final calibration which matches the gate per the QuilT specification:

A calibration matches a gate if:

  1. It has the same name
  2. It has the same modifiers
  3. It has the same qubit count (any mix of fixed & variable)
  4. It has the same parameter count (both specified and unspecified)
  5. All fixed qubits in the calibration definition match those in the gate
  6. All specified parameters in the calibration definition match those in the gate
source

pub fn len(&self) -> usize

Return the count of contained calibrations.

source

pub fn is_empty(&self) -> bool

Return true if this contains no data.

source

pub fn push(&mut self, calibration: Calibration)

👎Deprecated: use ScheduledProgram#push_calibration instead

Add another gate calibration to the set. Deprecated in favor of Self::push_calibration

source

pub fn push_calibration(&mut self, calibration: Calibration)

Add another gate calibration (DEFCAL) to the set.

source

pub fn push_measurement_calibration( &mut self, calibration: MeasureCalibrationDefinition )

Add another measurement calibration (DEFCAL MEASURE) to the set.

source

pub fn extend(&mut self, other: CalibrationSet)

Append another CalibrationSet onto this one

source

pub fn into_instructions(self) -> Vec<Instruction>

Return the Quil instructions which describe the contained calibrations, consuming the CalibrationSet.

source

pub fn to_instructions(&self) -> Vec<Instruction>

Return the Quil instructions which describe the contained calibrations.

Trait Implementations§

source§

impl Clone for CalibrationSet

source§

fn clone(&self) -> CalibrationSet

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CalibrationSet

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for CalibrationSet

source§

fn default() -> CalibrationSet

Returns the “default value” for a type. Read more
source§

impl PartialEq<CalibrationSet> for CalibrationSet

source§

fn eq(&self, other: &CalibrationSet) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for CalibrationSet

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.