wolfrpg_map_parser/command/set_variable_plus_command/
assignment_operator.rs

1#[cfg(feature = "serde")]
2use serde::{Serialize, Deserialize};
3
4#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
5#[derive(PartialEq, Clone)]
6pub enum AssignmentOperator {
7    Equals          = 0x00,
8    PlusEquals      = 0x01,
9    MinusEquals     = 0x02,
10    TimesEquals     = 0x03,
11    DivideEquals    = 0x04,
12    RemainderEquals = 0x05,
13    LowerBound      = 0x06,
14    UpperBound      = 0x07,
15    Absolute        = 0x08,
16    Unknown
17}
18
19impl AssignmentOperator {
20    pub const fn new(operator: u8) -> Self {
21        match operator {
22            0x00 => AssignmentOperator::Equals,
23            0x01 => AssignmentOperator::PlusEquals,
24            0x02 => AssignmentOperator::MinusEquals,
25            0x03 => AssignmentOperator::TimesEquals,
26            0x04 => AssignmentOperator::DivideEquals,
27            0x05 => AssignmentOperator::RemainderEquals,
28            0x06 => AssignmentOperator::LowerBound,
29            0x07 => AssignmentOperator::UpperBound,
30            0x08 => AssignmentOperator::Absolute,
31            _ => AssignmentOperator::Unknown
32        }
33    }
34}