diff options
Diffstat (limited to 'core/src/message_encoder.rs')
| -rw-r--r-- | core/src/message_encoder.rs | 70 |
1 files changed, 3 insertions, 67 deletions
diff --git a/core/src/message_encoder.rs b/core/src/message_encoder.rs index a8575d0..cda7382 100644 --- a/core/src/message_encoder.rs +++ b/core/src/message_encoder.rs @@ -1,71 +1,7 @@ -use std::io::{Read, Write}; -use bincode::error::{DecodeError, EncodeError}; -use serde::de::DeserializeOwned; -use serde::Serialize; -use crate::messages::{ClientMessage, PlayerMessage, ServerCallbackMessage, ServerMessage}; +use crate::messages::PlayerMessage; -pub trait MessageEncoder: Serialize + DeserializeOwned { - fn encode(&self) -> Result<usize, EncodeError>; - fn decode(encode: usize) -> Result<Self, DecodeError> - where - Self: Sized; -} +impl PlayerMessage { + pub fn encode (&self) { -impl MessageEncoder for PlayerMessage { - fn encode(&self) -> Result<usize, EncodeError> { - bincode::serde::encode_into_std_write(self, &mut std::io::sink(), bincode::config::standard()) - } - - fn decode(encode: &usize) -> Result<Self, DecodeError> { - bincode::serde::decode_from_std_read(&mut &encode[..], bincode::config::standard()) - } -} - -impl MessageEncoder for ServerMessage { - fn encode(&self) -> Result<usize, EncodeError> { - bincode::serde::encode_into_std_write(self, &mut std::io::sink(), bincode::config::standard()) - } - - fn decode(encode: usize) -> Result<Self, DecodeError> { - bincode::serde::decode_from_std_read(&mut &encode[..], bincode::config::standard()) - } -} - -impl MessageEncoder for ClientMessage { - fn encode(&self) -> Result<usize, EncodeError> { - bincode::serde::encode_into_std_write(self, &mut std::io::sink(), bincode::config::standard()) - } - - fn decode(encode: usize) -> Result<Self, DecodeError> { - bincode::serde::decode_from_std_read(&mut &encode[..], bincode::config::standard()) - } -} - -impl MessageEncoder for ServerCallbackMessage { - fn encode(&self) -> Result<usize, EncodeError> { - bincode::serde::encode_into_std_write(self, &mut std::io::sink(), bincode::config::standard()) - } - - fn decode(encode: usize) -> Result<Self, DecodeError> { - bincode::serde::decode_from_std_read(&mut &encode[..], bincode::config::standard()) - } -} - -#[cfg(test)] -mod encoder_tests { - use crate::message_encoder::MessageEncoder; - use crate::messages::PlayerMessage; - - - #[test] - fn test_encode_decode() { - - let msg: String = String::from("Hello, World!"); - - let msg_player = PlayerMessage::Message(msg); - let msg_player_encoded = (&msg_player).encode().expect("Encode failed"); - let msg_player_decoded = PlayerMessage::decode(msg_player_encoded).expect("Decode failed"); - - assert!(msg_player == msg_player_decoded) } }
\ No newline at end of file |
