Struct roqoqo_qasm::Backend
source · pub struct Backend { /* private fields */ }
Expand description
QASM backend to qoqo
This backend to roqoqo produces QASM output which can be exported.
This backend takes a roqoqo circuit and returns a QASM String or writes a QASM file containing the translated circuit. The circuit itself is translated using the roqoqo-qasm interface. In this backend, the initialization sets up the relevant parameters and the run function calls the QASM interface and writes the QASM file, which is saved to be used by the user on whatever platform they see fit. QASM input is widely supported on various quantum computing platforms.
Implementations§
source§impl Backend
impl Backend
sourcepub fn new(
qubit_register_name: Option<String>,
qasm_version: Option<String>
) -> Result<Self, RoqoqoBackendError>
pub fn new( qubit_register_name: Option<String>, qasm_version: Option<String> ) -> Result<Self, RoqoqoBackendError>
Creates new QASM backend.
§Arguments
qubit_register_name
- The number of qubits in the backend.qasm_version
- The version of OpenQASM (2.0 or 3.0) to use.
sourcepub fn circuit_iterator_to_qasm_str<'a>(
&self,
circuit: impl Iterator<Item = &'a Operation>
) -> Result<String, RoqoqoBackendError>
pub fn circuit_iterator_to_qasm_str<'a>( &self, circuit: impl Iterator<Item = &'a Operation> ) -> Result<String, RoqoqoBackendError>
sourcepub fn circuit_iterator_to_qasm_file<'a>(
&self,
circuit: impl Iterator<Item = &'a Operation>,
folder_name: &Path,
filename: &Path,
overwrite: bool
) -> Result<(), RoqoqoBackendError>
pub fn circuit_iterator_to_qasm_file<'a>( &self, circuit: impl Iterator<Item = &'a Operation>, folder_name: &Path, filename: &Path, overwrite: bool ) -> Result<(), RoqoqoBackendError>
Translates an iterator over operations to a QASM file.
§Arguments
circuit
- The iterator over [roqoqo::Operation] items that is translatedfolder_name
- The name of the folder that is prepended to all filenames.filename
- The name of the file the QASM text is saved to.overwrite
- Whether to overwrite file if it already exists.
§Returns
Ok(())
- The qasm file was correctly writtenRoqoqoBackendError::FileAlreadyExists
- The file at this location already exists
sourcepub fn circuit_to_qasm_str(
&self,
circuit: &Circuit
) -> Result<String, RoqoqoBackendError>
pub fn circuit_to_qasm_str( &self, circuit: &Circuit ) -> Result<String, RoqoqoBackendError>
sourcepub fn circuit_to_qasm_file(
&self,
circuit: &Circuit,
folder_name: &Path,
filename: &Path,
overwrite: bool
) -> Result<(), RoqoqoBackendError>
pub fn circuit_to_qasm_file( &self, circuit: &Circuit, folder_name: &Path, filename: &Path, overwrite: bool ) -> Result<(), RoqoqoBackendError>
Translates a Circuit to a QASM file.
§Arguments
circuit
- The Circuit that is translatedfolder_name
- The name of the folder that is prepended to all filenames.filename
- The name of the file the QASM text is saved to.overwrite
- Whether to overwrite file if it already exists.
§Returns
Ok(())
- The qasm file was correctly writtenRoqoqoBackendError::FileAlreadyExists
- The file at this location already exists
sourcepub fn file_to_circuit(&self, file: File) -> Result<Circuit, RoqoqoBackendError>
pub fn file_to_circuit(&self, file: File) -> Result<Circuit, RoqoqoBackendError>
sourcepub fn string_to_circuit(
&self,
input: &str
) -> Result<Circuit, RoqoqoBackendError>
pub fn string_to_circuit( &self, input: &str ) -> Result<Circuit, RoqoqoBackendError>
Trait Implementations§
source§impl PartialEq for Backend
impl PartialEq for Backend
impl Eq for Backend
impl StructuralPartialEq for Backend
Auto Trait Implementations§
impl RefUnwindSafe for Backend
impl Send for Backend
impl Sync for Backend
impl Unpin for Backend
impl UnwindSafe for Backend
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
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.