@@ -29,100 +29,3 @@ where
2929
3030 Ok ( ( ) )
3131}
32-
33- // helper function for tests
34- #[ cfg( test) ]
35- pub mod tests {
36- use crate :: DecompressTrait ;
37- use body_plz:: variants:: Body ;
38- use bytes:: BytesMut ;
39- use flate2:: Compression ;
40- use header_plz:: {
41- InfoLine ,
42- body_headers:: {
43- content_encoding:: ContentEncoding , encoding_info:: EncodingInfo ,
44- } ,
45- } ;
46- use std:: io:: Write ;
47- pub const INPUT : & [ u8 ] = b"hello world" ;
48-
49- pub fn all_compressed_data ( ) -> Vec < u8 > {
50- let brotli_compressed = compress_brotli ( INPUT ) ;
51- let deflate_compressed = compress_deflate ( & brotli_compressed) ;
52- let gzip_compressed = compress_gzip ( & deflate_compressed) ;
53- compress_zstd ( & gzip_compressed)
54- }
55-
56- pub fn single_compression ( encoding : & ContentEncoding ) -> Vec < u8 > {
57- match encoding {
58- ContentEncoding :: Brotli => compress_brotli ( INPUT ) ,
59- ContentEncoding :: Deflate => compress_deflate ( INPUT ) ,
60- ContentEncoding :: Gzip => compress_gzip ( INPUT ) ,
61- ContentEncoding :: Zstd | ContentEncoding :: Compress => {
62- compress_zstd ( INPUT )
63- }
64- ContentEncoding :: Identity => INPUT . to_vec ( ) ,
65- _ => panic ! ( ) ,
66- }
67- }
68-
69- pub fn all_encoding_info_multi_header ( ) -> Vec < EncodingInfo > {
70- vec ! [
71- EncodingInfo :: new( 0 , vec![ ContentEncoding :: Brotli ] ) ,
72- EncodingInfo :: new( 1 , vec![ ContentEncoding :: Deflate ] ) ,
73- EncodingInfo :: new( 2 , vec![ ContentEncoding :: Identity ] ) ,
74- EncodingInfo :: new( 3 , vec![ ContentEncoding :: Gzip ] ) ,
75- EncodingInfo :: new( 4 , vec![ ContentEncoding :: Zstd ] ) ,
76- ]
77- }
78-
79- pub fn all_encoding_info_single_header ( ) -> Vec < EncodingInfo > {
80- vec ! [ EncodingInfo :: new(
81- 0 ,
82- vec![
83- ContentEncoding :: Brotli ,
84- ContentEncoding :: Deflate ,
85- ContentEncoding :: Identity ,
86- ContentEncoding :: Gzip ,
87- ContentEncoding :: Zstd ,
88- ] ,
89- ) ]
90- }
91-
92- pub fn compress_brotli ( data : & [ u8 ] ) -> Vec < u8 > {
93- let mut compressed = Vec :: new ( ) ;
94- {
95- let mut writer =
96- brotli:: CompressorWriter :: new ( & mut compressed, 4096 , 0 , 22 ) ;
97- writer. write_all ( data) . unwrap ( ) ;
98- writer. flush ( ) . unwrap ( ) ;
99- }
100- compressed
101- }
102-
103- pub fn compress_deflate ( data : & [ u8 ] ) -> Vec < u8 > {
104- let mut compressed = Vec :: new ( ) ;
105- let mut encoder = flate2:: write:: ZlibEncoder :: new (
106- & mut compressed,
107- Compression :: fast ( ) ,
108- ) ;
109- encoder. write_all ( data) . unwrap ( ) ;
110- encoder. finish ( ) . unwrap ( ) ;
111- compressed
112- }
113-
114- pub fn compress_gzip ( data : & [ u8 ] ) -> Vec < u8 > {
115- let mut compressed = Vec :: new ( ) ;
116- let mut encoder = flate2:: write:: GzEncoder :: new (
117- & mut compressed,
118- Compression :: fast ( ) ,
119- ) ;
120- encoder. write_all ( data) . unwrap ( ) ;
121- encoder. finish ( ) . unwrap ( ) ;
122- compressed
123- }
124-
125- pub fn compress_zstd ( data : & [ u8 ] ) -> Vec < u8 > {
126- zstd:: encode_all ( data, 1 ) . unwrap ( )
127- }
128- }
0 commit comments