pub enum TimerKind {
Wall,
Clock,
Oneshot,
InGroup,
GuardCondition,
}Expand description
phase-463 W1 – which executor-side entry a recorded slot row came through.
nros_cpp_timer_create / _on_clock / _oneshot / _in_group are four
entry points with four semantics (a oneshot fires once; a clock timer follows
/clock), and a contract that says rate_hz means a repeating wall timer.
The recorder used to fold all four into one period_ms, so a census could
not see that a “timer” was a one-shot delay – or that it was a guard
condition at all, which the C++ hooks recorded as a timer of period 0.
A guard condition is GuardCondition here rather
than a variant of EntityKind, on purpose: it occupies one callback slot
exactly like a timer, every sizing consumer counts the timers[] array,
and the runtime’s declarative path matches on EntityKind exhaustively.
The KIND is what a census reads; the slot is what sizing reads; neither
changes for the other. Meaningful only for EntityKind::Timer; Wall
for every timer declared through the Rust producer, which has no oneshot,
group or guard entry.
Variants§
Wall
A repeating timer on the platform steady clock.
Clock
A repeating timer driven by a caller-supplied clock (create_timer(node, clock, ...)).
Oneshot
A timer that fires once after its delay.
InGroup
A repeating wall timer registered into a named callback group.
GuardCondition
A guard condition: one callback slot, no period.