#![cfg_attr(docsrs, feature(doc_cfg))]
mod ascii;
mod bitpix;
mod block;
mod checksum;
#[cfg(feature = "compression")]
mod compress;
mod data;
mod endian;
mod error;
mod groups;
mod hdu;
mod header;
mod keyword;
mod reader;
mod table;
mod time;
mod wcs;
mod writer;
pub use ascii::{AsciiColumn, AsciiColumnReader, AsciiKind, AsciiTable};
pub use bitpix::Bitpix;
pub use bitvec;
#[cfg(feature = "compression")]
pub use compress::CompressOptions;
#[cfg(feature = "ndarray")]
pub use data::ImageArray;
pub use data::{Image, ImageData, RawImage, SampleType, Scaling, UnsignedView};
pub use error::{FitsError, Result};
pub use groups::RandomGroups;
pub use hdu::HduKind;
pub use header::Header;
pub use header::HeaderEntry;
pub use header::value::Value;
pub use num_complex;
pub use num_complex::Complex;
#[cfg(feature = "mmap")]
pub use reader::MmapReader;
#[cfg(feature = "mmap")]
pub use reader::source::MmapSource;
pub use reader::source::{SliceSource, Source, StreamSource};
pub use reader::{ChecksumReport, DataUnit, FitsReader, Hdu, SliceReader, StreamReader};
pub use table::{
BinTable, BitColumn, Column, ColumnData, ColumnReader, TDisp, TDispKind, Tform, TformKind,
};
pub use time::{
Datetime, Epoch, EpochTime, FitsTime, GtiInterval, PhaseAxis, TimeAxisKind, TimeBounds,
TimeScale,
};
pub use wcs::{Projection, Wcs};
pub use writer::{AsciiWriteColumn, FitsWriter, WriteColumn};
pub use block::{BLOCK_SIZE, CARD_SIZE};
#[cfg(feature = "internals")]
pub mod internals {
use crate::bitpix::Bitpix;
use crate::data::ImageData;
pub fn decode_image(bytes: &[u8], bitpix: Bitpix) -> ImageData {
ImageData::decode(bytes, bitpix)
}
pub fn encode_image(data: &ImageData) -> Vec<u8> {
let mut out = Vec::new();
data.encode_into(&mut out);
out
}
}