use blr_core::BLRError;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum ALError {
#[error("BLR fitting error: {0}")]
BlrError(#[from] BLRError),
#[error("Precision goal unreachable: {0}")]
GoalUnreachable(String),
#[error("Noise floor detected — hardware noise is the limiting factor")]
NoiseFloorDetected,
#[error("Maximum iterations reached without convergence")]
MaxIterationsReached,
#[error("No precision goal set — call set_goal() first")]
NoGoalSet,
}
pub type ALResult<T> = Result<T, ALError>;