1use std::ptr::null_mut;
5
6use libz_rs_sys::*;
7
8pub fn no_header_decompress(in_data: &mut [u8], out_data: &mut [u8]) -> bool {
9 unsafe {
10 let mut strm = z_stream {
11 next_in: null_mut(),
12 avail_in: in_data.len() as u32,
13 total_in: 0,
14 next_out: null_mut(),
15 avail_out: 0,
16 total_out: 0,
17 msg: null_mut(),
18 state: null_mut(),
19 zalloc: None, zfree: None, opaque: null_mut(),
22 data_type: 0,
23 adler: 0,
24 reserved: 0,
25 };
26
27 let ret = inflateInit2_(
28 &mut strm,
29 -15,
30 zlibVersion(),
31 core::mem::size_of::<z_stream>() as i32,
32 );
33 if ret != Z_OK {
34 return false;
35 }
36
37 strm.next_in = in_data.as_mut_ptr();
38 strm.avail_out = out_data.len() as u32;
39 strm.next_out = out_data.as_mut_ptr();
40
41 let ret = inflate(&mut strm, Z_NO_FLUSH);
42 if ret != Z_STREAM_END {
43 return false;
44 }
45
46 inflateEnd(&mut strm);
47
48 true
49 }
50}