1#![no_std]
2#![cfg_attr(not(feature = "std"), feature(lang_items))]
3
4pub extern crate brotli;
5#[cfg(feature = "std")]
6extern crate std;
7
8use core::ptr::null_mut;
9
10pub use brotli::ffi::compressor::*;
11#[allow(unknown_lints, ambiguous_glob_reexports)]
13pub use brotli::ffi::decompressor::*;
14pub use brotli::ffi::multicompress::*;
15pub use brotli::*;
16
17#[cfg(feature = "std")]
18unsafe fn std_only_functions() {
19 let _ =
20 brotli::ffi::decompressor::CBrotliDecoderDecompress(0, null_mut(), null_mut(), null_mut());
21}
22#[cfg(not(feature = "std"))]
23unsafe fn std_only_functions() {}
24
25#[no_mangle]
26pub unsafe extern "C" fn instantiate_functions(must_be_null: *const u8) {
27 if !must_be_null.is_null() {
28 let _ = brotli::ffi::compressor::BrotliEncoderVersion();
29 let _ = brotli::ffi::decompressor::CBrotliDecoderCreateInstance(None, None, null_mut());
30 let _ = brotli::ffi::decompressor::CBrotliDecoderSetParameter(null_mut(), brotli::ffi::decompressor::ffi::interface::BrotliDecoderParameter::BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION, 0);
31 let _ = brotli::ffi::decompressor::CBrotliDecoderDecompressStream(
32 null_mut(),
33 null_mut(),
34 null_mut(),
35 null_mut(),
36 null_mut(),
37 null_mut(),
38 );
39 std_only_functions();
40 let _ = brotli::ffi::decompressor::CBrotliDecoderMallocU8(null_mut(), 0);
41 let _ = brotli::ffi::decompressor::CBrotliDecoderMallocUsize(null_mut(), 0);
42 let _ = brotli::ffi::decompressor::CBrotliDecoderFreeU8(null_mut(), null_mut(), 0);
43 let _ = brotli::ffi::decompressor::CBrotliDecoderFreeUsize(null_mut(), null_mut(), 0);
44 let _ = brotli::ffi::decompressor::CBrotliDecoderDestroyInstance(null_mut());
45 let _ = brotli::ffi::decompressor::CBrotliDecoderHasMoreOutput(null_mut());
46 let _ = brotli::ffi::decompressor::CBrotliDecoderTakeOutput(null_mut(), null_mut());
47 let _ = brotli::ffi::decompressor::CBrotliDecoderIsUsed(null_mut());
48 let _ = brotli::ffi::decompressor::CBrotliDecoderIsFinished(null_mut());
49 let _ = brotli::ffi::decompressor::CBrotliDecoderGetErrorCode(null_mut());
50 let _ = brotli::ffi::decompressor::CBrotliDecoderGetErrorString(null_mut());
51 let _ = brotli::ffi::decompressor::CBrotliDecoderErrorString(
52 brotli::ffi::decompressor::ffi::BrotliDecoderErrorCode::BROTLI_DECODER_ERROR_UNREACHABLE);
53 let _ = BrotliEncoderCreateInstance(None, None, null_mut());
54 let _ = BrotliEncoderSetParameter(
55 null_mut(),
56 brotli::enc::encode::BrotliEncoderParameter::BROTLI_PARAM_MODE,
57 0,
58 );
59 let _ = BrotliEncoderDestroyInstance(null_mut());
60 let _ = BrotliEncoderIsFinished(null_mut());
61 let _ = BrotliEncoderHasMoreOutput(null_mut());
62 let _ = BrotliEncoderTakeOutput(null_mut(), null_mut());
63 let _ = BrotliEncoderMaxCompressedSize(0);
64 let _ = BrotliEncoderSetCustomDictionary(null_mut(), 0, null_mut());
65 let _ = BrotliEncoderCompress(
66 0,
67 0,
68 BrotliEncoderMode::BROTLI_MODE_GENERIC,
69 0,
70 null_mut(),
71 null_mut(),
72 null_mut(),
73 );
74 let _ = BrotliEncoderCompressStream(
75 null_mut(),
76 BrotliEncoderOperation::BROTLI_OPERATION_FINISH,
77 null_mut(),
78 null_mut(),
79 null_mut(),
80 null_mut(),
81 null_mut(),
82 );
83 let _ = BrotliEncoderMallocU8(null_mut(), 0);
84 let _ = BrotliEncoderFreeU8(null_mut(), null_mut(), 0);
85 let _ = BrotliEncoderMallocUsize(null_mut(), 0);
86 let _ = BrotliEncoderFreeUsize(null_mut(), null_mut(), 0);
87 let _ = BrotliEncoderMaxCompressedSizeMulti(0, 0);
88 let _ = BrotliEncoderCompressMulti(
89 0,
90 null_mut(),
91 null_mut(),
92 0,
93 null_mut(),
94 null_mut(),
95 null_mut(),
96 0,
97 None,
98 None,
99 null_mut(),
100 );
101 let _ = BrotliEncoderCreateWorkPool(0, None, None, null_mut());
102 let _ = BrotliEncoderDestroyWorkPool(null_mut());
103 let _ = BrotliEncoderCompressWorkPool(
104 null_mut(),
105 0,
106 null_mut(),
107 null_mut(),
108 0,
109 null_mut(),
110 null_mut(),
111 null_mut(),
112 0,
113 None,
114 None,
115 null_mut(),
116 );
117 }
118}
119
120#[cfg(not(feature = "std"))]
121#[panic_handler]
122extern "C" fn panic_impl(_: &::core::panic::PanicInfo) -> ! {
123 loop {}
124}
125
126#[cfg(not(feature = "std"))]
127#[lang = "eh_personality"]
128extern "C" fn eh_personality() {}