chromium/net/tools/huffman_trie/huffman/huffman_builder.h

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef NET_TOOLS_HUFFMAN_TRIE_HUFFMAN_HUFFMAN_BUILDER_H_
#define NET_TOOLS_HUFFMAN_TRIE_HUFFMAN_HUFFMAN_BUILDER_H_

#include <stdint.h>

#include <map>
#include <memory>
#include <vector>

namespace net::huffman_trie {

namespace {
class HuffmanNode;
}  // namespace

struct HuffmanRepresentation {};

// A HuffmanRepresentationTable maps the original characters to their Huffman
// representation. The Huffman representation consists of the number of bits
// needed to represent the character and the actual bits.
HuffmanRepresentationTable;
HuffmanRepresentationPair;

// This class tracks the number of times each character is used and calculates
// a space efficient way to represent all tracked characters by constructing a
// Huffman tree based on the number of times each character is seen.
class HuffmanBuilder {};

}  // namespace net::huffman_trie

#endif  // NET_TOOLS_HUFFMAN_TRIE_HUFFMAN_HUFFMAN_BUILDER_H_