team04_server/messages/
connected.rs1use 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}