Simplify operator== for Structured Headers types

PiperOrigin-RevId: 947140037
diff --git a/quiche/common/structured_headers.cc b/quiche/common/structured_headers.cc
index 40794fb..4af4359 100644
--- a/quiche/common/structured_headers.cc
+++ b/quiche/common/structured_headers.cc
@@ -820,9 +820,7 @@
 Item::Item(double value) : value_(value) {}
 Item::Item(bool value) : value_(value) {}
 
-bool operator==(const Item& lhs, const Item& rhs) {
-  return lhs.value_ == rhs.value_;
-}
+bool operator==(const Item&, const Item&) = default;
 
 ParameterizedItem::ParameterizedItem() = default;
 ParameterizedItem::ParameterizedItem(const ParameterizedItem&) = default;
diff --git a/quiche/common/structured_headers.h b/quiche/common/structured_headers.h
index fd05782..a850d71 100644
--- a/quiche/common/structured_headers.h
+++ b/quiche/common/structured_headers.h
@@ -78,10 +78,7 @@
   Item(const char* value, Item::ItemType type = kStringType);
   Item(std::string value, Item::ItemType type = kStringType);
 
-  QUICHE_EXPORT friend bool operator==(const Item& lhs, const Item& rhs);
-  inline friend bool operator!=(const Item& lhs, const Item& rhs) {
-    return !(lhs == rhs);
-  }
+  QUICHE_EXPORT friend bool operator==(const Item&, const Item&);
 
   bool is_null() const { return Type() == kNullType; }
   bool is_integer() const { return Type() == kIntegerType; }
@@ -162,13 +159,10 @@
   ParameterisedIdentifier& operator=(const ParameterisedIdentifier&);
   ParameterisedIdentifier(Item, Parameters);
   ~ParameterisedIdentifier();
-};
 
-inline bool operator==(const ParameterisedIdentifier& lhs,
-                       const ParameterisedIdentifier& rhs) {
-  return std::tie(lhs.identifier, lhs.params) ==
-         std::tie(rhs.identifier, rhs.params);
-}
+  friend bool operator==(const ParameterisedIdentifier&,
+                         const ParameterisedIdentifier&) = default;
+};
 
 using Parameters = std::vector<std::pair<std::string, Item>>;
 
@@ -181,18 +175,11 @@
   ParameterizedItem& operator=(const ParameterizedItem&);
   ParameterizedItem(Item, Parameters);
   ~ParameterizedItem();
+
+  friend bool operator==(const ParameterizedItem&,
+                         const ParameterizedItem&) = default;
 };
 
-inline bool operator==(const ParameterizedItem& lhs,
-                       const ParameterizedItem& rhs) {
-  return std::tie(lhs.item, lhs.params) == std::tie(rhs.item, rhs.params);
-}
-
-inline bool operator!=(const ParameterizedItem& lhs,
-                       const ParameterizedItem& rhs) {
-  return !(lhs == rhs);
-}
-
 // Holds a ParameterizedMember, which may be either an single Item, or an Inner
 // List of ParameterizedItems, along with any number of parameters. Parameter
 // ordering is significant.
@@ -213,13 +200,10 @@
   // Shorthand constructor for a member which is a single Item.
   ParameterizedMember(Item, Parameters);
   ~ParameterizedMember();
-};
 
-inline bool operator==(const ParameterizedMember& lhs,
-                       const ParameterizedMember& rhs) {
-  return std::tie(lhs.member, lhs.member_is_inner_list, lhs.params) ==
-         std::tie(rhs.member, rhs.member_is_inner_list, rhs.params);
-}
+  friend bool operator==(const ParameterizedMember&,
+                         const ParameterizedMember&) = default;
+};
 
 using DictionaryMember = std::pair<std::string, ParameterizedMember>;
 
@@ -263,8 +247,8 @@
   bool empty() const;
   std::size_t size() const;
   bool contains(absl::string_view key) const;
-  friend bool operator==(const Dictionary& lhs, const Dictionary& rhs);
-  friend bool operator!=(const Dictionary& lhs, const Dictionary& rhs);
+
+  friend bool operator==(const Dictionary&, const Dictionary&) = default;
 
  private:
   // Uses a vector to hold pairs of key and dictionary member. This makes
@@ -272,14 +256,6 @@
   std::vector<DictionaryMember> members_;
 };
 
-inline bool operator==(const Dictionary& lhs, const Dictionary& rhs) {
-  return lhs.members_ == rhs.members_;
-}
-
-inline bool operator!=(const Dictionary& lhs, const Dictionary& rhs) {
-  return !(lhs == rhs);
-}
-
 // Structured Headers Draft 09 Parameterised List.
 using ParameterisedList = std::vector<ParameterisedIdentifier>;
 // Structured Headers Draft 09 List of Lists.