wolfrpg_map_parser/command/set_variable_command/
operators.rs

1#[cfg(feature = "serde")]
2use serde::{Serialize, Deserialize};
3use crate::command::set_variable_command::assignment::Assignment;
4use crate::command::set_variable_command::calculation::Calculation;
5
6#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
7#[derive(PartialEq, Clone)]
8pub struct Operators {
9    assignment: Assignment,
10    calculation: Calculation,
11}
12
13impl Operators {
14    pub fn new(operators: u8) -> Self {
15        Self {
16            assignment: Assignment::from_u8(operators & 0x0f),
17            calculation: Calculation::from_u8(operators >> 4),
18        }
19    }
20
21    pub fn assignment(&self) -> &Assignment {
22        &self.assignment
23    }
24
25    pub fn assignment_mut(&mut self) -> &mut Assignment {
26        &mut self.assignment
27    }
28
29    pub fn calculation(&self) -> &Calculation {
30        &self.calculation
31    }
32
33    pub fn calculation_mut(&mut self) -> &mut Calculation {
34        &mut self.calculation
35    }
36}