Skip to main content

cadmpeg_core/decode/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2//! Bounded ownership and decompression limits for untrusted decode input.
3//!
4//! [`DecodeArena`] owns stable buffers, [`DecodeContext`] owns session state,
5//! and [`View`] provides bounded navigation within one address space.
6
7mod arena;
8mod budget;
9pub mod collect;
10mod companion;
11mod context;
12mod deflate;
13mod depth;
14mod error;
15mod input;
16mod policy;
17mod probe;
18mod space;
19#[cfg(feature = "test-support")]
20#[doc(hidden)]
21pub mod test_support;
22mod transaction;
23pub mod tree;
24mod unique;
25mod utf16;
26mod view;
27mod whole_input;
28pub mod zstd;
29
30#[cfg(test)]
31mod tests;
32
33pub use arena::DecodeArena;
34pub use budget::{work_units, BudgetExhausted, DepthGuard, WorkBudget, WorkBudgetRecursionGuard};
35pub use companion::{Companion, CompanionLoad, Companions};
36pub use context::{DecodeContext, ExpandSpec, ExpandWriter};
37pub use depth::DecodeDepth;
38pub use error::{ResourceDimension, ResourceFailure, ResourceLimit, SourceLocation};
39pub use policy::{DecodeMode, DecodePolicy, InspectOptions, ResourceLimits};
40pub use probe::{ParseError, ParseErrorKind};
41pub use space::{ByteRange, SpaceId};
42pub use transaction::{DecodeCheckpoint, DecodeSpaceRebinding, DecodeTrace};
43pub use unique::unique_index;
44pub use view::{
45    bounded_len, id_from_index, index_from_u32, index_from_u64, u64_from_index, BoundedCount, View,
46};
47pub use whole_input::WholeInput;