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

Function RegisterDurationFunctions

runtime/standard/time_functions.cc:453–480  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

451}
452
453absl::Status RegisterDurationFunctions(FunctionRegistry& registry) {
454 // duration breakdown accessor functions
455 using DurationAccessorFunction =
456 UnaryFunctionAdapter<int64_t, absl::Duration>;
457 CEL_RETURN_IF_ERROR(registry.Register(
458 DurationAccessorFunction::CreateDescriptor(builtin::kHours, true),
459 DurationAccessorFunction::WrapFunction(
460 [](absl::Duration d) -> int64_t { return absl::ToInt64Hours(d); })));
461
462 CEL_RETURN_IF_ERROR(registry.Register(
463 DurationAccessorFunction::CreateDescriptor(builtin::kMinutes, true),
464 DurationAccessorFunction::WrapFunction([](absl::Duration d) -> int64_t {
465 return absl::ToInt64Minutes(d);
466 })));
467
468 CEL_RETURN_IF_ERROR(registry.Register(
469 DurationAccessorFunction::CreateDescriptor(builtin::kSeconds, true),
470 DurationAccessorFunction::WrapFunction([](absl::Duration d) -> int64_t {
471 return absl::ToInt64Seconds(d);
472 })));
473
474 return registry.Register(
475 DurationAccessorFunction::CreateDescriptor(builtin::kMilliseconds, true),
476 DurationAccessorFunction::WrapFunction([](absl::Duration d) -> int64_t {
477 constexpr int64_t millis_per_second = 1000L;
478 return absl::ToInt64Milliseconds(d) % millis_per_second;
479 }));
480}
481
482} // namespace
483

Callers 1

RegisterTimeFunctionsFunction · 0.85

Calls 2

CreateDescriptorFunction · 0.85
RegisterMethod · 0.45

Tested by

no test coverage detected