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

Function AddRelationOps

checker/standard_library.cc:454–650  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

452}
453
454absl::Status AddRelationOps(TypeCheckerBuilder& builder) {
455 FunctionDecl less_op;
456 less_op.set_name(StandardFunctions::kLess);
457 // Numeric types
458 CEL_RETURN_IF_ERROR(less_op.AddOverload(MakeOverloadDecl(
459 StandardOverloadIds::kLessInt, BoolType(), IntType(), IntType())));
460 CEL_RETURN_IF_ERROR(less_op.AddOverload(MakeOverloadDecl(
461 StandardOverloadIds::kLessUint, BoolType(), UintType(), UintType())));
462 CEL_RETURN_IF_ERROR(less_op.AddOverload(
463 MakeOverloadDecl(StandardOverloadIds::kLessDouble, BoolType(),
464 DoubleType(), DoubleType())));
465
466 // Non-numeric types
467 CEL_RETURN_IF_ERROR(less_op.AddOverload(MakeOverloadDecl(
468 StandardOverloadIds::kLessBool, BoolType(), BoolType(), BoolType())));
469 CEL_RETURN_IF_ERROR(less_op.AddOverload(
470 MakeOverloadDecl(StandardOverloadIds::kLessString, BoolType(),
471 StringType(), StringType())));
472 CEL_RETURN_IF_ERROR(less_op.AddOverload(MakeOverloadDecl(
473 StandardOverloadIds::kLessBytes, BoolType(), BytesType(), BytesType())));
474 CEL_RETURN_IF_ERROR(less_op.AddOverload(
475 MakeOverloadDecl(StandardOverloadIds::kLessDuration, BoolType(),
476 DurationType(), DurationType())));
477 CEL_RETURN_IF_ERROR(less_op.AddOverload(
478 MakeOverloadDecl(StandardOverloadIds::kLessTimestamp, BoolType(),
479 TimestampType(), TimestampType())));
480
481 FunctionDecl greater_op;
482 greater_op.set_name(StandardFunctions::kGreater);
483 // Numeric types
484 CEL_RETURN_IF_ERROR(greater_op.AddOverload(MakeOverloadDecl(
485 StandardOverloadIds::kGreaterInt, BoolType(), IntType(), IntType())));
486 CEL_RETURN_IF_ERROR(greater_op.AddOverload(MakeOverloadDecl(
487 StandardOverloadIds::kGreaterUint, BoolType(), UintType(), UintType())));
488 CEL_RETURN_IF_ERROR(greater_op.AddOverload(
489 MakeOverloadDecl(StandardOverloadIds::kGreaterDouble, BoolType(),
490 DoubleType(), DoubleType())));
491
492 // Non-numeric types
493 CEL_RETURN_IF_ERROR(greater_op.AddOverload(MakeOverloadDecl(
494 StandardOverloadIds::kGreaterBool, BoolType(), BoolType(), BoolType())));
495 CEL_RETURN_IF_ERROR(greater_op.AddOverload(
496 MakeOverloadDecl(StandardOverloadIds::kGreaterString, BoolType(),
497 StringType(), StringType())));
498 CEL_RETURN_IF_ERROR(greater_op.AddOverload(
499 MakeOverloadDecl(StandardOverloadIds::kGreaterBytes, BoolType(),
500 BytesType(), BytesType())));
501 CEL_RETURN_IF_ERROR(greater_op.AddOverload(
502 MakeOverloadDecl(StandardOverloadIds::kGreaterDuration, BoolType(),
503 DurationType(), DurationType())));
504 CEL_RETURN_IF_ERROR(greater_op.AddOverload(
505 MakeOverloadDecl(StandardOverloadIds::kGreaterTimestamp, BoolType(),
506 TimestampType(), TimestampType())));
507
508 FunctionDecl less_equals_op;
509 less_equals_op.set_name(StandardFunctions::kLessOrEqual);
510 // Numeric types
511 CEL_RETURN_IF_ERROR(less_equals_op.AddOverload(MakeOverloadDecl(

Callers 1

AddStandardLibraryDeclsFunction · 0.85

Calls 12

MakeOverloadDeclFunction · 0.85
AddOverloadMethod · 0.80
BoolTypeClass · 0.50
IntTypeClass · 0.50
UintTypeClass · 0.50
DoubleTypeClass · 0.50
StringTypeClass · 0.50
BytesTypeClass · 0.50
DurationTypeClass · 0.50
TimestampTypeClass · 0.50
set_nameMethod · 0.45
AddFunctionMethod · 0.45

Tested by

no test coverage detected