MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / ToExprValue

Function ToExprValue

common/internal/value_conversion.cc:248–319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246}
247
248absl::StatusOr<cel::expr::Value> ToExprValue(
249 const Value& value,
250 const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
251 google::protobuf::MessageFactory* absl_nonnull message_factory,
252 google::protobuf::Arena* absl_nonnull arena) {
253 cel::expr::Value result;
254 switch (value->kind()) {
255 case ValueKind::kBool:
256 result.set_bool_value(value.GetBool().NativeValue());
257 break;
258 case ValueKind::kInt:
259 result.set_int64_value(value.GetInt().NativeValue());
260 break;
261 case ValueKind::kUint:
262 result.set_uint64_value(value.GetUint().NativeValue());
263 break;
264 case ValueKind::kDouble:
265 result.set_double_value(value.GetDouble().NativeValue());
266 break;
267 case ValueKind::kString:
268 result.set_string_value(value.GetString().ToString());
269 break;
270 case ValueKind::kBytes:
271 result.set_bytes_value(value.GetBytes().ToString());
272 break;
273 case ValueKind::kType:
274 result.set_type_value(value.GetType().name());
275 break;
276 case ValueKind::kNull:
277 result.set_null_value(google::protobuf::NullValue::NULL_VALUE);
278 break;
279 case ValueKind::kDuration: {
280 google::protobuf::Duration duration;
281 CEL_RETURN_IF_ERROR(internal::EncodeDuration(
282 value.GetDuration().NativeValue(), &duration));
283 result.mutable_object_value()->PackFrom(duration);
284 break;
285 }
286 case ValueKind::kTimestamp: {
287 google::protobuf::Timestamp timestamp;
288 CEL_RETURN_IF_ERROR(
289 internal::EncodeTime(value.GetTimestamp().NativeValue(), &timestamp));
290 result.mutable_object_value()->PackFrom(timestamp);
291 break;
292 }
293 case ValueKind::kMap: {
294 CEL_ASSIGN_OR_RETURN(
295 *result.mutable_map_value(),
296 MapValueToExpr(value.GetMap(), descriptor_pool,
297 message_factory, arena));
298 break;
299 }
300 case ValueKind::kList: {
301 CEL_ASSIGN_OR_RETURN(
302 *result.mutable_list_value(),
303 ListValueToExpr(value.GetList(), descriptor_pool,
304 message_factory, arena));
305 break;

Callers 3

ListValueToExprFunction · 0.85
EvalMethod · 0.85
AssertValueMethod · 0.85

Calls 15

EncodeDurationFunction · 0.85
EncodeTimeFunction · 0.85
MapValueToExprFunction · 0.85
ListValueToExprFunction · 0.85
ToProtobufAnyFunction · 0.85
ValueKindToStringFunction · 0.85
CEL_ASSIGN_OR_RETURNFunction · 0.50
kindMethod · 0.45
NativeValueMethod · 0.45
GetBoolMethod · 0.45
GetIntMethod · 0.45
GetUintMethod · 0.45

Tested by

no test coverage detected