2121#include < ostream>
2222#include < string>
2323
24+ #include " absl/base/attributes.h"
2425#include " absl/base/nullability.h"
2526#include " absl/log/absl_check.h"
2627#include " absl/status/status.h"
@@ -91,20 +92,28 @@ class DurationValue final : private common_internal::ValueMixin<DurationValue> {
9192 absl::Nonnull<google::protobuf::Arena*> arena, absl::Nonnull<Value*> result) const ;
9293 using ValueMixin::Equal;
9394
94- bool IsZeroValue () const { return NativeValue () == absl::ZeroDuration (); }
95+ bool IsZeroValue () const { return ToDuration () == absl::ZeroDuration (); }
9596
97+ ABSL_DEPRECATED (" Use ToDuration()" )
9698 absl::Duration NativeValue () const {
9799 return static_cast <absl::Duration>(*this );
98100 }
99101
102+ ABSL_DEPRECATED (" Use ToDuration()" )
100103 // NOLINTNEXTLINE(google-explicit-constructor)
101104 operator absl::Duration () const noexcept { return value_; }
102105
106+ absl::Duration ToDuration () const { return value_; }
107+
103108 friend void swap (DurationValue& lhs, DurationValue& rhs) noexcept {
104109 using std::swap;
105110 swap (lhs.value_ , rhs.value_ );
106111 }
107112
113+ friend bool operator ==(DurationValue lhs, DurationValue rhs) {
114+ return lhs.value_ == rhs.value_ ;
115+ }
116+
108117 friend bool operator <(const DurationValue& lhs, const DurationValue& rhs) {
109118 return lhs.value_ < rhs.value_ ;
110119 }
@@ -122,10 +131,6 @@ inline DurationValue UnsafeDurationValue(absl::Duration value) {
122131 return DurationValue (absl::in_place, value);
123132}
124133
125- inline bool operator ==(DurationValue lhs, DurationValue rhs) {
126- return static_cast <absl::Duration>(lhs) == static_cast <absl::Duration>(rhs);
127- }
128-
129134inline bool operator !=(DurationValue lhs, DurationValue rhs) {
130135 return !operator ==(lhs, rhs);
131136}
0 commit comments