quantrs2_tytan/sampler/
errors.rs1use quantrs2_anneal::{AnnealingError, IsingError};
4use thiserror::Error;
5
6#[derive(Error, Debug)]
8pub enum SamplerError {
9 #[error("Invalid parameter: {0}")]
11 InvalidParameter(String),
12
13 #[error("Annealing error: {0}")]
15 AnnealingError(#[from] AnnealingError),
16
17 #[error("Ising model error: {0}")]
19 IsingError(#[from] IsingError),
20
21 #[error("GPU error: {0}")]
23 GpuError(String),
24
25 #[error("D-Wave API unavailable: {0}")]
27 DWaveUnavailable(String),
28
29 #[error("API communication error: {0}")]
31 ApiError(String),
32
33 #[cfg(feature = "dwave")]
35 #[error("D-Wave error: {0}")]
36 DWaveError(#[from] quantrs2_anneal::dwave::DWaveError),
37
38 #[error("Not implemented: {0}")]
40 NotImplemented(String),
41
42 #[error("Invalid model: {0}")]
44 InvalidModel(String),
45
46 #[error("Unsupported operation: {0}")]
48 UnsupportedOperation(String),
49}
50
51impl From<String> for SamplerError {
52 fn from(s: String) -> Self {
53 Self::InvalidParameter(s)
54 }
55}
56
57pub type SamplerResult<T> = Result<T, SamplerError>;