aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorWeicao-CatilGrass <1992414357@qq.com>2025-04-22 00:39:02 +0800
committerWeicao-CatilGrass <1992414357@qq.com>2025-04-22 00:39:02 +0800
commitaeff5141bb6efb0a94d74b9e852c2c10074360b2 (patch)
treed3ecbd33131c34e8efe7559ca295ec50cff1affd /core
parent1b09bfe2ebdeb0fbe8c2282b9afd3ab63d7b8c2d (diff)
.
Diffstat (limited to 'core')
-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