use thiserror::Error;
#[derive(Error, Debug)]
pub(crate) enum BeamError {
#[error("The number of delays per tile ({delays}) didn't match the number of gains per tile ({gains})")]
DelayGainsDimensionMismatch { delays: usize, gains: usize },
#[error("Got tile index {got}, but the biggest tile index is {max}")]
BadTileIndex { got: usize, max: usize },
#[error("hyperbeam error: {0}")]
Hyperbeam(#[from] mwa_hyperbeam::fee::FEEBeamError),
#[error("hyperbeam init error: {0}")]
HyperbeamInit(#[from] mwa_hyperbeam::fee::InitFEEBeamError),
#[cfg(feature = "cuda")]
#[error("CUDA error: {0}")]
Cuda(#[from] marlu::cuda::CudaError),
}