structured_headers.h 2.8 KB

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