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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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 Workerinline 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