wow-mpq 0.6.4

High-performance parser for World of Warcraft MPQ archives with parallel processing support
Documentation
//! Compression and decompression algorithms for MPQ files

pub(crate) mod algorithms;
mod compress;
mod decompress;
mod methods;

// Re-export the main public API
pub use compress::compress;
pub use decompress::{decompress, decompress_secure};
pub use methods::{CompressionMethod, flags};

// Re-export security types for public use
pub use crate::security::{DecompressionMonitor, SecurityLimits, SessionTracker};

// Re-export RLE decompression for patch file handling
pub use algorithms::rle;

/// Error conversion helpers for compression algorithms
pub(crate) mod error_helpers {
    use crate::Error;

    /// Convert a compression-related error to an MPQ Error with algorithm context
    pub(crate) fn compression_error(algorithm: &str, err: impl std::fmt::Display) -> Error {
        Error::compression(format!("{algorithm} compression failed: {err}"))
    }

    /// Convert a decompression-related error to an MPQ Error with algorithm context  
    pub(crate) fn decompression_error(algorithm: &str, err: impl std::fmt::Display) -> Error {
        Error::compression(format!("{algorithm} decompression failed: {err}"))
    }
}