Trait roqoqo::operations::InvolveQubits[][src]

pub trait InvolveQubits {
    fn involved_qubits(&self) -> InvolvedQubits;
}
Expand description

Trait for the qubits involved in each Operation.

Example

use roqoqo::operations::{CNOT, DefinitionFloat, InvolveQubits, InvolvedQubits, PragmaRepeatedMeasurement};
use std::collections::{HashMap, HashSet};

// The involved qubits of the operation tell us which qubits are affected by the Operation.
// There are three possibilities:
// 1) The involved qubits are a set of integers (usize): these are the qubits affected by the Operation
let cnot = CNOT::new(0, 1);
let mut qubits: HashSet<usize> = HashSet::new();
qubits.insert(0);
qubits.insert(1);
assert_eq!(cnot.involved_qubits(), InvolvedQubits::Set(qubits));
// 2) The involved qubits are None: there are no qubits affected by this Operation
let def_float = DefinitionFloat::new("ro".to_string(), 1, true);
assert_eq!(def_float.involved_qubits(), InvolvedQubits::None);
// 3) The involved qubits are All: all of the qubits in the Circuit are affected by the Operation
let mut qubit_mapping: HashMap<usize, usize> = HashMap::new();
qubit_mapping.insert(0, 1);
let pragma = PragmaRepeatedMeasurement::new("ro".to_string(), 2, Some(qubit_mapping.clone()));
assert_eq!(pragma.involved_qubits(), InvolvedQubits::All);

Required methods

Returns a list of all involved qubits.

Implementors

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.

Implements InvolveQubits trait for the qubits involved in this Operation.