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