| 213 | } |
| 214 | |
| 215 | absl::StatusOr<SelectQualifier> SelectQualifierFromConstant( |
| 216 | const Constant& constant) { |
| 217 | if (constant.has_int_value()) { |
| 218 | return AttributeQualifier::OfInt(constant.int_value()); |
| 219 | } else if (constant.has_uint_value()) { |
| 220 | return AttributeQualifier::OfUint(constant.uint_value()); |
| 221 | } else if (constant.has_bool_value()) { |
| 222 | return AttributeQualifier::OfBool(constant.bool_value()); |
| 223 | } else if (constant.has_string_value()) { |
| 224 | return AttributeQualifier::OfString(constant.string_value()); |
| 225 | } |
| 226 | // TODO(uncreated-issue/51): double keys could possibly be valid selectors, but |
| 227 | // the other stacks don't implement the optimization yet and we normalize the |
| 228 | // key to a uint or int if we do the late AST rewrite during planning. |
| 229 | |
| 230 | return absl::InvalidArgumentError("invalid cel.attribute constant"); |
| 231 | } |
| 232 | |
| 233 | absl::StatusOr<size_t> ListIndexFromQualifier(const AttributeQualifier& qual) { |
| 234 | int64_t value = -1; |
no outgoing calls
no test coverage detected