pub struct SlotFill {
pub dest_suffix: Vec<u8>,
pub payload: Vec<u8>,
pub trigger_only: bool,
pub type_hash: u64,
}Expand description
One slot-fill record carried inside a WireEnvelope. Each fill
names its destination via a multiaddr suffix that’s appended to
the receiver’s self-identity to form the full address.
Fields§
§dest_suffix: Vec<u8>Per-slot multiaddr suffix encoded via the canonical Address
binary form. Two shapes per ADDRESSING.md:
/graph/{id}/site/{site} — data-plane slot fill
/component/{cref}/op/{name} — control-plane component dispatch
The receiver parses the suffix; the trailing Site/Op segment
identifies the decoder + dispatch target.
payload: Vec<u8>Wire-encoded bytes; empty when trigger_only=true. For
data-plane fills the decoder comes from the Site’s declared
TypeMeta. For control-plane fills the component decodes its
own payload.
trigger_only: boolTrue when the consumer only reads the firing signal, not the
value. Set by the analyzer’s analyze_wire_edges pass.
type_hash: u64Phase 12.2 — Per-fill type-hash discriminator. Stamped by the
sender’s wire encoder from the slot value’s static
T::HASH constant (every wire-eligible type derives a
stable u64 hash). Receiver dispatches via
if fill.type_hash == T::HASH { T::deserialize(&fill.payload) },
so mis-encoded fills surface as an explicit type mismatch
instead of silently deserializing as the wrong type
(S10 closure).
Trait Implementations§
Source§impl Message for SlotFill
impl Message for SlotFill
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.