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

Function ToLegacyValue

common/legacy_value.cc:1210–1256  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1208}
1209
1210absl::StatusOr<google::api::expr::runtime::CelValue> ToLegacyValue(
1211 google::protobuf::Arena* arena, const Value& value, bool) {
1212 switch (value.kind()) {
1213 case ValueKind::kNull:
1214 return CelValue::CreateNull();
1215 case ValueKind::kBool:
1216 return CelValue::CreateBool(Cast<BoolValue>(value).NativeValue());
1217 case ValueKind::kInt:
1218 return CelValue::CreateInt64(Cast<IntValue>(value).NativeValue());
1219 case ValueKind::kUint:
1220 return CelValue::CreateUint64(Cast<UintValue>(value).NativeValue());
1221 case ValueKind::kDouble:
1222 return CelValue::CreateDouble(Cast<DoubleValue>(value).NativeValue());
1223 case ValueKind::kString:
1224 return CelValue::CreateStringView(common_internal::LegacyStringValue(
1225 value.GetString(), /*stable=*/false, arena));
1226 case ValueKind::kBytes:
1227 return CelValue::CreateBytesView(common_internal::LegacyBytesValue(
1228 value.GetBytes(), /*stable=*/false, arena));
1229 case ValueKind::kStruct:
1230 return common_internal::LegacyTrivialStructValue(arena, value);
1231 case ValueKind::kDuration:
1232 return CelValue::CreateUncheckedDuration(
1233 Cast<DurationValue>(value).NativeValue());
1234 case ValueKind::kTimestamp:
1235 return CelValue::CreateTimestamp(
1236 Cast<TimestampValue>(value).NativeValue());
1237 case ValueKind::kList:
1238 return common_internal::LegacyTrivialListValue(arena, value);
1239 case ValueKind::kMap:
1240 return common_internal::LegacyTrivialMapValue(arena, value);
1241 case ValueKind::kUnknown:
1242 return CelValue::CreateUnknownSet(google::protobuf::Arena::Create<Unknown>(
1243 arena, Cast<UnknownValue>(value).NativeValue()));
1244 case ValueKind::kType:
1245 return CelValue::CreateCelType(
1246 CelValue::CelTypeHolder(google::protobuf::Arena::Create<std::string>(
1247 arena, Cast<TypeValue>(value).NativeValue().name())));
1248 case ValueKind::kError:
1249 return CelValue::CreateError(google::protobuf::Arena::Create<absl::Status>(
1250 arena, Cast<ErrorValue>(value).NativeValue()));
1251 default:
1252 return absl::InvalidArgumentError(
1253 absl::StrCat("google::api::expr::runtime::CelValue does not support ",
1254 ValueKindToString(value.kind())));
1255 }
1256}
1257
1258Value LegacyValueToModernValueOrDie(
1259 google::protobuf::Arena* arena, const google::api::expr::runtime::CelValue& value,

Callers 3

RecordMethod · 0.85
InvokeMethod · 0.85

Calls 12

LegacyStringValueFunction · 0.85
LegacyBytesValueFunction · 0.85
LegacyTrivialStructValueFunction · 0.85
LegacyTrivialListValueFunction · 0.85
LegacyTrivialMapValueFunction · 0.85
ValueKindToStringFunction · 0.85
CreateErrorFunction · 0.50
kindMethod · 0.45
NativeValueMethod · 0.45
GetStringMethod · 0.45
GetBytesMethod · 0.45
nameMethod · 0.45

Tested by

no test coverage detected