aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/message_encoder.rs70
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