httlib_huffman/encoder/
table.rs

1/// Represents a static Huffman table built from the codes found in the official
2/// HPACK specification ([Appendix B]).
3/// 
4/// [Appendix B]: https://tools.ietf.org/html/rfc7541#appendix-B
5pub const ENCODE_TABLE: [(u8, u32); 257] = [ // (length, msb)
6  (13, 0x1ff8),
7  (23, 0x7fffd8),
8  (28, 0xfffffe2),
9  (28, 0xfffffe3),
10  (28, 0xfffffe4),
11  (28, 0xfffffe5),
12  (28, 0xfffffe6),
13  (28, 0xfffffe7),
14  (28, 0xfffffe8),
15  (24, 0xffffea),
16  (30, 0x3ffffffc),
17  (28, 0xfffffe9),
18  (28, 0xfffffea),
19  (30, 0x3ffffffd),
20  (28, 0xfffffeb),
21  (28, 0xfffffec),
22  (28, 0xfffffed),
23  (28, 0xfffffee),
24  (28, 0xfffffef),
25  (28, 0xffffff0),
26  (28, 0xffffff1),
27  (28, 0xffffff2),
28  (30, 0x3ffffffe),
29  (28, 0xffffff3),
30  (28, 0xffffff4),
31  (28, 0xffffff5),
32  (28, 0xffffff6),
33  (28, 0xffffff7),
34  (28, 0xffffff8),
35  (28, 0xffffff9),
36  (28, 0xffffffa),
37  (28, 0xffffffb),
38  (6, 0x14),
39  (10, 0x3f8),
40  (10, 0x3f9),
41  (12, 0xffa),
42  (13, 0x1ff9),
43  (6, 0x15),
44  (8, 0xf8),
45  (11, 0x7fa),
46  (10, 0x3fa),
47  (10, 0x3fb),
48  (8, 0xf9),
49  (11, 0x7fb),
50  (8, 0xfa),
51  (6, 0x16),
52  (6, 0x17),
53  (6, 0x18),
54  (5, 0x00),
55  (5, 0x01),
56  (5, 0x02),
57  (6, 0x19),
58  (6, 0x1a),
59  (6, 0x1b),
60  (6, 0x1c),
61  (6, 0x1d),
62  (6, 0x1e),
63  (6, 0x1f),
64  (7, 0x5c),
65  (8, 0xfb),
66  (15, 0x7ffc),
67  (6, 0x20),
68  (12, 0xffb),
69  (10, 0x3fc),
70  (13, 0x1ffa),
71  (6, 0x21),
72  (7, 0x5d),
73  (7, 0x5e),
74  (7, 0x5f),
75  (7, 0x60),
76  (7, 0x61),
77  (7, 0x62),
78  (7, 0x63),
79  (7, 0x64),
80  (7, 0x65),
81  (7, 0x66),
82  (7, 0x67),
83  (7, 0x68),
84  (7, 0x69),
85  (7, 0x6a),
86  (7, 0x6b),
87  (7, 0x6c),
88  (7, 0x6d),
89  (7, 0x6e),
90  (7, 0x6f),
91  (7, 0x70),
92  (7, 0x71),
93  (7, 0x72),
94  (8, 0xfc),
95  (7, 0x73),
96  (8, 0xfd),
97  (13, 0x1ffb),
98  (19, 0x7fff0),
99  (13, 0x1ffc),
100  (14, 0x3ffc),
101  (6, 0x22),
102  (15, 0x7ffd),
103  (5, 0x03),
104  (6, 0x23),
105  (5, 0x04),
106  (6, 0x24),
107  (5, 0x05),
108  (6, 0x25),
109  (6, 0x26),
110  (6, 0x27),
111  (5, 0x06),
112  (7, 0x74),
113  (7, 0x75),
114  (6, 0x28),
115  (6, 0x29),
116  (6, 0x2a),
117  (5, 0x07),
118  (6, 0x2b),
119  (7, 0x76),
120  (6, 0x2c),
121  (5, 0x08),
122  (5, 0x09),
123  (6, 0x2d),
124  (7, 0x77),
125  (7, 0x78),
126  (7, 0x79),
127  (7, 0x7a),
128  (7, 0x7b),
129  (15, 0x7ffe),
130  (11, 0x7fc),
131  (14, 0x3ffd),
132  (13, 0x1ffd),
133  (28, 0xffffffc),
134  (20, 0xfffe6),
135  (22, 0x3fffd2),
136  (20, 0xfffe7),
137  (20, 0xfffe8),
138  (22, 0x3fffd3),
139  (22, 0x3fffd4),
140  (22, 0x3fffd5),
141  (23, 0x7fffd9),
142  (22, 0x3fffd6),
143  (23, 0x7fffda),
144  (23, 0x7fffdb),
145  (23, 0x7fffdc),
146  (23, 0x7fffdd),
147  (23, 0x7fffde),
148  (24, 0xffffeb),
149  (23, 0x7fffdf),
150  (24, 0xffffec),
151  (24, 0xffffed),
152  (22, 0x3fffd7),
153  (23, 0x7fffe0),
154  (24, 0xffffee),
155  (23, 0x7fffe1),
156  (23, 0x7fffe2),
157  (23, 0x7fffe3),
158  (23, 0x7fffe4),
159  (21, 0x1fffdc),
160  (22, 0x3fffd8),
161  (23, 0x7fffe5),
162  (22, 0x3fffd9),
163  (23, 0x7fffe6),
164  (23, 0x7fffe7),
165  (24, 0xffffef),
166  (22, 0x3fffda),
167  (21, 0x1fffdd),
168  (20, 0xfffe9),
169  (22, 0x3fffdb),
170  (22, 0x3fffdc),
171  (23, 0x7fffe8),
172  (23, 0x7fffe9),
173  (21, 0x1fffde),
174  (23, 0x7fffea),
175  (22, 0x3fffdd),
176  (22, 0x3fffde),
177  (24, 0xfffff0),
178  (21, 0x1fffdf),
179  (22, 0x3fffdf),
180  (23, 0x7fffeb),
181  (23, 0x7fffec),
182  (21, 0x1fffe0),
183  (21, 0x1fffe1),
184  (22, 0x3fffe0),
185  (21, 0x1fffe2),
186  (23, 0x7fffed),
187  (22, 0x3fffe1),
188  (23, 0x7fffee),
189  (23, 0x7fffef),
190  (20, 0xfffea),
191  (22, 0x3fffe2),
192  (22, 0x3fffe3),
193  (22, 0x3fffe4),
194  (23, 0x7ffff0),
195  (22, 0x3fffe5),
196  (22, 0x3fffe6),
197  (23, 0x7ffff1),
198  (26, 0x3ffffe0),
199  (26, 0x3ffffe1),
200  (20, 0xfffeb),
201  (19, 0x7fff1),
202  (22, 0x3fffe7),
203  (23, 0x7ffff2),
204  (22, 0x3fffe8),
205  (25, 0x1ffffec),
206  (26, 0x3ffffe2),
207  (26, 0x3ffffe3),
208  (26, 0x3ffffe4),
209  (27, 0x7ffffde),
210  (27, 0x7ffffdf),
211  (26, 0x3ffffe5),
212  (24, 0xfffff1),
213  (25, 0x1ffffed),
214  (19, 0x7fff2),
215  (21, 0x1fffe3),
216  (26, 0x3ffffe6),
217  (27, 0x7ffffe0),
218  (27, 0x7ffffe1),
219  (26, 0x3ffffe7),
220  (27, 0x7ffffe2),
221  (24, 0xfffff2),
222  (21, 0x1fffe4),
223  (21, 0x1fffe5),
224  (26, 0x3ffffe8),
225  (26, 0x3ffffe9),
226  (28, 0xffffffd),
227  (27, 0x7ffffe3),
228  (27, 0x7ffffe4),
229  (27, 0x7ffffe5),
230  (20, 0xfffec),
231  (24, 0xfffff3),
232  (20, 0xfffed),
233  (21, 0x1fffe6),
234  (22, 0x3fffe9),
235  (21, 0x1fffe7),
236  (21, 0x1fffe8),
237  (23, 0x7ffff3),
238  (22, 0x3fffea),
239  (22, 0x3fffeb),
240  (25, 0x1ffffee),
241  (25, 0x1ffffef),
242  (24, 0xfffff4),
243  (24, 0xfffff5),
244  (26, 0x3ffffea),
245  (23, 0x7ffff4),
246  (26, 0x3ffffeb),
247  (27, 0x7ffffe6),
248  (26, 0x3ffffec),
249  (26, 0x3ffffed),
250  (27, 0x7ffffe7),
251  (27, 0x7ffffe8),
252  (27, 0x7ffffe9),
253  (27, 0x7ffffea),
254  (27, 0x7ffffeb),
255  (28, 0xffffffe),
256  (27, 0x7ffffec),
257  (27, 0x7ffffed),
258  (27, 0x7ffffee),
259  (27, 0x7ffffef),
260  (27, 0x7fffff0),
261  (26, 0x3ffffee),
262  (30, 0x3fffffff)
263];