1 use ::BrotliResult; 2 #[allow(non_camel_case_types)] 3 #[repr(u8)] 4 pub enum c_void{ 5 _Nothing = 0, 6 } 7 8 #[repr(C)] 9 #[allow(dead_code)] 10 pub enum BrotliDecoderParameter { 11 BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION = 0, 12 BROTLI_DECODER_PARAM_LARGE_WINDOW = 1, 13 } 14 15 16 #[repr(C)] 17 pub enum BrotliDecoderResult { 18 BROTLI_DECODER_RESULT_ERROR = 0, 19 BROTLI_DECODER_RESULT_SUCCESS = 1, 20 BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT = 2, 21 BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT = 3, 22 } 23 24 25 impl From<BrotliResult> for BrotliDecoderResult { from(r: BrotliResult) -> Self26 fn from(r: BrotliResult) -> Self { 27 match r { 28 BrotliResult::ResultSuccess => BrotliDecoderResult::BROTLI_DECODER_RESULT_SUCCESS, 29 BrotliResult::ResultFailure => BrotliDecoderResult::BROTLI_DECODER_RESULT_ERROR, 30 BrotliResult::NeedsMoreInput => BrotliDecoderResult::BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT , 31 BrotliResult::NeedsMoreOutput => BrotliDecoderResult::BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT , 32 } 33 } 34 } 35 pub type brotli_alloc_func = Option<extern "C" fn(data: *mut c_void, size: usize) -> *mut c_void>; 36 37 pub type brotli_free_func = Option<extern "C" fn(data: *mut c_void, ptr: *mut c_void) -> ()>; 38 39 40 #[repr(C)] 41 #[derive(Clone)] 42 pub struct CAllocator { 43 pub alloc_func: brotli_alloc_func, 44 pub free_func: brotli_free_func, 45 pub opaque: *mut c_void, 46 } 47 48 unsafe impl Send for CAllocator { 49 } 50