brotli/
lib.rs

1#![no_std]
2#![allow(non_snake_case)]
3#![allow(unused_parens)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6#![allow(non_upper_case_globals)]
7#![cfg_attr(feature = "benchmark", feature(test))]
8#![cfg_attr(feature = "simd", feature(portable_simd))]
9#![cfg_attr(
10    feature = "no-stdlib-ffi-binding",
11    cfg_attr(not(feature = "std"), feature(lang_items))
12)]
13
14#[macro_use]
15// <-- for debugging, remove xprintln from bit_reader and replace with println
16#[cfg(feature = "std")]
17extern crate std;
18extern crate alloc_no_stdlib as alloc;
19#[cfg(feature = "std")]
20extern crate alloc_stdlib;
21extern crate brotli_decompressor;
22
23pub mod concat;
24pub mod enc;
25#[cfg(feature = "ffi-api")]
26pub mod ffi;
27
28pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
29
30#[cfg(feature = "std")]
31pub use alloc_stdlib::HeapAlloc;
32#[cfg(feature = "std")]
33pub use brotli_decompressor::copy_from_to;
34pub use brotli_decompressor::io_wrappers::{CustomRead, CustomWrite};
35#[cfg(feature = "std")]
36pub use brotli_decompressor::io_wrappers::{IntoIoReader, IoReaderWrapper, IoWriterWrapper};
37#[cfg(feature = "std")]
38pub use brotli_decompressor::reader::Decompressor;
39pub use brotli_decompressor::reader::DecompressorCustomIo;
40pub use brotli_decompressor::transform::TransformDictionaryWord;
41#[cfg(feature = "std")]
42pub use brotli_decompressor::writer::DecompressorWriter;
43pub use brotli_decompressor::writer::DecompressorWriterCustomIo;
44#[cfg(feature = "std")]
45pub use brotli_decompressor::BrotliDecompress;
46#[cfg(feature = "std")]
47pub use brotli_decompressor::BrotliDecompressCustomAlloc;
48pub use brotli_decompressor::HuffmanCode; // so we can make custom allocator for decompression
49pub use brotli_decompressor::{
50    dictionary, reader, transform, writer, BrotliDecompressCustomIo,
51    BrotliDecompressCustomIoCustomDict, BrotliDecompressStream, BrotliResult, BrotliState,
52};
53
54pub use self::enc::combined_alloc::CombiningAllocator;
55pub use crate::enc::input_pair::{InputPair, InputReference, InputReferenceMut};
56pub use crate::enc::interface::SliceOffset;
57#[cfg(feature = "std")]
58pub use crate::enc::reader::CompressorReader;
59pub use crate::enc::reader::CompressorReaderCustomIo;
60#[cfg(feature = "std")]
61pub use crate::enc::writer::CompressorWriter;
62pub use crate::enc::writer::CompressorWriterCustomIo;
63pub use crate::enc::{interface, BrotliCompressCustomIo, BrotliCompressCustomIoCustomDict};
64#[cfg(feature = "std")]
65pub use crate::enc::{BrotliCompress, BrotliCompressCustomAlloc};
66
67pub const VERSION: u8 = 1;
68
69// interface
70// pub fn BrotliDecompressStream(mut available_in: &mut usize,
71//                               input_offset: &mut usize,
72//                               input: &[u8],
73//                               mut available_out: &mut usize,
74//                               mut output_offset: &mut usize,
75//                               mut output: &mut [u8],
76//                               mut total_out: &mut usize,
77//                               mut s: &mut BrotliState<AllocU8, AllocU32, AllocHC>);