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.