Skip to content

Commit 216d868

Browse files
jckingcopybara-github
authored andcommitted
Finalize more parts of the Value API
PiperOrigin-RevId: 732927334
1 parent 3dc5bad commit 216d868

File tree

4 files changed

+32
-15
lines changed

4 files changed

+32
-15
lines changed

common/values/duration_value.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
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-
129134
inline bool operator!=(DurationValue lhs, DurationValue rhs) {
130135
return !operator==(lhs, rhs);
131136
}

common/values/error_value.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,10 @@ ErrorValue ErrorValue::Clone(Allocator<> allocator) const {
166166
}),
167167
variant_));
168168
}
169-
return ErrorValue(NativeValue());
169+
return ErrorValue(ToStatus());
170170
}
171171

172-
absl::Status ErrorValue::NativeValue() const& {
172+
absl::Status ErrorValue::ToStatus() const& {
173173
ABSL_DCHECK(*this);
174174
return absl::visit(absl::Overload(
175175
[](const absl::Status& status) -> const absl::Status& {
@@ -181,7 +181,7 @@ absl::Status ErrorValue::NativeValue() const& {
181181
variant_);
182182
}
183183

184-
absl::Status ErrorValue::NativeValue() && {
184+
absl::Status ErrorValue::ToStatus() && {
185185
ABSL_DCHECK(*this);
186186
return absl::visit(absl::Overload(
187187
[](absl::Status&& status) -> absl::Status {

common/values/error_value.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <type_traits>
2525
#include <utility>
2626

27+
#include "absl/base/attributes.h"
2728
#include "absl/base/nullability.h"
2829
#include "absl/log/absl_check.h"
2930
#include "absl/status/status.h"
@@ -98,9 +99,15 @@ class ErrorValue final : private common_internal::ValueMixin<ErrorValue> {
9899

99100
ErrorValue Clone(Allocator<> allocator) const;
100101

101-
absl::Status NativeValue() const&;
102+
absl::Status ToStatus() const&;
102103

103-
absl::Status NativeValue() &&;
104+
absl::Status ToStatus() &&;
105+
106+
ABSL_DEPRECATED("Use ToStatus()")
107+
absl::Status NativeValue() const& { return ToStatus(); }
108+
109+
ABSL_DEPRECATED("Use ToStatus()")
110+
absl::Status NativeValue() && { return std::move(*this).ToStatus(); }
104111

105112
friend void swap(ErrorValue& lhs, ErrorValue& rhs) noexcept;
106113

common/values/timestamp_value.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
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"
@@ -92,18 +93,26 @@ class TimestampValue final
9293
absl::Nonnull<google::protobuf::Arena*> arena, absl::Nonnull<Value*> result) const;
9394
using ValueMixin::Equal;
9495

95-
bool IsZeroValue() const { return NativeValue() == absl::UnixEpoch(); }
96+
bool IsZeroValue() const { return ToTime() == absl::UnixEpoch(); }
9697

98+
ABSL_DEPRECATED("Use ToTime()")
9799
absl::Time NativeValue() const { return static_cast<absl::Time>(*this); }
98100

101+
ABSL_DEPRECATED("Use ToTime()")
99102
// NOLINTNEXTLINE(google-explicit-constructor)
100103
operator absl::Time() const noexcept { return value_; }
101104

105+
absl::Time ToTime() const { return value_; }
106+
102107
friend void swap(TimestampValue& lhs, TimestampValue& rhs) noexcept {
103108
using std::swap;
104109
swap(lhs.value_, rhs.value_);
105110
}
106111

112+
friend bool operator==(TimestampValue lhs, TimestampValue rhs) {
113+
return lhs.value_ == rhs.value_;
114+
}
115+
107116
friend bool operator<(const TimestampValue& lhs, const TimestampValue& rhs) {
108117
return lhs.value_ < rhs.value_;
109118
}
@@ -121,10 +130,6 @@ inline TimestampValue UnsafeTimestampValue(absl::Time value) {
121130
return TimestampValue(absl::in_place, value);
122131
}
123132

124-
inline bool operator==(TimestampValue lhs, TimestampValue rhs) {
125-
return lhs.NativeValue() == rhs.NativeValue();
126-
}
127-
128133
inline bool operator!=(TimestampValue lhs, TimestampValue rhs) {
129134
return !operator==(lhs, rhs);
130135
}

0 commit comments

Comments
 (0)