use thiserror::Error;
#[derive(Debug, Error, Clone)]
pub enum JxsError {
#[error("truncated codestream: need {need} bytes, have {have}")]
TruncatedStream {
need: usize,
have: usize,
},
#[error("invalid marker: expected {expected:#06x}, got {got:#06x}")]
InvalidMarker {
expected: u16,
got: u16,
},
#[error("unsupported feature: {0}")]
Unsupported(String),
#[error("invalid header: {0}")]
InvalidHeader(String),
#[error("VLC decode error: {0}")]
VlcError(String),
}
pub type JxsResult<T> = Result<T, JxsError>;
pub mod bitreader;
pub mod bitwriter;
pub mod decoder;
pub mod encoder;
pub mod entropy;
pub mod marker_write;
pub mod markers;
pub mod nlt;
pub mod vlc;
pub mod vlc_encode;
pub mod wavelet;
pub use decoder::{DecodedImage, JpegXsDecoder};
pub use encoder::{JpegXsEncoder, JpegXsEncoderConfig};