1use thiserror::Error;
2
3#[derive(Error, Debug, Clone, PartialEq, Eq)]
5pub enum QuantRS2Error {
6 #[error("Invalid qubit ID {0}, must be within the valid range for this operation")]
8 InvalidQubitId(u32),
9
10 #[error("Unsupported operation: {0}")]
12 UnsupportedOperation(String),
13
14 #[error("Failed to apply gate: {0}")]
16 GateApplicationFailed(String),
17
18 #[error("Circuit validation failed: {0}")]
20 CircuitValidationFailed(String),
21
22 #[error("Backend execution failed: {0}")]
24 BackendExecutionFailed(String),
25
26 #[error("Unsupported qubit count {0}: {1}")]
28 UnsupportedQubits(usize, String),
29
30 #[error("Invalid input: {0}")]
32 InvalidInput(String),
33
34 #[error("Computation error: {0}")]
36 ComputationError(String),
37}
38
39pub type QuantRS2Result<T> = Result<T, QuantRS2Error>;