#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(feature = "paranoid", forbid(unsafe_code))]
#[cfg(feature = "alloc")]
extern crate alloc;
pub use zrip_core::error;
pub use zrip_core::frame;
pub use zrip_core::{CompressError, DecompressError, ZstdError};
#[cfg(feature = "alloc")]
pub use zrip_core::dict;
#[cfg(feature = "alloc")]
pub use zrip_core::dict::Dictionary;
#[cfg(feature = "alloc")]
pub use zrip_encode::strategy::{DEFAULT_LEVEL, LdmParams, LevelParams, Options};
pub const DEFAULT_DECOMPRESS_LIMIT: usize = usize::MAX;
pub use zrip_core::SAFE_DECOMPRESS_LIMIT;
#[doc(hidden)]
pub use zrip_decode as decode;
#[doc(hidden)]
pub use zrip_encode as encode;
#[cfg(feature = "alloc")]
pub fn decompress(input: &[u8]) -> Result<alloc::vec::Vec<u8>, DecompressError> {
zrip_decode::decompress(input)
}
#[cfg(feature = "alloc")]
pub fn decompress_with_dict(
input: &[u8],
dict: &zrip_core::dict::Dictionary,
) -> Result<alloc::vec::Vec<u8>, DecompressError> {
zrip_decode::decompress_with_dict(input, Some(dict))
}
#[cfg(feature = "alloc")]
pub fn decompress_with_limit(
input: &[u8],
max_output_size: usize,
) -> Result<alloc::vec::Vec<u8>, DecompressError> {
zrip_decode::decompress_with_limit(input, max_output_size)
}
#[cfg(feature = "alloc")]
pub fn decompress_into(
input: &[u8],
output: &mut alloc::vec::Vec<u8>,
) -> Result<usize, DecompressError> {
zrip_decode::decompress_into(input, output)
}
#[cfg(feature = "alloc")]
pub fn compress(input: &[u8], level: i32) -> Result<alloc::vec::Vec<u8>, CompressError> {
zrip_encode::compress(input, level)
}
#[cfg(feature = "alloc")]
pub fn compress_with_params(
input: &[u8],
params: &zrip_encode::strategy::LevelParams,
) -> Result<alloc::vec::Vec<u8>, CompressError> {
zrip_encode::compress_with_params(input, params)
}
#[cfg(feature = "alloc")]
pub fn compress_opts(
input: &[u8],
level: i32,
opts: &Options,
) -> Result<alloc::vec::Vec<u8>, CompressError> {
zrip_encode::compress_opts(input, level, opts)
}
#[cfg(feature = "alloc")]
pub fn compress_with_dict(
input: &[u8],
level: i32,
dict: &zrip_core::dict::Dictionary,
) -> Result<alloc::vec::Vec<u8>, CompressError> {
zrip_encode::compress_with_dict(input, level, dict)
}
#[cfg(feature = "alloc")]
pub fn compress_into(input: &[u8], output: &mut [u8], level: i32) -> Result<usize, CompressError> {
zrip_encode::compress_into(input, output, level)
}
#[must_use]
pub fn compress_bound(input_len: usize) -> usize {
let num_blocks = input_len / zrip_core::frame::MAX_BLOCK_SIZE + 1;
input_len
.saturating_add(num_blocks.saturating_mul(3))
.saturating_add(18)
}
#[cfg(feature = "std")]
pub use zrip_decode::context::DecompressContext;
#[cfg(feature = "std")]
pub use zrip_decode::streaming::FrameDecoder;
#[cfg(feature = "std")]
pub use zrip_encode::context::CompressContext;
#[cfg(feature = "std")]
pub use zrip_encode::streaming::FrameEncoder;