Skip to content

Commit 9449a1f

Browse files
ChinmayMadeshicopybara-github
authored andcommitted
Internal Changes
PiperOrigin-RevId: 785470276
1 parent 92adcfb commit 9449a1f

File tree

5 files changed

+101
-100
lines changed

5 files changed

+101
-100
lines changed

common/internal/BUILD

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,35 @@ cc_test(
102102
"@com_google_protobuf//:protobuf",
103103
],
104104
)
105+
106+
cc_library(
107+
name = "value_conversion",
108+
srcs = ["value_conversion.cc"],
109+
hdrs = ["value_conversion.h"],
110+
deps = [
111+
"//common:any",
112+
"//common:value",
113+
"//common:value_kind",
114+
"//extensions/protobuf:value",
115+
"//internal:proto_time_encoding",
116+
"//internal:status_macros",
117+
"//internal:time",
118+
"@com_google_absl//absl/base:core_headers",
119+
"@com_google_absl//absl/base:nullability",
120+
"@com_google_absl//absl/status",
121+
"@com_google_absl//absl/status:statusor",
122+
"@com_google_absl//absl/strings",
123+
"@com_google_absl//absl/strings:cord",
124+
"@com_google_absl//absl/time",
125+
"@com_google_cel_spec//proto/cel/expr:checked_cc_proto",
126+
"@com_google_cel_spec//proto/cel/expr:syntax_cc_proto",
127+
"@com_google_cel_spec//proto/cel/expr:value_cc_proto",
128+
"@com_google_googleapis//google/api/expr/v1alpha1:checked_cc_proto",
129+
"@com_google_googleapis//google/api/expr/v1alpha1:value_cc_proto",
130+
"@com_google_protobuf//:any_cc_proto",
131+
"@com_google_protobuf//:protobuf",
132+
"@com_google_protobuf//:struct_cc_proto",
133+
"@com_google_protobuf//:timestamp_cc_proto",
134+
"@com_google_protobuf//src/google/protobuf/io",
135+
],
136+
)
Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
#include "conformance/value_conversion.h"
14+
#include "common/internal/value_conversion.h"
1515

1616
#include <string>
1717
#include <utility>
@@ -38,38 +38,38 @@
3838
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
3939
#include "google/protobuf/message.h"
4040

