team04_server/messages/
connected.rs

1use crate::lobby::state::clients::{PlayerId, ReconnectToken};
2
3use super::*;
4
5pub struct Connected {
6    reconnect_token: ReconnectToken,
7    player_id: PlayerId,
8}
9
10pub struct ConnectedAsSpectator;
11
12impl Connected {
13    pub fn new(reconnect_token: ReconnectToken, player_id: PlayerId) -> Self {
14        Self {
15            reconnect_token,
16            player_id,
17        }
18    }
19}
20
21impl ConnectedAsSpectator {
22    pub fn new() -> Self {
23        Self
24    }
25}
26
27impl MessageTx for Connected {
28    fn serialize(&self) -> String {
29        #[derive(Serialize)]
30        struct Connected {
31            #[serde(rename = "messageType")]
32            message_type: &'static str,
33            #[serde(rename = "reconnectToken")]
34            reconnect_token: ReconnectToken,
35            #[serde(rename = "playerID")]
36            player_id: PlayerId,
37        }
38
39        let message = Connected {
40            message_type: "CONNECTED",
41            reconnect_token: self.reconnect_token,
42            player_id: self.player_id,
43        };
44
45        serialize(&message)
46    }
47}
48
49impl MessageTx for ConnectedAsSpectator {
50    fn serialize(&self) -> String {
51        #[derive(Serialize)]
52        struct Connected {
53            #[serde(rename = "messageType")]
54            message_type: &'static str,
55            #[serde(rename = "reconnectToken")]
56            reconnect_token: (),
57            #[serde(rename = "playerID")]
58            player_id: (),
59        }
60
61        let message = Connected {
62            message_type: "CONNECTED",
63            reconnect_token: (),
64            player_id: (),
65        };
66
67        serialize(&message)
68    }
69}