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