Skip to content

Commit d183e9b

Browse files
dmitriplotnikovcopybara-github
authored andcommitted
Enable "string" extension
PiperOrigin-RevId: 820880248
1 parent 38f6e94 commit d183e9b

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

common/values/duration_value.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#include "absl/base/nullability.h"
2626
#include "absl/log/absl_check.h"
2727
#include "absl/status/status.h"
28-
#include "absl/strings/cord.h"
28+
#include "absl/status/statusor.h"
2929
#include "absl/strings/string_view.h"
3030
#include "absl/time/time.h"
3131
#include "absl/utility/utility.h"
@@ -44,6 +44,7 @@ class Value;
4444
class DurationValue;
4545

4646
DurationValue UnsafeDurationValue(absl::Duration value);
47+
absl::StatusOr<DurationValue> SafeDurationValue(absl::Duration value);
4748

4849
// `DurationValue` represents values of the primitive `duration` type.
4950
class DurationValue final : private common_internal::ValueMixin<DurationValue> {
@@ -125,6 +126,14 @@ inline DurationValue UnsafeDurationValue(absl::Duration value) {
125126
return DurationValue(absl::in_place, value);
126127
}
127128

129+
inline absl::StatusOr<DurationValue> SafeDurationValue(absl::Duration value) {
130+
absl::Status status = internal::ValidateDuration(value);
131+
if (!status.ok()) {
132+
return status;
133+
}
134+
return UnsafeDurationValue(value);
135+
}
136+
128137
inline bool operator!=(DurationValue lhs, DurationValue rhs) {
129138
return !operator==(lhs, rhs);
130139
}

common/values/timestamp_value.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "absl/base/nullability.h"
2626
#include "absl/log/absl_check.h"
2727
#include "absl/status/status.h"
28+
#include "absl/status/statusor.h"
2829
#include "absl/strings/string_view.h"
2930
#include "absl/time/time.h"
3031
#include "absl/utility/utility.h"
@@ -43,6 +44,7 @@ class Value;
4344
class TimestampValue;
4445

4546
TimestampValue UnsafeTimestampValue(absl::Time value);
47+
absl::StatusOr<TimestampValue> SafeTimestampValue(absl::Time value);
4648

4749
// `TimestampValue` represents values of the primitive `timestamp` type.
4850
class TimestampValue final
@@ -123,6 +125,14 @@ inline TimestampValue UnsafeTimestampValue(absl::Time value) {
123125
return TimestampValue(absl::in_place, value);
124126
}
125127

128+
inline absl::StatusOr<TimestampValue> SafeTimestampValue(absl::Time value) {
129+
absl::Status status = internal::ValidateTimestamp(value);
130+
if (!status.ok()) {
131+
return status;
132+
}
133+
return UnsafeTimestampValue(value);
134+
}
135+
126136
inline bool operator!=(TimestampValue lhs, TimestampValue rhs) {
127137
return !operator==(lhs, rhs);
128138
}

0 commit comments

Comments
 (0)