xref: /aosp_15_r20/external/cronet/net/http/structured_headers.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2019 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef NET_HTTP_STRUCTURED_HEADERS_H_
6 #define NET_HTTP_STRUCTURED_HEADERS_H_
7 
8 #include <optional>
9 #include <string>
10 #include <string_view>
11 
12 #include "net/third_party/quiche/src/quiche/common/structured_headers.h"
13 
14 namespace net::structured_headers {
15 
16 using Item = quiche::structured_headers::Item;
17 using ParameterisedIdentifier =
18     quiche::structured_headers::ParameterisedIdentifier;
19 using ParameterizedItem = quiche::structured_headers::ParameterizedItem;
20 using ParameterizedMember = quiche::structured_headers::ParameterizedMember;
21 using DictionaryMember = quiche::structured_headers::DictionaryMember;
22 using Dictionary = quiche::structured_headers::Dictionary;
23 using ParameterisedList = quiche::structured_headers::ParameterisedList;
24 using ListOfLists = quiche::structured_headers::ListOfLists;
25 using List = quiche::structured_headers::List;
26 using Parameters = quiche::structured_headers::Parameters;
27 
ParseItem(std::string_view str)28 inline std::optional<ParameterizedItem> ParseItem(std::string_view str) {
29   return quiche::structured_headers::ParseItem(str);
30 }
ParseBareItem(std::string_view str)31 inline std::optional<Item> ParseBareItem(std::string_view str) {
32   return quiche::structured_headers::ParseBareItem(str);
33 }
ParseParameterisedList(std::string_view str)34 inline std::optional<ParameterisedList> ParseParameterisedList(
35     std::string_view str) {
36   return quiche::structured_headers::ParseParameterisedList(str);
37 }
ParseListOfLists(std::string_view str)38 inline std::optional<ListOfLists> ParseListOfLists(std::string_view str) {
39   return quiche::structured_headers::ParseListOfLists(str);
40 }
ParseList(std::string_view str)41 inline std::optional<List> ParseList(std::string_view str) {
42   return quiche::structured_headers::ParseList(str);
43 }
ParseDictionary(std::string_view str)44 inline std::optional<Dictionary> ParseDictionary(std::string_view str) {
45   return quiche::structured_headers::ParseDictionary(str);
46 }
47 
SerializeItem(const Item & value)48 inline std::optional<std::string> SerializeItem(const Item& value) {
49   return quiche::structured_headers::SerializeItem(value);
50 }
SerializeItem(const ParameterizedItem & value)51 inline std::optional<std::string> SerializeItem(
52     const ParameterizedItem& value) {
53   return quiche::structured_headers::SerializeItem(value);
54 }
SerializeList(const List & value)55 inline std::optional<std::string> SerializeList(const List& value) {
56   return quiche::structured_headers::SerializeList(value);
57 }
SerializeDictionary(const Dictionary & value)58 inline std::optional<std::string> SerializeDictionary(const Dictionary& value) {
59   return quiche::structured_headers::SerializeDictionary(value);
60 }
61 
ItemTypeToString(net::structured_headers::Item::ItemType type)62 inline absl::string_view ItemTypeToString(
63     net::structured_headers::Item::ItemType type) {
64   return quiche::structured_headers::ItemTypeToString(type);
65 }
66 
67 }  // namespace net::structured_headers
68 
69 #endif  // NET_HTTP_STRUCTURED_HEADERS_H_
70