#![cfg_attr(not(feature = "unsafe-performance"), forbid(unsafe_code))]
#![cfg_attr(feature = "unsafe-performance", deny(unsafe_code))]
extern crate alloc;
pub mod api;
pub mod bit_writer;
pub mod color;
pub mod container;
pub mod debug_rect;
pub mod effort;
pub mod entropy_coding;
pub mod error;
#[allow(dead_code)] pub(crate) mod f16;
pub mod headers;
pub(crate) mod icc;
pub mod image;
#[cfg(feature = "jpeg-reencoding")]
pub mod jpeg;
pub mod modular;
pub(crate) mod parallel;
pub mod trace;
pub mod vardct;
#[cfg(feature = "convenience")]
pub mod convenience;
pub use api::{
AnimationFrame, AnimationParams, At, EncodeError, EncodeMode, EncodeRequest, EncodeResult,
EncodeStats, EncoderMode, ImageMetadata, Limits, LosslessConfig, LosslessEncoder, LossyConfig,
LossyEncoder, Lz77Method, PixelLayout, ProgressiveMode, Quality, ResultAtExt, Stop,
Unstoppable, at, calibrated_jxl_quality, quality_to_distance,
};
pub use effort::EffortProfile;
pub use headers::color_encoding::{
CIExy, ColorEncoding, ColorSpace, CustomPrimaries, Primaries, RenderingIntent,
TransferFunction, WhitePoint,
};
pub use vardct::splines::{Spline, SplinePoint};
#[cfg(feature = "convenience")]
pub use convenience::{
encode_bgra8, encode_bgra8_lossless, encode_gray8, encode_gray8_lossless, encode_rgb8,
encode_rgb8_lossless, encode_rgba8, encode_rgba8_lossless,
};
pub const GROUP_DIM: usize = 256;
pub const BLOCK_DIM: usize = 8;
pub const BLOCK_SIZE: usize = BLOCK_DIM * BLOCK_DIM;
pub const JXL_SIGNATURE: [u8; 2] = [0xFF, 0x0A];
#[doc(hidden)]
pub mod test_helpers;
#[cfg(test)]
mod tests;
#[cfg(test)]
#[path = "api_tests.rs"]
mod api_tests;