use crate::serialization::error::SerializationError;
use crate::serialization::deserializable::Deserializable;
use crate::serialization::serializable::Serializable;
use libmilkyway_derive::{Deserializable, Serializable};
use crate::message::common::{AsMessage, Message};
use crate::message::types::MessageType;
use crate::serialization::serializable::Serialized;
#[derive(Serializable, Deserializable)]
pub struct ExecData{
pub module_id: u64,
pub cmd_data: Serialized
}
impl ExecData{
pub fn new<T: Serializable>(module_id: u64, data: &T) -> Self{
ExecData{
module_id,
cmd_data: data.serialize(),
}
}
}
impl AsMessage for ExecData{
fn as_message(&self) -> Message {
Message{
id: 0,
timestamp: 0,
message_type: MessageType::Exec,
data: Some(self.serialize()),
signature: None,
source: 0,
destination: 0,
}
}
}