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 <string> 9 10 #include "base/strings/string_piece.h" 11 #include "net/third_party/quiche/src/quiche/common/structured_headers.h" 12 #include "third_party/abseil-cpp/absl/types/optional.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(base::StringPiece str)28inline absl::optional<ParameterizedItem> ParseItem(base::StringPiece str) { 29 return quiche::structured_headers::ParseItem(str); 30 } ParseBareItem(base::StringPiece str)31inline absl::optional<Item> ParseBareItem(base::StringPiece str) { 32 return quiche::structured_headers::ParseBareItem(str); 33 } ParseParameterisedList(base::StringPiece str)34inline absl::optional<ParameterisedList> ParseParameterisedList( 35 base::StringPiece str) { 36 return quiche::structured_headers::ParseParameterisedList(str); 37 } ParseListOfLists(base::StringPiece str)38inline absl::optional<ListOfLists> ParseListOfLists(base::StringPiece str) { 39 return quiche::structured_headers::ParseListOfLists(str); 40 } ParseList(base::StringPiece str)41inline absl::optional<List> ParseList(base::StringPiece str) { 42 return quiche::structured_headers::ParseList(str); 43 } ParseDictionary(base::StringPiece str)44inline absl::optional<Dictionary> ParseDictionary(base::StringPiece str) { 45 return quiche::structured_headers::ParseDictionary(str); 46 } 47 SerializeItem(const Item & value)48inline absl::optional<std::string> SerializeItem(const Item& value) { 49 return quiche::structured_headers::SerializeItem(value); 50 } SerializeItem(const ParameterizedItem & value)51inline absl::optional<std::string> SerializeItem( 52 const ParameterizedItem& value) { 53 return quiche::structured_headers::SerializeItem(value); 54 } SerializeList(const List & value)55inline absl::optional<std::string> SerializeList(const List& value) { 56 return quiche::structured_headers::SerializeList(value); 57 } SerializeDictionary(const Dictionary & value)58inline absl::optional<std::string> SerializeDictionary( 59 const Dictionary& value) { 60 return quiche::structured_headers::SerializeDictionary(value); 61 } 62 63 } // namespace net::structured_headers 64 65 #endif // NET_HTTP_STRUCTURED_HEADERS_H_ 66