Sigil documentation
ReferenceRust referencesigil-execution

sigil-execution · message

Source declarations, signatures and documentation for message.

Source: sigil/node/sigil-execution/src/message.rs. SHA-256: 460f10f723a2d81a3f2d0f150250dc14b4bc2a7cc6d2ec4c3d4fe7afbf4bdc26.

This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.

message::MessageStatus

Status of a cross-zone message.

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum MessageStatus {
    /// Message is waiting to be delivered.
    Pending,
    /// Message was successfully delivered to the target zone.
    Delivered,
    /// Message delivery failed (e.g., target zone not found or suspended).
    Failed,
    /// Message expired before delivery.
    Expired,
}

Source line: 13.

message::CrossZoneMessage

A cross-zone message sent from one Organization Zone to another.

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CrossZoneMessage {
/// Unique message identifier.

pub id: String,
/// Zone ID of the sender.

pub source_zone: String,
/// Zone ID of the intended recipient.

pub target_zone: String,
/// Serialized message payload.

pub payload: Vec<u8>,
/// Gas forwarded to the target zone for processing this message.

pub gas_forwarded: u64,
/// Block height at which this message was created.

pub created_height: u64,
/// Current delivery status.

pub status: MessageStatus
}

Source line: 26.

message::MessageQueue

Bounded queue for pending cross-zone messages.

This queue enforces a maximum size to prevent unbounded resource consumption during heavy cross-zone messaging.

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MessageQueue {

}

Source line: 48.

message::MessageQueue::new

Create a new message queue with the given maximum capacity.

pub fn new(max_pending: usize) -> Self;

Source line: 55.

message::MessageQueue::enqueue

Add a message to the queue.

Returns Err(ExecutionError::CrossZoneError) if the queue is full.

pub fn enqueue(&mut self, msg: CrossZoneMessage) -> Result<(), ExecutionError>;

Source line: 65.

message::MessageQueue::dequeue_for_zone

Drain and return all pending messages destined for the given zone.

Returned messages are removed from the queue.

pub fn dequeue_for_zone(&mut self, zone_id: &str) -> Vec<CrossZoneMessage>;

Source line: 79.

message::MessageQueue::pending_count

Returns the number of messages currently in the queue.

pub fn pending_count(&self) -> usize;

Source line: 96.

message::MessageQueue::expire_old

Remove messages older than max_age blocks, marking them as expired.

Returns the number of messages expired.

pub fn expire_old(&mut self, current_height: u64, max_age: u64) -> usize;

Source line: 103.

message::MessageQueue::messages

Returns a read-only view of all messages in the queue.

pub fn messages(&self) -> &[CrossZoneMessage];

Source line: 122.

message::MessageQueue::capacity

Returns the maximum capacity of this queue.

pub fn capacity(&self) -> usize;

Source line: 127.

On this page