rsa_msg_packets/communication/
to.rs

1use std::collections::VecDeque;
2
3use uuid::Uuid;
4
5use crate::{types::ByteMessage, util::{converter::uuid_to_decque, vec::{decque_to_vec, vec_to_decque}, modes::Modes, tools::uuid_from_vec}};
6
7pub struct ToMsg {
8    pub msg: Vec<u8>,
9    pub receiver: Uuid,
10}
11
12impl ByteMessage for ToMsg {
13    fn serialize(&self) -> Vec<u8> {
14        let mut merged: VecDeque<u8> = VecDeque::new();
15
16        let mut b_msg = vec_to_decque(self.msg.clone());
17        let mut b_receiver = uuid_to_decque(&self.receiver);
18
19        merged.append(&mut b_receiver);
20        merged.append(&mut b_msg);
21
22        return Modes::To.get_send(&decque_to_vec(merged));
23    }
24
25    fn deserialize(data: &Vec<u8>) -> anyhow::Result<Self> {
26        let mut data = data.clone();
27
28        let receiver = uuid_from_vec(&mut data)?;
29
30        return Ok(ToMsg {
31            msg: data,
32            receiver
33        });
34    }
35}