wolfrpg_map_parser/command/input_key_command/input_toggle/
basic.rs1use crate::command::input_key_command::input_toggle::basic_inputs::BasicInputs;
2use crate::command::input_key_command::input_toggle::enabled_inputs::EnabledInputs;
3#[cfg(feature = "serde")]
4use serde::{Serialize, Deserialize};
5
6#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
7#[derive(PartialEq, Clone)]
8pub struct Basic {
9 inputs: BasicInputs,
10 enabled_inputs: EnabledInputs
11}
12
13impl Basic {
14 pub(crate) fn parse(bytes: &[u8]) -> (usize, Self) {
15 let mut offset: usize = 0;
16
17 let inputs: u8 = bytes[offset];
18 let inputs: BasicInputs = BasicInputs::new(inputs);
19 offset += 1;
20
21 let enabled_inputs: u8 = bytes[offset];
22 let enabled_inputs: EnabledInputs = EnabledInputs::new(enabled_inputs);
23 offset += 1;
24
25 offset += 1; offset += 1; (offset, Self {
30 inputs,
31 enabled_inputs
32 })
33 }
34
35 pub fn inputs(&self) -> &BasicInputs {
36 &self.inputs
37 }
38
39 pub fn inputs_mut(&mut self) -> &mut BasicInputs {
40 &mut self.inputs
41 }
42
43 pub fn enabled_inputs(&self) -> &EnabledInputs {
44 &self.enabled_inputs
45 }
46
47 pub fn enabled_inputs_mut(&mut self) -> &mut EnabledInputs {
48 &mut self.enabled_inputs
49 }
50}