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)28inline std::optional<ParameterizedItem> ParseItem(std::string_view str) { 29 return quiche::structured_headers::ParseItem(str); 30 } ParseBareItem(std::string_view str)31inline std::optional<Item> ParseBareItem(std::string_view str) { 32 return quiche::structured_headers::ParseBareItem(str); 33 } ParseParameterisedList(std::string_view str)34inline std::optional<ParameterisedList> ParseParameterisedList( 35 std::string_view str) { 36 return quiche::structured_headers::ParseParameterisedList(str); 37 } ParseListOfLists(std::string_view str)38inline std::optional<ListOfLists> ParseListOfLists(std::string_view str) { 39 return quiche::structured_headers::ParseListOfLists(str); 40 } ParseList(std::string_view str)41inline std::optional<List> ParseList(std::string_view str) { 42 return quiche::structured_headers::ParseList(str); 43 } ParseDictionary(std::string_view str)44inline std::optional<Dictionary> ParseDictionary(std::string_view str) { 45 return quiche::structured_headers::ParseDictionary(str); 46 } 47 SerializeItem(const Item & value)48inline std::optional<std::string> SerializeItem(const Item& value) { 49 return quiche::structured_headers::SerializeItem(value); 50 } SerializeItem(const ParameterizedItem & value)51inline std::optional<std::string> SerializeItem( 52 const ParameterizedItem& value) { 53 return quiche::structured_headers::SerializeItem(value); 54 } SerializeList(const List & value)55inline std::optional<std::string> SerializeList(const List& value) { 56 return quiche::structured_headers::SerializeList(value); 57 } SerializeDictionary(const Dictionary & value)58inline std::optional<std::string> SerializeDictionary(const Dictionary& value) { 59 return quiche::structured_headers::SerializeDictionary(value); 60 } 61 ItemTypeToString(net::structured_headers::Item::ItemType type)62inline 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