stuffr-core 0.14.0

Core traits, stream ladder and resource governor for the stuffr toolkit
Documentation
//! Core abstractions for the `stuffr` toolkit.
//!
//! This crate deliberately depends on **no** compression format crate. That
//! constraint is what makes the stream ladder and the thread governor testable
//! against mock formats, with no C toolchain and no real archives.

pub mod archive;
#[cfg(feature = "testing")]
pub mod conformance;
#[cfg(feature = "testing")]
mod container_conformance;
pub mod containment;
mod display;
pub mod error;
pub mod fidelity;
pub mod format;
pub mod governor;
#[cfg(any(test, feature = "testing"))]
mod honesty;
pub mod ladder;
pub mod probe;
pub mod registry;
pub mod salvage;
pub mod size;
pub mod source;
#[cfg(any(test, feature = "testing"))]
pub mod testing;

pub use archive::{
    ArchiveRead, ArchiveWrite, Codec, Container, CreateOpts, DecodeOpts, EncodeOpts, Entry,
    EntryKind, EntryMeta, OpenOpts, PlainSink, Sink,
};
pub use containment::{
    NameRefusal, SymlinkVerdict, check_symlink_target, classify_symlink_target,
    name_refused_by_filesystem, safe_join,
};
pub use display::fmt_name;
pub use error::{Error, Result};
pub use fidelity::{Fidelity, FidelityReport, MetaFields, Rung};
pub use format::{
    CodecCaps, ContainerCaps, CorruptionDetection, FormatId, FormatKind, FormatMeta, MagicRule,
};
pub use governor::{BudgetInputs, Governor, LeaseSet, default_memory_limit, resolve_workers};
pub use ladder::{Resolved, StreamPolicy, resolve};
pub use probe::{
    Chain, PROBE_LEN, chain_for_new_path, probe, resolve_chain, resolve_chain_deep,
    resolve_chain_deep_with,
};
pub use registry::{FormatRow, Registry};
pub use size::format_size;
pub use source::{
    Counting, CountingWriter, DEFAULT_MAX_RATIO, FileSource, PeekSource, RATIO_FLOOR, RatioGuard,
    ReaderSource, SeekRead, Source, SourceCaps, SpillPolicy, SpillSource, SpillWriter, StreamOnly,
};

pub const VERSION: &str = env!("CARGO_PKG_VERSION");