use crate::ising::IsingError;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum RLEmbeddingError {
#[error("Ising error: {0}")]
IsingError(#[from] IsingError),
#[error("Neural network error: {0}")]
NeuralNetworkError(String),
#[error("Training error: {0}")]
TrainingError(String),
#[error("Embedding error: {0}")]
EmbeddingError(String),
#[error("Configuration error: {0}")]
ConfigurationError(String),
#[error("Hardware error: {0}")]
HardwareError(String),
#[error("Optimization error: {0}")]
OptimizationError(String),
}
pub type RLEmbeddingResult<T> = Result<T, RLEmbeddingError>;