pub struct EnhancedTopologicalDevice {
pub core_device: TopologicalDevice,
pub anyon_factory: AnyonFactory,
pub braiding_manager: BraidingOperationManager,
pub fusion_executor: FusionOperationExecutor,
pub config: TopologicalDeviceConfig,
pub is_connected: bool,
}Expand description
Enhanced topological quantum device with full anyon manipulation
Fields§
§core_device: TopologicalDeviceCore topological device
anyon_factory: AnyonFactoryAnyon factory for creating anyons
braiding_manager: BraidingOperationManagerBraiding operation manager
fusion_executor: FusionOperationExecutorFusion operation executor
config: TopologicalDeviceConfigDevice configuration
is_connected: boolConnection status
Implementations§
Source§impl EnhancedTopologicalDevice
impl EnhancedTopologicalDevice
Sourcepub fn new(
system_type: TopologicalSystemType,
fusion_rules: FusionRuleSet,
capabilities: TopologicalCapabilities,
config: TopologicalDeviceConfig,
) -> TopologicalResult<Self>
pub fn new( system_type: TopologicalSystemType, fusion_rules: FusionRuleSet, capabilities: TopologicalCapabilities, config: TopologicalDeviceConfig, ) -> TopologicalResult<Self>
Create a new enhanced topological device
Sourcepub async fn connect(&mut self) -> TopologicalResult<()>
pub async fn connect(&mut self) -> TopologicalResult<()>
Connect to the topological quantum hardware
Sourcepub async fn disconnect(&mut self) -> TopologicalResult<()>
pub async fn disconnect(&mut self) -> TopologicalResult<()>
Disconnect from the hardware
Sourcepub async fn initialize_topological_qubits(
&mut self,
num_qubits: usize,
) -> TopologicalResult<Vec<usize>>
pub async fn initialize_topological_qubits( &mut self, num_qubits: usize, ) -> TopologicalResult<Vec<usize>>
Initialize topological qubits
Sourcepub async fn topological_x_gate(
&mut self,
qubit_id: usize,
) -> TopologicalResult<()>
pub async fn topological_x_gate( &mut self, qubit_id: usize, ) -> TopologicalResult<()>
Perform a topological X gate via braiding
Sourcepub async fn topological_z_gate(
&mut self,
qubit_id: usize,
) -> TopologicalResult<()>
pub async fn topological_z_gate( &mut self, qubit_id: usize, ) -> TopologicalResult<()>
Perform a topological Z gate via braiding
Sourcepub async fn topological_cnot_gate(
&mut self,
control_qubit: usize,
target_qubit: usize,
) -> TopologicalResult<()>
pub async fn topological_cnot_gate( &mut self, control_qubit: usize, target_qubit: usize, ) -> TopologicalResult<()>
Perform a topological CNOT gate
Sourcepub async fn measure_topological_qubit(
&mut self,
qubit_id: usize,
) -> TopologicalResult<bool>
pub async fn measure_topological_qubit( &mut self, qubit_id: usize, ) -> TopologicalResult<bool>
Measure a topological qubit
Sourcepub async fn reset_topological_qubit(
&mut self,
qubit_id: usize,
) -> TopologicalResult<()>
pub async fn reset_topological_qubit( &mut self, qubit_id: usize, ) -> TopologicalResult<()>
Reset a topological qubit to |0⟩ state
Sourcepub async fn get_diagnostics(&self) -> TopologicalDeviceDiagnostics
pub async fn get_diagnostics(&self) -> TopologicalDeviceDiagnostics
Get device status and diagnostics
Trait Implementations§
Source§impl CircuitExecutor for EnhancedTopologicalDevice
impl CircuitExecutor for EnhancedTopologicalDevice
Source§fn execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<CircuitResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<CircuitResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute a quantum circuit on the device
Source§fn execute_circuits<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuits: Vec<&'life1 Circuit<N>>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<Vec<CircuitResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute_circuits<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuits: Vec<&'life1 Circuit<N>>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<Vec<CircuitResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute multiple circuits in parallel
Source§fn can_execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
_circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn can_execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
_circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check if a circuit can be executed on the device
Source§fn estimated_queue_time<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
_circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<Duration>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn estimated_queue_time<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
_circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<Duration>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get estimated queue time for a circuit execution
Source§impl QuantumDevice for EnhancedTopologicalDevice
impl QuantumDevice for EnhancedTopologicalDevice
Source§fn is_available<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn is_available<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Check if the device is available for use
Source§fn qubit_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn qubit_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the number of qubits on the device
Source§fn properties<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<HashMap<String, String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn properties<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<HashMap<String, String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get device properties such as error rates, connectivity, etc.
Source§fn is_simulator<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn is_simulator<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Check if the device is a simulator
Auto Trait Implementations§
impl Freeze for EnhancedTopologicalDevice
impl RefUnwindSafe for EnhancedTopologicalDevice
impl Send for EnhancedTopologicalDevice
impl Sync for EnhancedTopologicalDevice
impl Unpin for EnhancedTopologicalDevice
impl UnwindSafe for EnhancedTopologicalDevice
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
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.