Replace some trivial comparisons with C++20 default comparisons

PiperOrigin-RevId: 814710997
diff --git a/quiche/quic/core/congestion_control/send_algorithm_interface.h b/quiche/quic/core/congestion_control/send_algorithm_interface.h
index 568d72a..91ac898 100644
--- a/quiche/quic/core/congestion_control/send_algorithm_interface.h
+++ b/quiche/quic/core/congestion_control/send_algorithm_interface.h
@@ -40,13 +40,7 @@
           rtt(rtt),
           allow_cwnd_to_decrease(allow_cwnd_to_decrease) {}
 
-    bool operator==(const NetworkParams& other) const {
-      return bandwidth == other.bandwidth && rtt == other.rtt &&
-             max_initial_congestion_window ==
-                 other.max_initial_congestion_window &&
-             allow_cwnd_to_decrease == other.allow_cwnd_to_decrease &&
-             is_rtt_trusted == other.is_rtt_trusted;
-    }
+    bool operator==(const NetworkParams& other) const = default;
 
     QuicBandwidth bandwidth = QuicBandwidth::Zero();
     QuicTime::Delta rtt = QuicTime::Delta::Zero();
diff --git a/quiche/quic/core/quic_time.cc b/quiche/quic/core/quic_time.cc
index afbca5b..655ac6d 100644
--- a/quiche/quic/core/quic_time.cc
+++ b/quiche/quic/core/quic_time.cc
@@ -4,7 +4,7 @@
 
 #include "quiche/quic/core/quic_time.h"
 
-#include <cinttypes>
+#include <cstdint>
 #include <cstdlib>
 #include <limits>
 #include <string>
diff --git a/quiche/quic/core/quic_time.h b/quiche/quic/core/quic_time.h
index db913d5..b6d6e89 100644
--- a/quiche/quic/core/quic_time.h
+++ b/quiche/quic/core/quic_time.h
@@ -6,6 +6,7 @@
 #define QUICHE_QUIC_CORE_QUIC_TIME_H_
 
 #include <cmath>
+#include <compare>
 #include <cstddef>
 #include <cstdint>
 #include <limits>
@@ -13,8 +14,9 @@
 #include <ostream>
 #include <string>
 
+#include "absl/base/optimization.h"
 #include "absl/time/time.h"
-#include "quiche/quic/platform/api/quic_export.h"
+#include "quiche/common/platform/api/quiche_export.h"
 
 namespace quic {
 
@@ -97,9 +99,11 @@
     sink.Append(delta.ToDebuggingValue());
   }
 
+  std::strong_ordering operator<=>(const QuicTimeDelta& other) const = default;
+
  private:
-  friend inline bool operator==(QuicTimeDelta lhs, QuicTimeDelta rhs);
-  friend inline bool operator<(QuicTimeDelta lhs, QuicTimeDelta rhs);
+  friend class QuicTime;
+
   friend inline QuicTimeDelta operator<<(QuicTimeDelta lhs, size_t rhs);
   friend inline QuicTimeDelta operator>>(QuicTimeDelta lhs, size_t rhs);
 
@@ -121,8 +125,8 @@
   explicit constexpr QuicTimeDelta(int64_t time_offset)
       : time_offset_(time_offset) {}
 
+  // IMPORTANT: The defaulted comparisons automatically use all data members.
   int64_t time_offset_;
-  friend class QuicTime;
 };
 
 // A microsecond precision timestamp returned by a QuicClock. It is
@@ -157,17 +161,18 @@
 
   bool IsInitialized() const { return 0 != time_; }
 
+  std::strong_ordering operator<=>(const QuicTime& other) const = default;
+
  private:
   friend class QuicClock;
 
-  friend inline bool operator==(QuicTime lhs, QuicTime rhs);
-  friend inline bool operator<(QuicTime lhs, QuicTime rhs);
   friend inline QuicTime operator+(QuicTime lhs, QuicTimeDelta rhs);
   friend inline QuicTime operator-(QuicTime lhs, QuicTimeDelta rhs);
   friend inline QuicTimeDelta operator-(QuicTime lhs, QuicTime rhs);
 
   explicit constexpr QuicTime(int64_t time) : time_(time) {}
 
+  // IMPORTANT: The defaulted comparisons automatically use all data members.
   int64_t time_;
 };
 
@@ -213,9 +218,7 @@
   // minus |delta|.
   [[nodiscard]] QuicWallTime Subtract(QuicTimeDelta delta) const;
 
