pub enum Message {
Start,
Dirty,
Resolved,
Data(HandleId),
Invalidate,
Pause(LockId),
Resume(LockId),
Complete,
Error(HandleId),
Teardown,
}Expand description
Variants§
Start
Subscribe-time handshake. Per-subscription; not forwarded through intermediate nodes (R1.2.3). Tier 0.
Dirty
Phase 1: value about to change. Tier 1 — immediate.
Resolved
Phase 2: dirty pass complete, value unchanged (or equals-substituted). Tier 3 — deferred inside batch.
Data(HandleId)
Value delivery. The handle never carries the sentinel — [DATA, undefined]
/ [DATA, None] is a protocol violation per R1.2.4. Tier 3.
Invalidate
Cache clear; does not auto-emit. Tier 4 — deferred.
Pause(LockId)
Suspend activity. lockId mandatory (R1.2.6). Tier 2 — synchronous.
Resume(LockId)
Resume after pause. Unknown lockId is an idempotent no-op. Tier 2.
Complete
Clean termination. Tier 5 — deferred.
Error(HandleId)
Error termination. Payload handle MUST resolve to a non-sentinel value per R1.2.5. Tier 5 — deferred.
Teardown
Permanent cleanup; auto-precedes Message::Complete when delivered
to a non-terminal node (R2.6.4 / Lock 6.F). Tier 6 — deferred (drains last).
Implementations§
Source§impl Message
impl Message
Sourcepub const fn tier(self) -> u8
pub const fn tier(self) -> u8
Per-message tier (0–6) per R1.3.7.b. Drives ordering in the dispatcher
and gating thresholds (e.g. auto-checkpoint on tier >= 3).
Sourcepub const fn payload_handle(self) -> Option<HandleId>
pub const fn payload_handle(self) -> Option<HandleId>
True for messages that carry a value handle (Data, Error).
Useful for the auto-DIRTY-prefix logic (R1.3.1.a) and for the
binding-layer refcount path: payload handles get a refcount bump
at emit time, decremented when the message is consumed.
Sourcepub const fn is_terminal(self) -> bool
pub const fn is_terminal(self) -> bool
True for the “value already moved” terminal variants.
Complete and Error are the lifecycle terminators per R1.3.4.a.
Teardown is destruction, not termination of message flow per se.
Trait Implementations§
impl Copy for Message
impl Eq for Message
impl StructuralPartialEq for Message
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnsafeUnpin for Message
impl UnwindSafe for Message
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.