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

Function SelectInstructionFromConstant

extensions/select_optimization.cc:193–213  ·  view source on GitHub ↗

Returns a qualifier instruction derived from a unoptimized ast.

Source from the content-addressed store, hash-verified

191
192// Returns a qualifier instruction derived from a unoptimized ast.
193absl::StatusOr<QualifierInstruction> SelectInstructionFromConstant(
194 const Constant& constant) {
195 if (constant.has_int_value()) {
196 return QualifierInstruction(constant.int_value());
197 } else if (constant.has_uint_value()) {
198 return QualifierInstruction(constant.uint_value());
199 } else if (constant.has_bool_value()) {
200 return QualifierInstruction(constant.bool_value());
201 } else if (constant.has_string_value()) {
202 return QualifierInstruction(constant.string_value());
203 } else if (constant.has_double_value()) {
204 cel::internal::Number number(constant.double_value());
205 if (number.LosslessConvertibleToInt()) {
206 return QualifierInstruction(number.AsInt());
207 } else if (number.LosslessConvertibleToUint()) {
208 return QualifierInstruction(number.AsUint());
209 }
210 }
211
212 return absl::InvalidArgumentError("invalid index constant for cel.attribute");
213}
214
215absl::StatusOr<SelectQualifier> SelectQualifierFromConstant(
216 const Constant& constant) {

Callers 1

PreVisitCallMethod · 0.85

Calls 4

AsIntMethod · 0.45
AsUintMethod · 0.45

Tested by

no test coverage detected