-  bool operator==(const QuicWallTime& other) const {
-    return microseconds_ == other.microseconds_;
-  }
+  bool operator==(const QuicWallTime& other) const = default;
 
   QuicTimeDelta operator-(const QuicWallTime& rhs) const {
     return QuicTimeDelta::FromMicroseconds(microseconds_ - rhs.microseconds_);
@@ -225,28 +228,11 @@
   explicit constexpr QuicWallTime(uint64_t microseconds)
       : microseconds_(microseconds) {}
 
+  // IMPORTANT: The defaulted comparisons automatically use all data members.
   uint64_t microseconds_;
 };
 
 // Non-member relational operators for QuicTimeDelta.
-inline bool operator==(QuicTimeDelta lhs, QuicTimeDelta rhs) {
-  return lhs.time_offset_ == rhs.time_offset_;
-}
-inline bool operator!=(QuicTimeDelta lhs, QuicTimeDelta rhs) {
-  return !(lhs == rhs);
-}
-inline bool operator<(QuicTimeDelta lhs, QuicTimeDelta rhs) {
-  return lhs.time_offset_ < rhs.time_offset_;
-}
-inline bool operator>(QuicTimeDelta lhs, QuicTimeDelta rhs) {
-  return rhs < lhs;
-}
-inline bool operator<=(QuicTimeDelta lhs, QuicTimeDelta rhs) {
-  return !(rhs < lhs);
-}
-inline bool operator>=(QuicTimeDelta lhs, QuicTimeDelta rhs) {
-  return !(lhs < rhs);
-}
 inline QuicTimeDelta operator<<(QuicTimeDelta lhs, size_t rhs) {
   return QuicTimeDelta(lhs.time_offset_ << rhs);
 }
@@ -254,17 +240,6 @@
   return QuicTimeDelta(lhs.time_offset_ >> rhs);
 }
 
-// Non-member relational operators for QuicTime.
-inline bool operator==(QuicTime lhs, QuicTime rhs) {
-  return lhs.time_ == rhs.time_;
-}
-inline bool operator!=(QuicTime lhs, QuicTime rhs) { return !(lhs == rhs); }
-inline bool operator<(QuicTime lhs, QuicTime rhs) {
-  return lhs.time_ < rhs.time_;
-}
-inline bool operator>(QuicTime lhs, QuicTime rhs) { return rhs < lhs; }
-inline bool operator<=(QuicTime lhs, QuicTime rhs) { return !(rhs < lhs); }
-inline bool operator>=(QuicTime lhs, QuicTime rhs) { return !(lhs < rhs); }
 
 // Override stream output operator for gtest or QUICHE_CHECK macros.
 inline std::ostream& operator<<(std::ostream& output, const QuicTime t) {
diff --git a/quiche/quic/core/quic_time_accumulator_test.cc b/quiche/quic/core/quic_time_accumulator_test.cc
index fd56df4..a7ee727 100644
--- a/quiche/quic/core/quic_time_accumulator_test.cc
+++ b/quiche/quic/core/quic_time_accumulator_test.cc
@@ -4,6 +4,7 @@
 
 #include "quiche/quic/core/quic_time_accumulator.h"
 
+#include "quiche/quic/core/quic_time.h"
 #include "quiche/quic/platform/api/quic_test.h"
 #include "quiche/quic/test_tools/mock_clock.h"
 
diff --git a/quiche/quic/test_tools/quic_test_utils.h b/quiche/quic/test_tools/quic_test_utils.h
index ad85c1c..67bd5d4 100644
--- a/quiche/quic/test_tools/quic_test_utils.h
+++ b/quiche/quic/test_tools/quic_test_utils.h
@@ -2145,19 +2145,17 @@
 class SavingHttp3DatagramVisitor : public QuicSpdyStream::Http3DatagramVisitor {
  public:
   struct SavedHttp3Datagram {
+    bool operator==(const SavedHttp3Datagram&) const = default;
+
     QuicStreamId stream_id;
     std::string payload;
-    bool operator==(const SavedHttp3Datagram& o) const {
-      return stream_id == o.stream_id && payload == o.payload;
-    }
   };
   struct SavedUnknownCapsule {
+    bool operator==(const SavedUnknownCapsule&) const = default;
+
     QuicStreamId stream_id;
     uint64_t type;
     std::string payload;
-    bool operator==(const SavedUnknownCapsule& o) const {
-      return stream_id == o.stream_id && type == o.type && payload == o.payload;
-    }
   };
   const std::vector<SavedHttp3Datagram>& received_h3_datagrams() const {
     return received_h3_datagrams_;