diff options
| author | Weicao-CatilGrass <1992414357@qq.com> | 2025-04-22 00:39:02 +0800 |
|---|---|---|
| committer | Weicao-CatilGrass <1992414357@qq.com> | 2025-04-22 00:39:02 +0800 |
| commit | aeff5141bb6efb0a94d74b9e852c2c10074360b2 (patch) | |
| tree | d3ecbd33131c34e8efe7559ca295ec50cff1affd /core | |
| parent | 1b09bfe2ebdeb0fbe8c2282b9afd3ab63d7b8c2d (diff) | |
.
Diffstat (limited to 'core')
| -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 |
