text: // 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_
  