41-
namespace cel::conformance_internal {
41+
namespace cel::test {
4242
namespace {
4343

44-
using ConformanceKind = cel::expr::Value::KindCase;
45-
using ConformanceMapValue = cel::expr::MapValue;
46-
using ConformanceListValue = cel::expr::ListValue;
44+
using ExprValueKind = cel::expr::Value::KindCase;
45+
using ExprMapValue = cel::expr::MapValue;
46+
using ExprListValue = cel::expr::ListValue;
4747

48-
std::string ToString(ConformanceKind kind_case) {
48+
std::string ToString(ExprValueKind kind_case) {
4949
switch (kind_case) {
50-
case ConformanceKind::kBoolValue:
50+
case ExprValueKind::kBoolValue:
5151
return "bool_value";
52-
case ConformanceKind::kInt64Value:
52+
case ExprValueKind::kInt64Value:
5353
return "int64_value";
54-
case ConformanceKind::kUint64Value:
54+
case ExprValueKind::kUint64Value:
5555
return "uint64_value";
56-
case ConformanceKind::kDoubleValue:
56+
case ExprValueKind::kDoubleValue:
5757
return "double_value";
58-
case ConformanceKind::kStringValue:
58+
case ExprValueKind::kStringValue:
5959
return "string_value";
60-
case ConformanceKind::kBytesValue:
60+
case ExprValueKind::kBytesValue:
6161
return "bytes_value";
62-
case ConformanceKind::kTypeValue:
62+
case ExprValueKind::kTypeValue:
6363
return "type_value";
64-
case ConformanceKind::kEnumValue:
64+
case ExprValueKind::kEnumValue:
6565
return "enum_value";
66-
case ConformanceKind::kMapValue:
66+
case ExprValueKind::kMapValue:
6767
return "map_value";
68-
case ConformanceKind::kListValue:
68+
case ExprValueKind::kListValue:
6969
return "list_value";
70-
case ConformanceKind::kNullValue:
70+
case ExprValueKind::kNullValue:
7171
return "null_value";
72-
case ConformanceKind::kObjectValue:
72+
case ExprValueKind::kObjectValue:
7373
return "object_value";
7474
default:
7575
return "unknown kind case";
@@ -104,47 +104,47 @@ absl::StatusOr<Value> FromObject(
104104
arena);
105105
}
106106

107-
absl::StatusOr<MapValue> MapValueFromConformance(
108-
const ConformanceMapValue& map_value,
107+
absl::StatusOr<MapValue> MapValueFromExpr(
108+
const ExprMapValue& map_value,
109109
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
110110
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
111111
google::protobuf::Arena* ABSL_NONNULL arena) {
112112
auto builder = cel::NewMapValueBuilder(arena);
113113
for (const auto& entry : map_value.entries()) {
114114
CEL_ASSIGN_OR_RETURN(auto key,
115-
FromConformanceValue(entry.key(), descriptor_pool,
115+
FromExprValue(entry.key(), descriptor_pool,
116116
message_factory, arena));
117117
CEL_ASSIGN_OR_RETURN(auto value,
118-
FromConformanceValue(entry.value(), descriptor_pool,
118+
FromExprValue(entry.value(), descriptor_pool,
119119
message_factory, arena));
120120
CEL_RETURN_IF_ERROR(builder->Put(std::move(key), std::move(value)));
121121
}
122122

123123
return std::move(*builder).Build();
124124
}
125125

126-
absl::StatusOr<ListValue> ListValueFromConformance(
127-
const ConformanceListValue& list_value,
126+
absl::StatusOr<ListValue> ListValueFromExpr(
127+
const ExprListValue& list_value,
128128
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
129129
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
130130
google::protobuf::Arena* ABSL_NONNULL arena) {
131131
auto builder = cel::NewListValueBuilder(arena);
132132
for (const auto& elem : list_value.values()) {
133133
CEL_ASSIGN_OR_RETURN(
134134
auto value,
135-
FromConformanceValue(elem, descriptor_pool, message_factory, arena));
135+
FromExprValue(elem, descriptor_pool, message_factory, arena));
136136
CEL_RETURN_IF_ERROR(builder->Add(std::move(value)));
137137
}
138138

139139
return std::move(*builder).Build();
140140
}
141141

142-
absl::StatusOr<ConformanceMapValue> MapValueToConformance(
142+
absl::StatusOr<ExprMapValue> MapValueToExpr(
143143
const MapValue& map_value,
144144
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
145145
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
146146
google::protobuf::Arena* ABSL_NONNULL arena) {
147-
ConformanceMapValue result;
147+
ExprMapValue result;
148148

149149
CEL_ASSIGN_OR_RETURN(auto iter, map_value.NewIterator());
150150

@@ -157,9 +157,9 @@ absl::StatusOr<ConformanceMapValue> MapValueToConformance(
157157

158158
CEL_ASSIGN_OR_RETURN(
159159
auto key,
160-
ToConformanceValue(key_value, descriptor_pool, message_factory, arena));
160+
ToExprValue(key_value, descriptor_pool, message_factory, arena));
161161
CEL_ASSIGN_OR_RETURN(auto value,
162-
ToConformanceValue(value_value, descriptor_pool,
162+
ToExprValue(value_value, descriptor_pool,
163163
message_factory, arena));
164164

165165
auto* entry = result.add_entries();
@@ -171,12 +171,12 @@ absl::StatusOr<ConformanceMapValue> MapValueToConformance(
171171
return result;
172172
}
173173

174-
absl::StatusOr<ConformanceListValue> ListValueToConformance(
174+
absl::StatusOr<ExprListValue> ListValueToExpr(
175175
const ListValue& list_value,
176176
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
177177
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
178178
google::protobuf::Arena* ABSL_NONNULL arena) {
179-
ConformanceListValue result;
179+
ExprListValue result;
180180

181181
CEL_ASSIGN_OR_RETURN(auto iter, list_value.NewIterator());
182182

@@ -185,7 +185,7 @@ absl::StatusOr<ConformanceListValue> ListValueToConformance(
185185
iter->Next(descriptor_pool, message_factory, arena));
186186
CEL_ASSIGN_OR_RETURN(
187187
*result.add_values(),
188-
ToConformanceValue(elem, descriptor_pool, message_factory, arena));
188+
ToExprValue(elem, descriptor_pool, message_factory, arena));
189189
}
190190

191191
return result;
@@ -208,44 +208,44 @@ absl::StatusOr<google::protobuf::Any> ToProtobufAny(
208208

209209
} // namespace
210210

211-
absl::StatusOr<Value> FromConformanceValue(
211+
absl::StatusOr<Value> FromExprValue(
212212
const cel::expr::Value& value,
213213
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
214214
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
215215
google::protobuf::Arena* ABSL_NONNULL arena) {
216216
google::protobuf::LinkMessageReflection<cel::expr::Value>();
217217
switch (value.kind_case()) {
218-
case ConformanceKind::kBoolValue:
218+
case ExprValueKind::kBoolValue:
219219
return cel::BoolValue(value.bool_value());
220-
case ConformanceKind::kInt64Value:
220+
case ExprValueKind::kInt64Value:
221221
return cel::IntValue(value.int64_value());
222-
case ConformanceKind::kUint64Value:
222+
case ExprValueKind::kUint64Value:
223223
return cel::UintValue(value.uint64_value());
224-
case ConformanceKind::kDoubleValue:
224+
case ExprValueKind::kDoubleValue:
225225
return cel::DoubleValue(value.double_value());
226-
case ConformanceKind::kStringValue:
226+
case ExprValueKind::kStringValue:
227227
return cel::StringValue(value.string_value());
228-
case ConformanceKind::kBytesValue:
228+
case ExprValueKind::kBytesValue:
229229
return cel::BytesValue(value.bytes_value());
230-
case ConformanceKind::kNullValue:
230+
case ExprValueKind::kNullValue:
231231
return cel::NullValue();
232-
case ConformanceKind::kObjectValue:
232+
case ExprValueKind::kObjectValue:
233233
return FromObject(value.object_value(), descriptor_pool, message_factory,
234234
arena);
235-
case ConformanceKind::kMapValue:
236-
return MapValueFromConformance(value.map_value(), descriptor_pool,
235+
case ExprValueKind::kMapValue:
236+
return MapValueFromExpr(value.map_value(), descriptor_pool,
237237
message_factory, arena);
238-
case ConformanceKind::kListValue:
239-
return ListValueFromConformance(value.list_value(), descriptor_pool,
238+
case ExprValueKind::kListValue:
239+
return ListValueFromExpr(value.list_value(), descriptor_pool,
240240
message_factory, arena);
241241

242242
default:
243243
return absl::UnimplementedError(absl::StrCat(
244-
"FromConformanceValue not supported ", ToString(value.kind_case())));
244+
"FromExprValue not supported ", ToString(value.kind_case())));
245245
}
246246
}
247247

248-
absl::StatusOr<cel::expr::Value> ToConformanceValue(
248+
absl::StatusOr<cel::expr::Value> ToExprValue(
249249
const Value& value,
250250
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
251251
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
@@ -293,14 +293,14 @@ absl::StatusOr<cel::expr::Value> ToConformanceValue(
293293
case ValueKind::kMap: {
294294
CEL_ASSIGN_OR_RETURN(
295295
*result.mutable_map_value(),
296-
MapValueToConformance(value.GetMap(), descriptor_pool,
296+
MapValueToExpr(value.GetMap(), descriptor_pool,
297297
message_factory, arena));
298298
break;
299299
}
300300
case ValueKind::kList: {
301301
CEL_ASSIGN_OR_RETURN(
302302
*result.mutable_list_value(),
303-
ListValueToConformance(value.GetList(), descriptor_pool,
303+
ListValueToExpr(value.GetList(), descriptor_pool,
304304
message_factory, arena));
305305
break;
306306
}
@@ -312,10 +312,10 @@ absl::StatusOr<cel::expr::Value> ToConformanceValue(
312312
}
313313
default:
314314
return absl::UnimplementedError(
315-
absl::StrCat("ToConformanceValue not supported ",
315+
absl::StrCat("ToExprValue not supported ",
316316
ValueKindToString(value->kind())));
317317
}
318318
return result;
319319
}
320320

321-
} // namespace cel::conformance_internal
321+
} // namespace cel::test
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
// limitations under the License.
1414
//
1515
// Converters to/from serialized Value to/from runtime values.
16-
#ifndef THIRD_PARTY_CEL_CPP_CONFORMANCE_VALUE_CONVERSION_H_
17-
#define THIRD_PARTY_CEL_CPP_CONFORMANCE_VALUE_CONVERSION_H_
16+
#ifndef THIRD_PARTY_CEL_CPP_COMMON_INTERNAL_VALUE_CONVERSION_H_
17+
#define THIRD_PARTY_CEL_CPP_COMMON_INTERNAL_VALUE_CONVERSION_H_
1818

1919
#include "cel/expr/checked.pb.h"
2020
#include "cel/expr/syntax.pb.h"
@@ -32,7 +32,9 @@
3232
#include "google/protobuf/message.h"
3333
#include "google/protobuf/message_lite.h"
3434

35-
namespace cel::conformance_internal {
35+
// TODO(uncreated-issue/84): Clean up and expose cel::expr::Value converters
36+
// in the common folder.
37+
namespace cel::test {
3638

3739
ABSL_MUST_USE_RESULT
3840
inline bool UnsafeConvertWireCompatProto(
@@ -97,17 +99,17 @@ inline bool ConvertWireCompatProto(
9799
return UnsafeConvertWireCompatProto(src, dest);
98100
}
99101

100-
absl::StatusOr<Value> FromConformanceValue(
102+
absl::StatusOr<Value> FromExprValue(
101103
const cel::expr::Value& value,
102104
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
103105
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
104106
google::protobuf::Arena* ABSL_NONNULL arena);
105107

106-
absl::StatusOr<cel::expr::Value> ToConformanceValue(
108+
absl::StatusOr<cel::expr::Value> ToExprValue(
107109
const Value& value,
108110
const google::protobuf::DescriptorPool* ABSL_NONNULL descriptor_pool,
109111
google::protobuf::MessageFactory* ABSL_NONNULL message_factory,
110112
google::protobuf::Arena* ABSL_NONNULL arena);
111113

112-
} // namespace cel::conformance_internal
113-
#endif // THIRD_PARTY_CEL_CPP_CONFORMANCE_VALUE_CONVERSION_H_
114+
} // namespace cel::test
115+
#endif // THIRD_PARTY_CEL_CPP_COMMON_INTERNAL_VALUE_CONVERSION_H_

conformance/BUILD

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -18,45 +18,12 @@ package(default_visibility = ["//visibility:public"])
1818

1919
licenses(["notice"])
2020

21-
cc_library(
22-
name = "value_conversion",
23-
srcs = ["value_conversion.cc"],
24-
hdrs = ["value_conversion.h"],
25-
deps = [
26-
"//common:any",
27-
"//common:value",
28-
"//common:value_kind",
29-
"//extensions/protobuf:value",
30-
"//internal:proto_time_encoding",
31-
"//internal:status_macros",
32-
"//internal:time",
33-
"@com_google_absl//absl/base:core_headers",
34-
"@com_google_absl//absl/base:nullability",
35-
"@com_google_absl//absl/status",
36-
"@com_google_absl//absl/status:statusor",
37-
"@com_google_absl//absl/strings",
38-
"@com_google_absl//absl/strings:cord",
39-
"@com_google_absl//absl/time",
40-
"@com_google_cel_spec//proto/cel/expr:checked_cc_proto",
41-
"@com_google_cel_spec//proto/cel/expr:syntax_cc_proto",
42-
"@com_google_cel_spec//proto/cel/expr:value_cc_proto",
43-
"@com_google_googleapis//google/api/expr/v1alpha1:checked_cc_proto",
44-
"@com_google_googleapis//google/api/expr/v1alpha1:value_cc_proto",
45-
"@com_google_protobuf//:any_cc_proto",
46-
"@com_google_protobuf//:protobuf",
47-
"@com_google_protobuf//:struct_cc_proto",
48-
"@com_google_protobuf//:timestamp_cc_proto",
49-
"@com_google_protobuf//src/google/protobuf/io",
50-
],
51-
)
52-
5321
cc_library(
5422
name = "service",
5523
testonly = True,
5624
srcs = ["service.cc"],
5725
hdrs = ["service.h"],
5826
deps = [
59-
":value_conversion",
6027
"//checker:optional",
6128
"//checker:standard_library",
6229
"//checker:type_checker_builder",
@@ -69,6 +36,7 @@ cc_library(
6936
"//common:source",
7037
"//common:type",
7138
"//common:value",
39+
"//common/internal:value_conversion",
7240
"//eval/public:activation",
7341
"//eval/public:builtin_func_registrar",
7442
"//eval/public:cel_expr_builder_factory",

0 commit comments

Comments
 (0)