distribute/codec/tagged
Types
A message with tag and version information for protocol safety.
pub opaque type TaggedMessage(payload)
Values
pub fn decoder(
expected_tag: String,
expected_version: Int,
payload_decoder: fn(BitArray) -> Result(
payload,
codec.DecodeError,
),
) -> fn(BitArray) -> Result(
TaggedMessage(payload),
codec.DecodeError,
)
Create a decoder for tagged messages with validation. This ensures received messages match the expected tag and version.
pub fn encoder(
payload_encoder: fn(payload) -> Result(
BitArray,
codec.EncodeError,
),
) -> fn(TaggedMessage(payload)) -> Result(
BitArray,
codec.EncodeError,
)
Create an encoder for tagged messages. This embeds the tag and version in the binary format.
pub fn new(
tag: String,
version: Int,
payload: payload,
) -> TaggedMessage(payload)
Create a tagged message.
pub fn payload(msg: TaggedMessage(payload)) -> payload
Extract the payload from a tagged message.
pub fn version(msg: TaggedMessage(payload)) -> Int
Get the version from a tagged message.