1#![cfg_attr(not(feature = "unsafe-performance"), forbid(unsafe_code))]
11#![cfg_attr(feature = "unsafe-performance", deny(unsafe_code))]
12
13extern crate alloc;
14
15pub mod api;
16pub mod bit_writer;
17pub mod color;
18pub mod container;
19pub mod debug_rect;
20pub mod effort;
26pub mod entropy_coding;
27pub mod error;
28#[allow(dead_code)] pub(crate) mod f16;
30pub mod headers;
31pub(crate) mod icc;
32pub mod image;
33#[cfg(feature = "jpeg-reencoding")]
34pub mod jpeg;
35pub mod modular;
36pub(crate) mod parallel;
37pub mod trace;
38pub mod validation;
39#[cfg(test)]
40mod validation_tests;
41pub mod vardct;
42
43#[cfg(feature = "convenience")]
44pub mod convenience;
45
46pub use api::{
48 AnimationFrame, AnimationParams, At, EncodeError, EncodeMode, EncodeRequest, EncodeResult,
49 EncodeStats, EncoderMode, ImageMetadata, Limits, LosslessConfig, LosslessEncoder, LossyConfig,
50 LossyEncoder, Lz77Method, PixelLayout, ProgressiveMode, Quality, ResultAtExt, Stop,
51 Unstoppable, at, calibrated_jxl_quality, quality_to_distance,
52};
53#[doc(hidden)]
63pub use effort::EffortProfile;
64pub use effort::EntropyMulTable;
65#[cfg(feature = "__expert")]
66pub use effort::{LosslessInternalParams, LossyInternalParams};
67pub use headers::color_encoding::{
68 CIExy, ColorEncoding, ColorSpace, CustomPrimaries, Primaries, RenderingIntent,
69 TransferFunction, WhitePoint,
70};
71pub use validation::ValidationError;
72pub use vardct::splines::{Spline, SplinePoint};
73
74#[cfg(feature = "convenience")]
75pub use convenience::{
76 encode_bgra8, encode_bgra8_lossless, encode_gray8, encode_gray8_lossless, encode_rgb8,
77 encode_rgb8_lossless, encode_rgba8, encode_rgba8_lossless,
78};
79
80pub const GROUP_DIM: usize = 256;
82
83pub const BLOCK_DIM: usize = 8;
85
86pub const BLOCK_SIZE: usize = BLOCK_DIM * BLOCK_DIM;
88
89pub const JXL_SIGNATURE: [u8; 2] = [0xFF, 0x0A];
91
92#[doc(hidden)]
97pub mod test_helpers;
98
99#[cfg(test)]
100mod tests;
101
102#[cfg(test)]
103#[path = "api_tests.rs"]
104mod api_tests;
105
106#[cfg(all(test, feature = "__expert"))]
107#[path = "effort_expert_tests.rs"]
108mod effort_expert_tests;