Skip to content

Commit

Permalink
Remove Value::Serialize, Value::GetTypeUrl, and `Value::ConvertTo…
Browse files Browse the repository at this point in the history
…Any`

PiperOrigin-RevId: 656435694
  • Loading branch information
jcking authored and copybara-github committed Jul 29, 2024
1 parent fa44423 commit 02fb1bf
Show file tree
Hide file tree
Showing 68 changed files with 94 additions and 985 deletions.
53 changes: 0 additions & 53 deletions common/value.cc
Original file line number Diff line number Diff line change
Expand Up @@ -135,59 +135,6 @@ absl::Status Value::SerializeTo(AnyToJsonConverter& value_manager,
variant_);
}

absl::StatusOr<absl::Cord> Value::Serialize(
AnyToJsonConverter& value_manager) const {
AssertIsValid();
return absl::visit(
[&value_manager](const auto& alternative) -> absl::StatusOr<absl::Cord> {
if constexpr (std::is_same_v<
absl::remove_cvref_t<decltype(alternative)>,
absl::monostate>) {
// In optimized builds, we just return an error. In debug builds we
// cannot reach here.
return absl::InternalError("use of invalid Value");
} else {
return alternative.Serialize(value_manager);
}
},
variant_);
}

absl::StatusOr<std::string> Value::GetTypeUrl(absl::string_view prefix) const {
AssertIsValid();
return absl::visit(
[prefix](const auto& alternative) -> absl::StatusOr<std::string> {
if constexpr (std::is_same_v<
absl::remove_cvref_t<decltype(alternative)>,
absl::monostate>) {
// In optimized builds, we just return an error. In debug builds we
// cannot reach here.
return absl::InternalError("use of invalid Value");
} else {
return alternative.GetTypeUrl(prefix);
}
},
variant_);
}

absl::StatusOr<Any> Value::ConvertToAny(AnyToJsonConverter& value_manager,
absl::string_view prefix) const {
AssertIsValid();
return absl::visit(
[&value_manager, prefix](const auto& alternative) -> absl::StatusOr<Any> {
if constexpr (std::is_same_v<
absl::remove_cvref_t<decltype(alternative)>,
absl::monostate>) {
// In optimized builds, we just return an error. In debug builds we
// cannot reach here.
return absl::InternalError("use of invalid Value");
} else {
return alternative.ConvertToAny(value_manager, prefix);
}
},
variant_);
}

