use std::path::PathBuf;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum FitsError {
#[error("mwalib has been compiled with a CFITSIO library which was not built with the -DREENTRANT directive")]
CfitsioIsNotReentrant,
#[error("{source_file}:{source_line}\nCouldn't open {fits_filename}: {fits_error}")]
Open {
fits_error: fitsio::errors::Error,
fits_filename: PathBuf,
source_file: &'static str,
source_line: u32,
},
#[error("{source_file}:{source_line}\n{fits_filename} HDU {hdu_num}: Couldn't find key {key}")]
MissingKey {
key: String,
fits_filename: PathBuf,
hdu_num: usize,
source_file: &'static str,
source_line: u32,
},
#[error("{source_file}:{source_line}\n{fits_filename} HDU {hdu_num}: Tried to use as an image, but not an image")]
NotImage {
fits_filename: PathBuf,
hdu_num: usize,
source_file: &'static str,
source_line: u32,
},
#[error("{source_file}:{source_line}\n{fits_filename} HDU {hdu_num}: Couldn't read a long string from {key}")]
LongString {
key: String,
fits_filename: PathBuf,
hdu_num: usize,
source_file: &'static str,
source_line: u32,
},
#[error("{source_file}:{source_line}\n{fits_filename} HDU {hdu}: {fits_error}")]
Fitsio {
fits_error: fitsio::errors::Error,
fits_filename: PathBuf,
hdu: String,
source_file: &'static str,
source_line: u32,
},
#[error("{source_file}:{source_line}\nCouldn't parse {key} in {fits_filename} HDU {hdu_num}")]
Parse {
key: String,
fits_filename: PathBuf,
hdu_num: usize,
source_file: &'static str,
source_line: u32,
},
#[error("{fits_filename} HDU {hdu_num}: Failed to read table row {row_num} for {col_name} from metafits")]
ReadCell {
fits_filename: PathBuf,
hdu_num: usize,
row_num: usize,
col_name: String,
},
#[error("{fits_filename} HDU {hdu_num}: Failed to read cell array from column {col_name}, row {row_num} from metafits")]
CellArray {
fits_filename: PathBuf,
hdu_num: usize,
row_num: usize,
col_name: String,
},
#[error("{fits_filename} HDU {hdu_num}: Failed to read cell string from column {col_name}, row {row_num} from metafits")]
ReadCellString {
fits_filename: PathBuf,
hdu_num: usize,
row_num: usize,
col_name: String,
},
#[error("{fits_filename} HDU {hdu_num}: Failed to find {col_name} in metafits table")]
TableColNotFound {
fits_filename: PathBuf,
hdu_num: usize,
col_name: String,
},
}