team04_server/messages/
lightsaber_options.rs

1use super::*;
2
3#[derive(Serialize, Clone, Copy, Debug)]
4#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
5pub struct LightsaberOptions {
6    pub red: f64,
7    pub green: f64,
8    pub blue: f64,
9}
10
11impl MessageTx for LightsaberOptions {
12    fn serialize(&self) -> String {
13        #[derive(Serialize)]
14        struct LightsaberOptionsOuter {
15            #[serde(rename = "messageType")]
16            message_type: &'static str,
17            options: LightsaberOptions,
18        }
19
20        let message = LightsaberOptionsOuter {
21            message_type: "LIGHTSABER_OPTIONS",
22            options: *self,
23        };
24
25        serialize(&message)
26    }
27}