absl::StatusOr<Json> Value::ConvertToJson(
AnyToJsonConverter& value_manager) const {
AssertIsValid();
Expand Down
16 changes: 0 additions & 16 deletions common/value.h
Original file line number Diff line number Diff line change
Expand Up @@ -210,22 +210,6 @@ class Value final {
absl::Status SerializeTo(AnyToJsonConverter& value_manager,
absl::Cord& value) const;

// `Serialize` serializes this value and returns it as `absl::Cord`. If this
// value does not support serialization, `FAILED_PRECONDITION` is returned.
absl::StatusOr<absl::Cord> Serialize(AnyToJsonConverter& value_manager) const;

// 'GetTypeUrl' returns the type URL that can be used as the type URL for
// `Any`. If this value does not support serialization, `FAILED_PRECONDITION`
// is returned.
absl::StatusOr<std::string> GetTypeUrl(
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

// 'ConvertToAny' converts this value to `Any`. If this value does not support
// serialization, `FAILED_PRECONDITION` is returned.
absl::StatusOr<Any> ConvertToAny(
AnyToJsonConverter& value_manager,
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

absl::StatusOr<Json> ConvertToJson(AnyToJsonConverter& value_manager) const;

absl::Status Equal(ValueManager& value_manager, const Value& other,
Expand Down
22 changes: 0 additions & 22 deletions common/value_interface.cc
Original file line number Diff line number Diff line change
Expand Up @@ -34,28 +34,6 @@ absl::Status ValueInterface::SerializeTo(AnyToJsonConverter&,
absl::StrCat(GetTypeName(), " is unserializable"));
}

absl::StatusOr<absl::Cord> ValueInterface::Serialize(
AnyToJsonConverter& value_manager) const {
absl::Cord value;
CEL_RETURN_IF_ERROR(SerializeTo(value_manager, value));
return value;
}

// NOLINTNEXTLINE(google-default-arguments)
absl::StatusOr<std::string> ValueInterface::GetTypeUrl(
absl::string_view) const {
return absl::FailedPreconditionError(
absl::StrCat(GetTypeName(), " is unserializable"));
}

// NOLINTNEXTLINE(google-default-arguments)
absl::StatusOr<Any> ValueInterface::ConvertToAny(
AnyToJsonConverter& value_manager, absl::string_view prefix) const {
CEL_ASSIGN_OR_RETURN(auto value, Serialize(value_manager));
CEL_ASSIGN_OR_RETURN(auto type_url, GetTypeUrl(prefix));
return MakeAny(std::move(type_url), std::move(value));
}

absl::StatusOr<Json> ValueInterface::ConvertToJson(AnyToJsonConverter&) const {
return absl::FailedPreconditionError(
absl::StrCat(GetTypeName(), " is not convertable to JSON"));
Expand Down
18 changes: 0 additions & 18 deletions common/value_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,24 +57,6 @@ class ValueInterface : public common_internal::DataInterface {
virtual absl::Status SerializeTo(AnyToJsonConverter& converter,
absl::Cord& value) const;

// `Serialize` serializes this value and returns it as `absl::Cord`. If this
// value does not support serialization, `FAILED_PRECONDITION` is returned.
absl::StatusOr<absl::Cord> Serialize(AnyToJsonConverter& converter) const;

// 'GetTypeUrl' returns the type URL that can be used as the type URL for
// `Any`. If this value does not support serialization, `FAILED_PRECONDITION`
// is returned.
// NOLINTNEXTLINE(google-default-arguments)
virtual absl::StatusOr<std::string> GetTypeUrl(
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

// 'ConvertToAny' converts this value to `Any`. If this value does not support
// serialization, `FAILED_PRECONDITION` is returned.
// NOLINTNEXTLINE(google-default-arguments)
absl::StatusOr<Any> ConvertToAny(
AnyToJsonConverter& converter,
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

// `ConvertToJson` converts this value to `Json`. If this value does not
// support conversion to JSON, `FAILED_PRECONDITION` is returned.
virtual absl::StatusOr<Json> ConvertToJson(
Expand Down
19 changes: 0 additions & 19 deletions common/values/bool_value.cc
Original file line number Diff line number Diff line change
Expand Up @@ -48,25 +48,6 @@ absl::Status BoolValue::SerializeTo(AnyToJsonConverter&,
return internal::SerializeBoolValue(NativeValue(), value);
}

absl::StatusOr<absl::Cord> BoolValue::Serialize(
AnyToJsonConverter& value_manager) const {
absl::Cord value;
CEL_RETURN_IF_ERROR(SerializeTo(value_manager, value));
return value;
}

absl::StatusOr<std::string> BoolValue::GetTypeUrl(
absl::string_view prefix) const {
return MakeTypeUrlWithPrefix(prefix, "google.protobuf.BoolValue");
}

absl::StatusOr<Any> BoolValue::ConvertToAny(AnyToJsonConverter& value_manager,
absl::string_view prefix) const {
CEL_ASSIGN_OR_RETURN(auto value, Serialize(value_manager));
CEL_ASSIGN_OR_RETURN(auto type_url, GetTypeUrl(prefix));
return MakeAny(std::move(type_url), std::move(value));
}

absl::Status BoolValue::Equal(ValueManager&, const Value& other,
Value& result) const {
if (auto other_value = As<BoolValue>(other); other_value.has_value()) {
Expand Down
13 changes: 0 additions & 13 deletions common/values/bool_value.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,6 @@ class BoolValue final {
// `SerializeTo` serializes this value and appends it to `value`.
absl::Status SerializeTo(AnyToJsonConverter&, absl::Cord& value) const;

// `Serialize` serializes this value and returns it as `absl::Cord`.
absl::StatusOr<absl::Cord> Serialize(AnyToJsonConverter&) const;

// 'GetTypeUrl' returns the type URL that can be used as the type URL for
// `Any`.
absl::StatusOr<std::string> GetTypeUrl(
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

// 'ConvertToAny' converts this value to `Any`.
absl::StatusOr<Any> ConvertToAny(
AnyToJsonConverter&,
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

absl::StatusOr<Json> ConvertToJson(AnyToJsonConverter&) const;

absl::Status Equal(ValueManager& value_manager, const Value& other,
Expand Down
6 changes: 0 additions & 6 deletions common/values/bool_value_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,6 @@ TEST_P(BoolValueTest, DebugString) {
}
}

TEST_P(BoolValueTest, ConvertToAny) {
EXPECT_THAT(BoolValue(false).ConvertToAny(value_manager()),
IsOkAndHolds(MakeAny(MakeTypeUrl("google.protobuf.BoolValue"),
absl::Cord())));
}

TEST_P(BoolValueTest, ConvertToJson) {
EXPECT_THAT(BoolValue(false).ConvertToJson(value_manager()),
IsOkAndHolds(Json(false)));
Expand Down
19 changes: 0 additions & 19 deletions common/values/bytes_value.cc
Original file line number Diff line number Diff line change
Expand Up @@ -58,25 +58,6 @@ absl::Status BytesValue::SerializeTo(AnyToJsonConverter&,
});
}

absl::StatusOr<absl::Cord> BytesValue::Serialize(
AnyToJsonConverter& value_manager) const {
absl::Cord value;
CEL_RETURN_IF_ERROR(SerializeTo(value_manager, value));
return value;
}

absl::StatusOr<std::string> BytesValue::GetTypeUrl(
absl::string_view prefix) const {
return MakeTypeUrlWithPrefix(prefix, "google.protobuf.BytesValue");
}

absl::StatusOr<Any> BytesValue::ConvertToAny(AnyToJsonConverter& value_manager,
absl::string_view prefix) const {
CEL_ASSIGN_OR_RETURN(auto value, Serialize(value_manager));
CEL_ASSIGN_OR_RETURN(auto type_url, GetTypeUrl(prefix));
return MakeAny(std::move(type_url), std::move(value));
}

absl::StatusOr<Json> BytesValue::ConvertToJson(AnyToJsonConverter&) const {
return NativeValue(
[](const auto& value) -> Json { return JsonBytes(value); });
Expand Down
9 changes: 0 additions & 9 deletions common/values/bytes_value.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,15 +93,6 @@ class BytesValue final {
absl::Status SerializeTo(AnyToJsonConverter& value_manager,
absl::Cord& value) const;

absl::StatusOr<absl::Cord> Serialize(AnyToJsonConverter& value_manager) const;

absl::StatusOr<std::string> GetTypeUrl(
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

absl::StatusOr<Any> ConvertToAny(
AnyToJsonConverter& value_manager,
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

absl::StatusOr<Json> ConvertToJson(AnyToJsonConverter&) const;

absl::Status Equal(ValueManager& value_manager, const Value& other,
Expand Down
6 changes: 0 additions & 6 deletions common/values/bytes_value_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,6 @@ TEST_P(BytesValueTest, DebugString) {
}
}

TEST_P(BytesValueTest, ConvertToAny) {
EXPECT_THAT(BytesValue().ConvertToAny(value_manager()),
IsOkAndHolds(MakeAny(MakeTypeUrl("google.protobuf.BytesValue"),
absl::Cord())));
}

TEST_P(BytesValueTest, ConvertToJson) {
EXPECT_THAT(BytesValue("foo").ConvertToJson(value_manager()),
IsOkAndHolds(Json(JsonBytes("foo"))));
Expand Down
19 changes: 0 additions & 19 deletions common/values/double_value.cc
Original file line number Diff line number Diff line change
Expand Up @@ -73,25 +73,6 @@ absl::Status DoubleValue::SerializeTo(AnyToJsonConverter&,
return internal::SerializeDoubleValue(NativeValue(), value);
}

absl::StatusOr<absl::Cord> DoubleValue::Serialize(
AnyToJsonConverter& value_manager) const {
absl::Cord value;
CEL_RETURN_IF_ERROR(SerializeTo(value_manager, value));
return value;
}

absl::StatusOr<std::string> DoubleValue::GetTypeUrl(
absl::string_view prefix) const {
return MakeTypeUrlWithPrefix(prefix, "google.protobuf.DoubleValue");
}

absl::StatusOr<Any> DoubleValue::ConvertToAny(AnyToJsonConverter& value_manager,
absl::string_view prefix) const {
CEL_ASSIGN_OR_RETURN(auto value, Serialize(value_manager));
CEL_ASSIGN_OR_RETURN(auto type_url, GetTypeUrl(prefix));
return MakeAny(std::move(type_url), std::move(value));
}

absl::StatusOr<Json> DoubleValue::ConvertToJson(AnyToJsonConverter&) const {
return NativeValue();
}
Expand Down
13 changes: 0 additions & 13 deletions common/values/double_value.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,19 +70,6 @@ class DoubleValue final {
// `SerializeTo` serializes this value and appends it to `value`.
absl::Status SerializeTo(AnyToJsonConverter&, absl::Cord& value) const;

// `Serialize` serializes this value and returns it as `absl::Cord`.
absl::StatusOr<absl::Cord> Serialize(AnyToJsonConverter& value_manager) const;

// 'GetTypeUrl' returns the type URL that can be used as the type URL for
// `Any`.
absl::StatusOr<std::string> GetTypeUrl(
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

// 'ConvertToAny' converts this value to `Any`.
absl::StatusOr<Any> ConvertToAny(
AnyToJsonConverter&,
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

absl::StatusOr<Json> ConvertToJson(AnyToJsonConverter&) const;

absl::Status Equal(ValueManager& value_manager, const Value& other,
Expand Down
6 changes: 0 additions & 6 deletions common/values/double_value_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,6 @@ TEST_P(DoubleValueTest, DebugString) {
}
}

TEST_P(DoubleValueTest, ConvertToAny) {
EXPECT_THAT(DoubleValue().ConvertToAny(value_manager()),
IsOkAndHolds(MakeAny(MakeTypeUrl("google.protobuf.DoubleValue"),
absl::Cord())));
}

TEST_P(DoubleValueTest, ConvertToJson) {
EXPECT_THAT(DoubleValue(1.0).ConvertToJson(value_manager()),
IsOkAndHolds(Json(1.0)));
Expand Down
19 changes: 0 additions & 19 deletions common/values/duration_value.cc
Original file line number Diff line number Diff line change
Expand Up @@ -48,25 +48,6 @@ absl::Status DurationValue::SerializeTo(AnyToJsonConverter&,
return internal::SerializeDuration(NativeValue(), value);
}

absl::StatusOr<absl::Cord> DurationValue::Serialize(
AnyToJsonConverter& value_manager) const {
absl::Cord value;
CEL_RETURN_IF_ERROR(SerializeTo(value_manager, value));
return value;
}

absl::StatusOr<std::string> DurationValue::GetTypeUrl(
absl::string_view prefix) const {
return MakeTypeUrlWithPrefix(prefix, "google.protobuf.Duration");
}

absl::StatusOr<Any> DurationValue::ConvertToAny(
AnyToJsonConverter& value_manager, absl::string_view prefix) const {
CEL_ASSIGN_OR_RETURN(auto value, Serialize(value_manager));
CEL_ASSIGN_OR_RETURN(auto type_url, GetTypeUrl(prefix));
return MakeAny(std::move(type_url), std::move(value));
}

absl::StatusOr<Json> DurationValue::ConvertToJson(AnyToJsonConverter&) const {
CEL_ASSIGN_OR_RETURN(auto json,
internal::EncodeDurationToJson(NativeValue()));
Expand Down
9 changes: 0 additions & 9 deletions common/values/duration_value.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,6 @@ class DurationValue final {

absl::Status SerializeTo(AnyToJsonConverter&, absl::Cord& value) const;

absl::StatusOr<absl::Cord> Serialize(AnyToJsonConverter&) const;

absl::StatusOr<std::string> GetTypeUrl(
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

absl::StatusOr<Any> ConvertToAny(
AnyToJsonConverter&,
absl::string_view prefix = kTypeGoogleApisComPrefix) const;

absl::StatusOr<Json> ConvertToJson(AnyToJsonConverter&) const;

absl::Status Equal(ValueManager& value_manager, const Value& other,
Expand Down
6 changes: 0 additions & 6 deletions common/values/duration_value_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,6 @@ TEST_P(DurationValueTest, DebugString) {
}
}

TEST_P(DurationValueTest, ConvertToAny) {
EXPECT_THAT(DurationValue().ConvertToAny(value_manager()),
IsOkAndHolds(MakeAny(MakeTypeUrl("google.protobuf.Duration"),
absl::Cord())));
}

TEST_P(DurationValueTest, ConvertToJson) {
EXPECT_THAT(DurationValue().ConvertToJson(value_manager()),
IsOkAndHolds(Json(JsonString("0s"))));
Expand Down
16 changes: 0 additions & 16 deletions common/values/error_value.cc
Original file line number Diff line number Diff line change
Expand Up @@ -84,22 +84,6 @@ absl::Status ErrorValue::SerializeTo(AnyToJsonConverter&, absl::Cord&) const {
absl::StrCat(GetTypeName(), " is unserializable"));
}

absl::StatusOr<absl::Cord> ErrorValue::Serialize(AnyToJsonConverter&) const {
return absl::FailedPreconditionError(
absl::StrCat(GetTypeName(), " is unserializable"));
}

absl::StatusOr<std::string> ErrorValue::GetTypeUrl(absl::string_view) const {
return absl::FailedPreconditionError(
absl::StrCat(GetTypeName(), " is unserializable"));
}

absl::StatusOr<Any> ErrorValue::ConvertToAny(AnyToJsonConverter&,
absl::string_view) const {
return absl::FailedPreconditionError(
absl::StrCat(GetTypeName(), " is unserializable"));
}

absl::StatusOr<Json> ErrorValue::ConvertToJson(AnyToJsonConverter&) const {
return absl::FailedPreconditionError(
absl::StrCat(GetTypeName(), " is not convertable to JSON"));
Expand Down
Loading

0 comments on commit 02fb1bf

Please # to comment.