From 5dab336049dbc6817e9ff212998690f59f6bbfa8 Mon Sep 17 00:00:00 2001 From: Katharina Fey Date: Thu, 11 Feb 2021 20:29:42 +0100 Subject: rstnode: add network packet envelope to wire types --- games/rstnode/rst-core/src/wire/env.rs | 20 ++++++++++++++++++++ games/rstnode/rst-core/src/wire/mod.rs | 13 ++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 games/rstnode/rst-core/src/wire/env.rs (limited to 'games/rstnode/rst-core') diff --git a/games/rstnode/rst-core/src/wire/env.rs b/games/rstnode/rst-core/src/wire/env.rs new file mode 100644 index 000000000000..fd5ed690453e --- /dev/null +++ b/games/rstnode/rst-core/src/wire/env.rs @@ -0,0 +1,20 @@ +use serde::{de::DeserializeOwned, Deserialize, Serialize}; + +#[repr(C)] +#[derive(Serialize, Deserialize)] +pub struct Envelope { + size: u64, + data: Vec, +} + +impl Envelope { + pub fn pack(d: T) -> Self { + let data = bincode::serialize(&d).unwrap(); + let size = data.len() as u64; + Self { size, data } + } + + pub fn unpack(self) -> T { + bincode::deserialize(&self.data).unwrap() + } +} diff --git a/games/rstnode/rst-core/src/wire/mod.rs b/games/rstnode/rst-core/src/wire/mod.rs index cd311383a83a..493f0bcb6885 100644 --- a/games/rstnode/rst-core/src/wire/mod.rs +++ b/games/rstnode/rst-core/src/wire/mod.rs @@ -3,20 +3,19 @@ mod action; pub use action::*; -mod req; -pub use req::*; +mod env; +pub use env::*; mod resp; pub use resp::*; +mod req; +pub use req::*; + mod update; pub use update::*; -use crate::{ - data::{Color, Player}, - map::Map, - Id, -}; +use crate::{data::Color, Id}; use serde::{Deserialize, Serialize}; /// An alias for a User's ID -- cgit v1.2.3