use crate::prelude::{Allocator, Global};
use crate::{
impls::comp::{
comp_dict::{CompDict, MaxOffset},
compress::prs_compress,
},
MutablePointerSrc,
};
#[doc(hidden)]
pub fn create_comp_dict(data: &[u8]) -> MaxOffset {
unsafe {
let mut dict = CompDict::new(data.len());
dict.init(data, 0);
dict.get_item(0, 0, u32::MAX as usize)[0]
}
}
pub unsafe fn prs_compress_unsafe<T: MutablePointerSrc>(
src: *const u8,
src_len: usize,
mut dest: T,
) -> usize {
prs_compress::<Global, Global>(src, dest.as_mut_ptr(), src_len, Global, Global)
}
pub unsafe fn prs_compress_unsafe_with_allocator<
T: MutablePointerSrc,
L: Allocator + Copy,
S: Allocator + Copy,
>(
src: *const u8,
src_len: usize,
mut dest: T,
long_lived_allocator: L,
short_lived_allocator: S,
) -> usize {
prs_compress::<L, S>(
src,
dest.as_mut_ptr(),
src_len,
long_lived_allocator,
short_lived_allocator,
)
}