zopfli_sys/
lib.rs

1#![allow(bad_style)]
2/* automatically generated by rust-bindgen 0.59.2 */
3// bindgen --allowlist-function "[Zz].*" --allowlist-var "[zZ].*" --allowlist-type "[Zz].*" --no-layout-tests zopfli.h --size_t-is-usize --no-prepend-enum-name --rustified-enum '.*' > ../src/lib.rs
4
5#[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}