use super::{envelope::ActorEnvelope, state::DeliveryRecord};
use std::collections::VecDeque;
#[derive(Debug, Default)]
pub struct ActorMailbox {
queue: VecDeque<ActorEnvelope>,
}
impl ActorMailbox {
pub fn push(&mut self, message: ActorEnvelope) {
self.queue.push_back(message);
}
pub fn pop(&mut self) -> Option<ActorEnvelope> {
self.queue.pop_front()
}
pub fn is_empty(&self) -> bool {
self.queue.is_empty()
}
}
#[derive(Debug, Clone)]
pub struct MailboxDelivery {
pub message: ActorEnvelope,
pub record: DeliveryRecord,
}