chromium/net/third_party/quiche/src/quiche/http2/test_tools/hpack_block_builder.h

// Copyright 2016 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_TEST_TOOLS_HPACK_BLOCK_BUILDER_H_
#define QUICHE_HTTP2_TEST_TOOLS_HPACK_BLOCK_BUILDER_H_

// HpackBlockBuilder builds wire-format HPACK blocks (or fragments thereof)
// from components.

// Supports very large varints to enable tests to create HPACK blocks with
// values that the decoder should reject. For now, this is only intended for
// use in tests, and thus has EXPECT* in the code. If desired to use it in an
// encoder, it will need optimization work, especially w.r.t memory mgmt, and
// the EXPECT* will need to be removed or replaced with QUICHE_DCHECKs. And of
// course the support for very large varints will not be needed in production
// code.

#include <stddef.h>

#include <cstdint>
#include <string>

#include "absl/strings/string_view.h"
#include "quiche/http2/hpack/http2_hpack_constants.h"
#include "quiche/common/platform/api/quiche_export.h"
#include "quiche/common/platform/api/quiche_test.h"

namespace http2 {
namespace test {

class QUICHE_NO_EXPORT HpackBlockBuilder {};

}  // namespace test
}  // namespace http2

#endif  // QUICHE_HTTP2_TEST_TOOLS_HPACK_BLOCK_BUILDER_H_