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