dem/netmsg_doer/
sound_fade.rs

1use super::*;
2
3impl Doer for SvcSoundFade {
4    fn id(&self) -> u8 {
5        48
6    }
7
8    fn parse(i: &[u8], _: AuxRefCell) -> Result<Self> {
9        map(
10            tuple((le_u8, le_u8, le_u8, le_u8)),
11            |(initial_percent, hold_time, fade_out_time, fade_in_time)| SvcSoundFade {
12                initial_percent,
13                hold_time,
14                fade_out_time,
15                fade_in_time,
16            },
17        )(i)
18    }
19
20    fn write(&self, _: AuxRefCell) -> ByteVec {
21        let mut writer = ByteWriter::new();
22
23        writer.append_u8(self.id());
24
25        writer.append_u8(self.initial_percent);
26        writer.append_u8(self.hold_time);
27        writer.append_u8(self.fade_in_time);
28        writer.append_u8(self.fade_out_time);
29
30        writer.data
31    }
32}