use crate::types::{Address, Id, Recipient, SeqBuilder, SeqData, ID_LEN};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub struct Frame {
pub sender: Address,
pub recipient: Recipient,
pub seq: SeqData,
pub payload: Vec<u8>,
}
impl Frame {
pub fn dummy() -> Self {
SeqBuilder::new(
Address::from_bytes(&[0; ID_LEN]),
Recipient::Flood(Address::random()),
Id::random(),
)
.add(vec![0x41, 0x43, 0x41, 0x42])
.build()
.remove(0)
}
pub fn inline_flood(sender: Address, scope: Address, payload: Vec<u8>) -> Frame {
SeqBuilder::new(sender, Recipient::Flood(scope), Id::random())
.add(payload)
.build()
.remove(0)
}
pub fn seqid(&self) -> Id {
self.seq.seqid
}
}