use identity::Identity;
use netmod::Recipient;
use serde::{Deserialize, Serialize};
pub type Signature = Vec<u8>;
#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, Eq)]
pub struct MsgId(pub [u8; 16]);
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug)]
pub struct Message {
pub id: MsgId,
pub sender: Identity,
pub recipient: Recipient,
pub payload: Vec<u8>,
pub signature: Signature,
}
impl Message {
pub fn build_signed(id: MsgId, sender: Identity, recipient: Recipient, data: Vec<u8>) -> Self {
let payload = data;
let signature = vec![1, 3, 1, 2];
Self {
id,
sender,
recipient,
payload,
signature,
}
}
}