pub struct LogicalSignal {
pub signal_id: SignalId,
pub source: Option<SignalSourceKind>,
pub target: SignalTarget,
pub urgency: Option<SignalUrgency>,
pub payload: BoundedJson,
pub source_timestamp_ms: Option<WireU64>,
pub dedupe_key: Option<String>,
pub escalate_after_ms: Option<WireU64>,
}Fields§
§signal_id: SignalId§source: Option<SignalSourceKind>§target: SignalTarget§urgency: Option<SignalUrgency>§payload: BoundedJson§source_timestamp_ms: Option<WireU64>Metadata only. TTL, deadlines and admission all use the envelope’s accepted time.
dedupe_key: Option<String>§escalate_after_ms: Option<WireU64>How long this signal may wait before its urgency is raised one tier — a duration, not an instant.
A duration is the only shape that can be a canonical input. The deadline it implies is
anchored to the envelope’s accepted time, which the kernel already owns, so a redelivery of
the same bytes anchors identically; an absolute deadline_ms would be a second host clock
on the wire (DEC-2, §11.2) and would make the same intent decode to a different deadline on
every retry.
Inert unless signal_policy.deadline_escalation is on — that switch is the operation’s
statement that it wants waiting to change priority at all. Some(0) is a legitimate value:
escalate on admission.
Implementations§
Source§impl LogicalSignal
impl LogicalSignal
pub fn new(signal_id: SignalId) -> Self
Sourcepub fn effective_urgency(&self, escalation_enabled: bool) -> SignalUrgency
pub fn effective_urgency(&self, escalation_enabled: bool) -> SignalUrgency
The urgency this delivery reaches at admission, once a due escalate_after_ms is applied.
The kernel has to know this before the router moves: the one effect a delivery can
publish is PreemptTasks, and DEC-8 says an undeclared effect is refused with nothing
mutated. Reading the wire urgency alone would let an escalated-to-critical signal reach the
router and only then discover the host cannot stop its children.
Trait Implementations§
Source§impl Clone for LogicalSignal
impl Clone for LogicalSignal
Source§fn clone(&self) -> LogicalSignal
fn clone(&self) -> LogicalSignal
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more