chromium/net/http/structured_headers.h

// Copyright 2019 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_HTTP_STRUCTURED_HEADERS_H_
#define NET_HTTP_STRUCTURED_HEADERS_H_

#include <optional>
#include <string>
#include <string_view>

#include "net/third_party/quiche/src/quiche/common/structured_headers.h"

namespace net::structured_headers {

Item;
ParameterisedIdentifier;
ParameterizedItem;
ParameterizedMember;
DictionaryMember;
Dictionary;
ParameterisedList;
ListOfLists;
List;
Parameters;

inline std::optional<ParameterizedItem> ParseItem(std::string_view str) {}
inline std::optional<Item> ParseBareItem(std::string_view str) {}
inline std::optional<ParameterisedList> ParseParameterisedList(
    std::string_view str) {}
inline std::optional<ListOfLists> ParseListOfLists(std::string_view str) {}
inline std::optional<List> ParseList(std::string_view str) {}
inline std::optional<Dictionary> ParseDictionary(std::string_view str) {}

inline std::optional<std::string> SerializeItem(const Item& value) {}
inline std::optional<std::string> SerializeItem(
    const ParameterizedItem& value) {}
inline std::optional<std::string> SerializeList(const List& value) {}
inline std::optional<std::string> SerializeDictionary(const Dictionary& value) {}

inline std::string_view ItemTypeToString(
    structured_headers::Item::ItemType type) {}

}  // namespace net::structured_headers

#endif  // NET_HTTP_STRUCTURED_HEADERS_H_