wolfrpg_map_parser/command/save_load_command/
save_variable.rs1#[cfg(feature = "serde")]
2use serde::{Serialize, Deserialize};
3use crate::command::save_load_command::parser::parse_variable_fields;
4
5#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
6#[derive(PartialEq, Clone)]
7pub struct SaveVariable {
8 source_variable: u32,
9 save_number: u32,
10 target_variable: u32,
11 source_is_pointer: bool
12}
13
14impl SaveVariable {
15 pub(crate) fn parse(bytes: &[u8]) -> (usize, Self) {
16 let (mut offset, (source_variable, save_number, target_variable, source_is_pointer))
17 : (usize, (u32, u32, u32, bool)) = parse_variable_fields(bytes);
18
19 offset += 3; (offset, Self {
22 source_variable,
23 save_number,
24 target_variable,
25 source_is_pointer
26 })
27 }
28
29 pub fn source_variable(&self) -> u32 {
30 self.source_variable
31 }
32
33 pub fn source_variable_mut(&mut self) -> &mut u32 {
34 &mut self.source_variable
35 }
36
37 pub fn save_number(&self) -> u32 {
38 self.save_number
39 }
40
41 pub fn save_number_mut(&mut self) -> &mut u32 {
42 &mut self.save_number
43 }
44
45 pub fn target_variable(&self) -> u32 {
46 self.target_variable
47 }
48
49 pub fn target_variable_mut(&mut self) -> &mut u32 {
50 &mut self.target_variable
51 }
52
53 pub fn source_is_pointer(&self) -> bool {
54 self.source_is_pointer
55 }
56
57 pub fn source_is_pointer_mut(&mut self) -> &mut bool {
58 &mut self.source_is_pointer
59 }
60}