1#![cfg_attr(feature="benchmark", feature(test))]
18#![cfg_attr(feature="simd", feature(platform_intrinsics))]
19#![cfg_attr(feature="simd", feature(stdsimd))]
20#![cfg_attr(not(feature="no-stdlib-rust-binding"),cfg_attr(feature="no-stdlib", feature(lang_items)))]
21#![cfg_attr(not(feature="no-stdlib-rust-binding"),cfg_attr(feature="no-stdlib", feature(compiler_builtins_lib)))]
22#![cfg_attr(not(feature="no-stdlib-rust-binding"),cfg_attr(feature="no-stdlib", crate_type="cdylib"))]
23#![no_std]
24
25#[cfg(not(feature="no-stdlib-rust-binding"))]
26#[cfg(feature="no-stdlib")]
27extern crate compiler_builtins;
28
29#[cfg(not(test))]
30#[cfg(any(feature="findspeed", feature="billing"))]
31#[macro_use]
32extern crate std;
33
34#[cfg(not(feature="no-stdlib"))]
35#[cfg(not(test))]
36#[cfg(not(any(feature="billing", feature="findspeed")))]
37#[macro_use]
38extern crate std;
39
40#[cfg(test)]
41#[macro_use]
42extern crate std;
43
44extern crate alloc_no_stdlib as alloc;
45extern crate brotli;
46pub mod resizable_buffer;
47pub mod interface;
48pub mod slice_util;
49pub mod alloc_util;
50mod probability;
51#[macro_use]
52mod priors;
53#[macro_use]
54mod arithmetic_coder;
55mod debug_encoder;
56mod cmd_to_raw;
57mod raw_to_cmd;
58mod codec;
59mod cmd_to_divans;
60mod divans_to_raw;
61#[macro_use]
62mod billing;
63pub mod test_helper;
64mod test_ans;
65mod test_mux;
66mod ans;
67mod brotli_ir_gen;
68mod divans_compressor;
69mod divans_decompressor;
70mod parallel_decompressor;
71mod stub_parallel_decompressor;
72pub mod ir_optimize;
73pub mod mux;
74pub mod constants;
75pub mod threading;
76pub mod multithreading;
77pub use self::interface::{DivansInputResult,DivansOpResult,DivansOutputResult, DivansResult, ErrMsg, MAGIC_NUMBER};
78pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
79pub use interface::{DivansCompressorFactory, BlockSwitch, LiteralBlockSwitch, Command, Compressor, CopyCommand, Decompressor, DictCommand, LiteralCommand, Nop, NewWithAllocator, ArithmeticEncoderOrDecoder, LiteralPredictionModeNibble, PredictionModeContextMap, free_cmd, FeatureFlagSliceType,
80 DefaultCDF16};
81
82pub use brotli_ir_gen::{BrotliDivansHybridCompressor,BrotliDivansHybridCompressorFactory};
83pub use cmd_to_raw::DivansRecodeState;
84pub use codec::CMD_BUFFER_SIZE;
85pub use divans_to_raw::DecoderSpecialization;
86pub use cmd_to_divans::EncoderSpecialization;
87pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection};
88pub use divans_compressor::{DivansCompressor, DivansCompressorFactoryStruct};
89
90#[cfg(not(feature="safe"))]
91mod ffi;
92#[cfg(not(feature="safe"))]
93pub use ffi::*;
94mod reader;
95mod writer;
96#[cfg(not(feature="no-stdlib"))]
97pub use reader::DivansBrotliHybridCompressorReader;
98#[cfg(not(feature="no-stdlib"))]
99pub use reader::DivansExperimentalCompressorReader;
100#[cfg(not(feature="no-stdlib"))]
101pub use reader::DivansDecompressorReader;
102
103#[cfg(not(feature="no-stdlib"))]
104pub use writer::DivansBrotliHybridCompressorWriter;
105#[cfg(not(feature="no-stdlib"))]
106pub use writer::DivansExperimentalCompressorWriter;
107#[cfg(not(feature="no-stdlib"))]
108pub use writer::DivansDecompressorWriter;
109
110
111pub use probability::Speed;
112
113
114pub use probability::CDF2;
115pub use probability::CDF16;
116pub use probability::BaseCDF;
117
118pub use interface::BrotliCompressionSetting;
119pub use interface::DivansCompressorOptions;
120pub use divans_decompressor::{DivansDecompressor,
121 DivansDecompressorFactory,
122 DivansDecompressorFactoryStruct,
123 StaticCommand};