| // Copyright (c) 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef QUICHE_HTTP2_HPACK_HUFFMAN_HUFFMAN_SPEC_TABLES_H_ |
| #define QUICHE_HTTP2_HPACK_HUFFMAN_HUFFMAN_SPEC_TABLES_H_ |
| |
| // Tables describing the Huffman encoding of bytes as specified by RFC7541. |
| |
| #include <cstdint> |
| |
| namespace http2 { |
| |
| struct HuffmanSpecTables { |
| // Number of bits in the encoding of each symbol (byte). |
| static const uint8_t kCodeLengths[257]; |
| |
| // The encoding of each symbol, right justified (as printed), which means that |
| // the last bit of the encoding is the low-order bit of the uint32. |
| static const uint32_t kRightCodes[257]; |
| |
| // The encoding of each symbol, left justified (as printed), which means that |
| // the first bit of the encoding is the high-order bit of the uint32. |
| static const uint32_t kLeftCodes[257]; |
| }; |
| |
| } // namespace http2 |
| |
| #endif // QUICHE_HTTP2_HPACK_HUFFMAN_HUFFMAN_SPEC_TABLES_H_ |