use thiserror::Error;
pub type LadduResult<T> = Result<T, LadduError>;
#[derive(Clone, Debug, Error)]
pub enum LadduError {
#[error(transparent)]
Autodiff(#[from] laddu_autodiff::AutodiffError),
#[error(transparent)]
Compile(#[from] laddu_compile::CompileError),
#[error(transparent)]
Data(#[from] laddu_data::LadduDataError),
#[error(transparent)]
Expression(#[from] laddu_expr::ExprError),
#[error(transparent)]
Kernel(#[from] laddu_kernel::KernelError),
#[error(transparent)]
Physics(#[from] laddu_physics::LadduPhysicsError),
#[error(transparent)]
Runtime(#[from] laddu_runtime::RuntimeError),
#[cfg(feature = "amplitudes")]
#[error(transparent)]
Amplitude(#[from] laddu_amplitudes::AmplitudeError),
#[cfg(feature = "likelihood")]
#[error(transparent)]
Likelihood(#[from] laddu_likelihood::LikelihoodError),
#[cfg(feature = "wgpu")]
#[error(transparent)]
Wgpu(#[from] laddu_wgpu::WgpuError),
}
#[cfg(feature = "amplitudes")]
pub use laddu_amplitudes::AmplitudeError;
pub use laddu_autodiff::AutodiffError;
pub use laddu_compile::CompileError;
pub use laddu_data::LadduDataError;
pub use laddu_expr::ExprError;
pub use laddu_kernel::KernelError;
#[cfg(feature = "likelihood")]
pub use laddu_likelihood::LikelihoodError;
pub use laddu_physics::LadduPhysicsError;
pub use laddu_runtime::RuntimeError;
#[cfg(feature = "wgpu")]
pub use laddu_wgpu::WgpuError;