pub enum FitsError {
Show 31 variants
Io(Error),
InvalidKeyword {
name: String,
},
InvalidValue {
card: String,
},
InvalidBitpix {
code: i64,
},
MissingEnd,
MissingKeyword {
name: &'static str,
},
KeywordOutOfRange {
name: &'static str,
},
UnexpectedEof,
DataUnitOverflow,
DataUnitTooLarge {
bytes: usize,
},
DataSizeMismatch {
expected: usize,
got: usize,
},
HduIndexOutOfBounds {
index: usize,
len: usize,
},
NotAnImage,
ImageHasGroups,
NotABinTable,
NotRandomGroups,
NotAnAsciiTable,
NotCompressedImage,
NotCompressedTable,
ConflictingWcsKeywords {
detail: &'static str,
},
UnsupportedCompression {
name: String,
},
InvalidTform {
tform: String,
},
VariableLengthColumn {
code: char,
},
NotAVla {
code: char,
},
NotABitColumn {
code: char,
},
NotAComplexColumn {
code: char,
},
NonNumericColumn {
code: char,
},
ColumnIndexOutOfBounds {
index: usize,
len: usize,
},
ColumnNotFound {
name: String,
},
RowWidthMismatch {
computed: usize,
declared: usize,
},
TileShapeRankMismatch {
tile_rank: usize,
image_rank: usize,
},
}Variants§
Io(Error)
InvalidKeyword
A keyword name violated the FITS character set or 8-byte length limit.
InvalidValue
A card’s value field could not be parsed as any FITS value type.
InvalidBitpix
BITPIX held a value outside {8, 16, 32, 64, −32, −64}.
MissingEnd
A header unit ended (ran out of cards) without an END record.
MissingKeyword
A mandatory keyword was absent where the structure requires it.
KeywordOutOfRange
A keyword was present and well-typed but its value lies outside the range
the standard permits for its role (e.g. NAXIS > 999, PCOUNT < 0,
GCOUNT < 1, a negative axis length, or a THEAP that precedes the heap).
UnexpectedEof
The byte stream ended in the middle of a header or data unit.
DataUnitOverflow
The data-unit size implied by the header overflows a 64-bit byte count
(a malformed or hostile header with absurd NAXISn/PCOUNT/GCOUNT).
DataUnitTooLarge
The data-unit size implied by the header is non-overflowing but too large to
allocate — a malformed or hostile header declaring an absurd (yet in-range)
NAXISn/ZNAXISn/ZNAXIS2. The output buffer is allocated fallibly
(try_reserve), so this surfaces as a recoverable error rather than an
out-of-memory process abort.
DataSizeMismatch
A decoded data unit held a different element count than the header’s declared geometry — a corrupt or truncated data unit.
HduIndexOutOfBounds
A data-unit read named an HDU index beyond the parsed sequence.
NotAnImage
read_image was called on an HDU that is not an image array (a table,
random-groups, or unmodelled extension).
ImageHasGroups
An IMAGE/primary HDU carries group structure (PCOUNT ≠ 0 or GCOUNT ≠ 1),
which a plain image array must not have (§4.3).
NotABinTable
read_table was called on an HDU that is not a binary table.
NotRandomGroups
read_groups was called on an HDU that is not a random-groups primary.
NotAnAsciiTable
read_ascii_table was called on an HDU that is not an ASCII table.
NotCompressedImage
The decompressor was handed an HDU that is not a tiled-compressed image (no
ZIMAGE = T). read_image guards this and returns FitsError::NotAnImage
for a plain BINTABLE, so this surfaces only via the internal decode path.
NotCompressedTable
read_compressed_table was called on an HDU that is not a tiled-compressed
table (no ZTABLE = T).
ConflictingWcsKeywords
Two mutually-exclusive WCS keyword conventions are both present (e.g. PC
and CD, or CROTA and PC); a conforming header uses only one (§8).
UnsupportedCompression
A tiled-image compression algorithm or variant is not yet supported.
InvalidTform
A TFORMn value could not be parsed as a binary-table column format.
VariableLengthColumn
ColumnReader::raw was called on a variable-length-array (P/Q) column;
use ColumnReader::vla instead.
NotAVla
ColumnReader::vla was called on a fixed-width column.
NotABitColumn
ColumnReader::bits was called on a column that is not an X bit array.
NotAComplexColumn
ColumnReader::complex was called on a column that is not C/M complex.
NonNumericColumn
ColumnReader::physical was called on a column with no numeric physical
value (A/L/X/C/M).
ColumnIndexOutOfBounds
A column index named a field beyond the table’s column list.
ColumnNotFound
No column with the requested TTYPEn name exists in the table.
RowWidthMismatch
The summed column widths disagree with the declared row width (NAXIS1).
TileShapeRankMismatch
A requested compression tile shape has a different rank (axis count) than the image it tiles. Pass an empty shape for the default row-tiling instead.
Trait Implementations§
Source§impl Error for FitsError
impl Error for FitsError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for FitsError
impl !RefUnwindSafe for FitsError
impl Send for FitsError
impl Sync for FitsError
impl Unpin for FitsError
impl UnsafeUnpin for FitsError
impl !UnwindSafe for FitsError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.