use alloc::collections::VecDeque;
use codec::{Decode, Encode};
use jam_types::{ServiceId, Slot};
#[derive(Clone, Copy, Encode, Decode, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ServiceMessage {
#[codec(compact)]
pub index: u64,
pub source: ServiceId,
}
#[derive(Clone, Encode, Decode, Debug)]
pub struct OutgoingServiceMessage {
pub slot: Slot,
pub inner: ServiceMessage,
}
#[derive(Encode, Decode, Debug)]
pub struct MessageQueue<T> {
#[codec(compact)]
pub counter: u64,
pub messages: VecDeque<T>,
}
impl<T> Default for MessageQueue<T> {
fn default() -> Self {
Self { counter: 0, messages: VecDeque::new() }
}
}