zstd 0.3.0

Binding for the zstd compression library.
Documentation
// automatically generated by rust-bindgen
// manually replaced `c_void` pointers to `u8`.

#![allow(dead_code,
         non_camel_case_types,
         non_upper_case_globals,
         non_snake_case)]
pub type ptrdiff_t = isize;
pub type size_t = usize;
pub type wchar_t = ::libc::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct max_align_t {
    pub __clang_max_align_nonce1: ::libc::c_longlong,
    pub __clang_max_align_nonce2: f64,
}
impl ::std::default::Default for max_align_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
pub enum ZSTD_CCtx_s { }
pub type ZSTD_CCtx = ZSTD_CCtx_s;
pub enum ZSTD_DCtx_s { }
pub type ZSTD_DCtx = ZSTD_DCtx_s;
pub enum ZSTD_CDict_s { }
pub type ZSTD_CDict = ZSTD_CDict_s;
pub enum ZSTD_DDict_s { }
pub type ZSTD_DDict = ZSTD_DDict_s;
#[derive(Copy, Clone)]
#[repr(u32)]
#[derive(Debug)]
pub enum ZSTD_strategy {
    ZSTD_fast = 0,
    ZSTD_dfast = 1,
    ZSTD_greedy = 2,
    ZSTD_lazy = 3,
    ZSTD_lazy2 = 4,
    ZSTD_btlazy2 = 5,
    ZSTD_btopt = 6,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct ZSTD_compressionParameters {
    pub windowLog: ::libc::c_uint,
    pub chainLog: ::libc::c_uint,
    pub hashLog: ::libc::c_uint,
    pub searchLog: ::libc::c_uint,
    pub searchLength: ::libc::c_uint,
    pub targetLength: ::libc::c_uint,
    pub strategy: ZSTD_strategy,
}
impl ::std::default::Default for ZSTD_compressionParameters {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct ZSTD_frameParameters {
    pub contentSizeFlag: ::libc::c_uint,
    pub checksumFlag: ::libc::c_uint,
    pub noDictIDFlag: ::libc::c_uint,
}
impl ::std::default::Default for ZSTD_frameParameters {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct ZSTD_parameters {
    pub cParams: ZSTD_compressionParameters,
    pub fParams: ZSTD_frameParameters,
}
impl ::std::default::Default for ZSTD_parameters {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type ZSTD_allocFunction =
    ::std::option::Option<unsafe extern "C" fn(opaque: *mut ::libc::c_void,
                                               size: size_t)
                              -> *mut ::libc::c_void>;
pub type ZSTD_freeFunction =
    ::std::option::Option<unsafe extern "C" fn(opaque: *mut ::libc::c_void,
                                               address: *mut ::libc::c_void)>;
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct ZSTD_customMem {
    pub customAlloc: ZSTD_allocFunction,
    pub customFree: ZSTD_freeFunction,
    pub opaque: *mut ::libc::c_void,
}
impl ::std::default::Default for ZSTD_customMem {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct ZSTD_inBuffer_s {
    pub src: *const u8,
    pub size: size_t,
    pub pos: size_t,
}
impl ::std::default::Default for ZSTD_inBuffer_s {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type ZSTD_inBuffer = ZSTD_inBuffer_s;
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct ZSTD_outBuffer_s {
    pub dst: *mut u8,
    pub size: size_t,
    pub pos: size_t,
}
impl ::std::default::Default for ZSTD_outBuffer_s {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type ZSTD_outBuffer = ZSTD_outBuffer_s;
pub enum ZSTD_CStream_s { }
pub type ZSTD_CStream = ZSTD_CStream_s;
pub enum ZSTD_DStream_s { }
pub type ZSTD_DStream = ZSTD_DStream_s;
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct ZSTD_frameParams {
    pub frameContentSize: ::libc::c_ulonglong,
    pub windowSize: ::libc::c_uint,
    pub dictID: ::libc::c_uint,
    pub checksumFlag: ::libc::c_uint,
    _bindgen_padding_0_: [u8; 4usize],
}
impl ::std::default::Default for ZSTD_frameParams {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[derive(Copy, Clone)]
#[repr(u32)]
#[derive(Debug)]
pub enum ZSTD_nextInputType_e {
    ZSTDnit_frameHeader = 0,
    ZSTDnit_blockHeader = 1,
    ZSTDnit_block = 2,
    ZSTDnit_lastBlock = 3,
    ZSTDnit_checksum = 4,
    ZSTDnit_skippableFrame = 5,
}
extern "C" {
    pub fn ZSTD_versionNumber() -> ::libc::c_uint;
    pub fn ZSTD_compress(dst: *mut u8, dstCapacity: size_t, src: *const u8,
                         srcSize: size_t, compressionLevel: ::libc::c_int)
                         -> size_t;
    pub fn ZSTD_getDecompressedSize(src: *const u8, srcSize: size_t)
                                    -> ::libc::c_ulonglong;
    pub fn ZSTD_decompress(dst: *mut u8, dstCapacity: size_t, src: *const u8,
                           compressedSize: size_t)
                           -> size_t;
    pub fn ZSTD_maxCLevel() -> ::libc::c_int;
    pub fn ZSTD_compressBound(srcSize: size_t) -> size_t;
    pub fn ZSTD_isError(code: size_t) -> ::libc::c_uint;
    pub fn ZSTD_getErrorName(code: size_t) -> *const ::libc::c_char;
    pub fn ZSTD_createCCtx() -> *mut ZSTD_CCtx;
    pub fn ZSTD_freeCCtx(cctx: *mut ZSTD_CCtx) -> size_t;
    pub fn ZSTD_compressCCtx(ctx: *mut ZSTD_CCtx, dst: *mut u8,
                             dstCapacity: size_t, src: *const u8,
                             srcSize: size_t, compressionLevel: ::libc::c_int)
                             -> size_t;
    pub fn ZSTD_createDCtx() -> *mut ZSTD_DCtx;
    pub fn ZSTD_freeDCtx(dctx: *mut ZSTD_DCtx) -> size_t;
    pub fn ZSTD_decompressDCtx(ctx: *mut ZSTD_DCtx, dst: *mut u8,
                               dstCapacity: size_t, src: *const u8,
                               srcSize: size_t)
                               -> size_t;
    pub fn ZSTD_compress_usingDict(ctx: *mut ZSTD_CCtx, dst: *mut u8,
                                   dstCapacity: size_t, src: *const u8,
                                   srcSize: size_t, dict: *const u8,
                                   dictSize: size_t,
                                   compressionLevel: ::libc::c_int)
                                   -> size_t;
    pub fn ZSTD_decompress_usingDict(dctx: *mut ZSTD_DCtx, dst: *mut u8,
                                     dstCapacity: size_t, src: *const u8,
                                     srcSize: size_t, dict: *const u8,
                                     dictSize: size_t)
                                     -> size_t;
    pub fn ZSTD_createCDict(dict: *const u8, dictSize: size_t,
                            compressionLevel: ::libc::c_int)
                            -> *mut ZSTD_CDict;
    pub fn ZSTD_freeCDict(CDict: *mut ZSTD_CDict) -> size_t;
    pub fn ZSTD_compress_usingCDict(cctx: *mut ZSTD_CCtx, dst: *mut u8,
                                    dstCapacity: size_t, src: *const u8,
                                    srcSize: size_t, cdict: *const ZSTD_CDict)
                                    -> size_t;
    pub fn ZSTD_createDDict(dict: *const u8, dictSize: size_t)
                            -> *mut ZSTD_DDict;
    pub fn ZSTD_freeDDict(ddict: *mut ZSTD_DDict) -> size_t;
    pub fn ZSTD_decompress_usingDDict(dctx: *mut ZSTD_DCtx, dst: *mut u8,
                                      dstCapacity: size_t, src: *const u8,
                                      srcSize: size_t,
                                      ddict: *const ZSTD_DDict)
                                      -> size_t;
    pub fn ZSTD_estimateCCtxSize(cParams: ZSTD_compressionParameters) -> size_t;
    pub fn ZSTD_createCCtx_advanced(customMem: ZSTD_customMem) -> *mut ZSTD_CCtx;
    pub fn ZSTD_createCDict_advanced(dict: *const u8, dictSize: size_t,
                                     params: ZSTD_parameters,
                                     customMem: ZSTD_customMem)
                                     -> *mut ZSTD_CDict;
    pub fn ZSTD_sizeofCCtx(cctx: *const ZSTD_CCtx) -> size_t;
    pub fn ZSTD_getParams(compressionLevel: ::libc::c_int,
                          srcSize: ::libc::c_ulonglong, dictSize: size_t)
                          -> ZSTD_parameters;
    pub fn ZSTD_getCParams(compressionLevel: ::libc::c_int,
                           srcSize: ::libc::c_ulonglong, dictSize: size_t)
                           -> ZSTD_compressionParameters;
    pub fn ZSTD_checkCParams(params: ZSTD_compressionParameters) -> size_t;
    pub fn ZSTD_adjustCParams(cPar: ZSTD_compressionParameters,
                              srcSize: ::libc::c_ulonglong, dictSize: size_t)
                              -> ZSTD_compressionParameters;
    pub fn ZSTD_compress_advanced(ctx: *mut ZSTD_CCtx, dst: *mut u8,
                                  dstCapacity: size_t, src: *const u8,
                                  srcSize: size_t, dict: *const u8,
                                  dictSize: size_t, params: ZSTD_parameters)
                                  -> size_t;
    pub fn ZSTD_estimateDCtxSize() -> size_t;
    pub fn ZSTD_createDCtx_advanced(customMem: ZSTD_customMem) -> *mut ZSTD_DCtx;
    pub fn ZSTD_sizeofDCtx(dctx: *const ZSTD_DCtx) -> size_t;
    pub fn ZSTD_createCStream() -> *mut ZSTD_CStream;
    pub fn ZSTD_freeCStream(zcs: *mut ZSTD_CStream) -> size_t;
    pub fn ZSTD_CStreamInSize() -> size_t;
    pub fn ZSTD_CStreamOutSize() -> size_t;
    pub fn ZSTD_initCStream(zcs: *mut ZSTD_CStream,
                            compressionLevel: ::libc::c_int)
                            -> size_t;
    pub fn ZSTD_compressStream(zcs: *mut ZSTD_CStream,
                               output: *mut ZSTD_outBuffer,
                               input: *mut ZSTD_inBuffer)
                               -> size_t;
    pub fn ZSTD_flushStream(zcs: *mut ZSTD_CStream,
                            output: *mut ZSTD_outBuffer)
                            -> size_t;
    pub fn ZSTD_endStream(zcs: *mut ZSTD_CStream, output: *mut ZSTD_outBuffer)
                          -> size_t;
    pub fn ZSTD_createCStream_advanced(customMem: ZSTD_customMem)
                                       -> *mut ZSTD_CStream;
    pub fn ZSTD_initCStream_usingDict(zcs: *mut ZSTD_CStream, dict: *const u8,
                                      dictSize: size_t,
                                      compressionLevel: ::libc::c_int)
                                      -> size_t;
    pub fn ZSTD_initCStream_advanced(zcs: *mut ZSTD_CStream, dict: *const u8,
                                     dictSize: size_t,
                                     params: ZSTD_parameters,
                                     pledgedSrcSize: ::libc::c_ulonglong)
                                     -> size_t;
    pub fn ZSTD_createDStream() -> *mut ZSTD_DStream;
    pub fn ZSTD_freeDStream(zds: *mut ZSTD_DStream) -> size_t;
    pub fn ZSTD_DStreamInSize() -> size_t;
    pub fn ZSTD_DStreamOutSize() -> size_t;
    pub fn ZSTD_initDStream(zds: *mut ZSTD_DStream) -> size_t;
    pub fn ZSTD_decompressStream(zds: *mut ZSTD_DStream,
                                 output: *mut ZSTD_outBuffer,
                                 input: *mut ZSTD_inBuffer)
                                 -> size_t;
    pub fn ZSTD_createDStream_advanced(customMem: ZSTD_customMem)
                                       -> *mut ZSTD_DStream;
    pub fn ZSTD_initDStream_usingDict(zds: *mut ZSTD_DStream, dict: *const u8,
                                      dictSize: size_t)
                                      -> size_t;
    pub fn ZSTD_compressBegin(cctx: *mut ZSTD_CCtx,
                              compressionLevel: ::libc::c_int)
                              -> size_t;
    pub fn ZSTD_compressBegin_usingDict(cctx: *mut ZSTD_CCtx, dict: *const u8,
                                        dictSize: size_t,
                                        compressionLevel: ::libc::c_int)
                                        -> size_t;
    pub fn ZSTD_compressBegin_advanced(cctx: *mut ZSTD_CCtx, dict: *const u8,
                                       dictSize: size_t,
                                       params: ZSTD_parameters,
                                       pledgedSrcSize: ::libc::c_ulonglong)
                                       -> size_t;
    pub fn ZSTD_copyCCtx(cctx: *mut ZSTD_CCtx, preparedCCtx: *const ZSTD_CCtx)
                         -> size_t;
    pub fn ZSTD_compressContinue(cctx: *mut ZSTD_CCtx, dst: *mut u8,
                                 dstCapacity: size_t, src: *const u8,
                                 srcSize: size_t)
                                 -> size_t;
    pub fn ZSTD_compressEnd(cctx: *mut ZSTD_CCtx, dst: *mut u8,
                            dstCapacity: size_t, src: *const u8,
                            srcSize: size_t)
                            -> size_t;
    pub fn ZSTD_getFrameParams(fparamsPtr: *mut ZSTD_frameParams,
                               src: *const u8, srcSize: size_t)
                               -> size_t;
    pub fn ZSTD_decompressBegin(dctx: *mut ZSTD_DCtx) -> size_t;
    pub fn ZSTD_decompressBegin_usingDict(dctx: *mut ZSTD_DCtx,
                                          dict: *const u8, dictSize: size_t)
                                          -> size_t;
    pub fn ZSTD_copyDCtx(dctx: *mut ZSTD_DCtx, preparedDCtx: *const ZSTD_DCtx);
    pub fn ZSTD_nextSrcSizeToDecompress(dctx: *mut ZSTD_DCtx) -> size_t;
    pub fn ZSTD_decompressContinue(dctx: *mut ZSTD_DCtx, dst: *mut u8,
                                   dstCapacity: size_t, src: *const u8,
                                   srcSize: size_t)
                                   -> size_t;
    pub fn ZSTD_nextInputType(dctx: *mut ZSTD_DCtx) -> ZSTD_nextInputType_e;
    pub fn ZSTD_getBlockSizeMax(cctx: *mut ZSTD_CCtx) -> size_t;
    pub fn ZSTD_compressBlock(cctx: *mut ZSTD_CCtx, dst: *mut u8,
                              dstCapacity: size_t, src: *const u8,
                              srcSize: size_t)
                              -> size_t;
    pub fn ZSTD_decompressBlock(dctx: *mut ZSTD_DCtx, dst: *mut u8,
                                dstCapacity: size_t, src: *const u8,
                                srcSize: size_t)
                                -> size_t;
    pub fn ZSTD_insertBlock(dctx: *mut ZSTD_DCtx, blockStart: *const u8,
                            blockSize: size_t)
                            -> size_t;

    pub fn ZDICT_trainFromBuffer(dictBuffer: *mut u8,
                                 dictBufferCapacity: size_t,
                                 samplesBuffer: *const u8,
                                 sampleSizes: *const size_t, nbSamples: size_t)
                                 -> size_t;
}