1#![allow(bad_style)]
2#[repr(C)]
6#[derive(Debug, Copy, Clone, Default)]
7pub struct ZopfliOptions {
8 pub verbose: ::std::os::raw::c_int,
9 pub verbose_more: ::std::os::raw::c_int,
10 pub numiterations: ::std::os::raw::c_int,
11 pub iterationlimitseconds: f64,
12 pub blocksplitting: ::std::os::raw::c_int,
13 pub blocksplittinglast: ::std::os::raw::c_int,
14 pub blocksplittingmax: ::std::os::raw::c_int,
15}
16extern "C" {
17 pub fn ZopfliInitOptions(options: *mut ZopfliOptions);
18}
19#[repr(u32)]
20#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
21pub enum ZopfliFormat {
22 ZOPFLI_FORMAT_GZIP = 0,
23 ZOPFLI_FORMAT_ZLIB = 1,
24 ZOPFLI_FORMAT_DEFLATE = 2,
25}
26extern "C" {
27 pub fn ZopfliCompress(
28 options: *const ZopfliOptions,
29 output_type: ZopfliFormat,
30 in_: *const ::std::os::raw::c_uchar,
31 insize: usize,
32 out: *mut *mut ::std::os::raw::c_uchar,
33 outsize: *mut usize,
34 );
35}
36
37#[test]
38fn poke() {
39 let mut opts = ZopfliOptions::default();
40 let mut out = std::ptr::null_mut();
41 let mut outsize = 0;
42 unsafe {
43 ZopfliInitOptions(&mut opts);
44 ZopfliCompress(&opts, ZopfliFormat::ZOPFLI_FORMAT_ZLIB, b"hello".as_ptr(), 5, &mut out, &mut outsize);
45 assert_ne!(0, outsize);
46 assert!(!out.is_null());
47 }
48}