wolfrpg_map_parser/command/
save_load_command.rs1#[cfg(feature = "serde")]
2use serde::{Serialize, Deserialize};
3use crate::command::save_load_command::base::Base;
4use crate::command::save_load_command::load_variable::LoadVariable;
5use crate::command::save_load_command::save_variable::SaveVariable;
6
7pub mod base;
8pub mod operation;
9pub mod save_variable;
10mod parser;
11pub mod load_variable;
12
13#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
14#[derive(PartialEq, Clone)]
15pub enum SaveLoadCommand {
16 Base(Base),
17 LoadVariable(LoadVariable),
18 SaveVariable(SaveVariable),
19}
20
21impl SaveLoadCommand {
22 pub(crate) fn parse_base(bytes: &[u8]) -> (usize, Self) {
23 let (bytes_read, state): (usize, Base) = Base::parse(bytes);
24
25 (bytes_read, Self::Base(state))
26 }
27
28 pub(crate) fn parse_load_variable(bytes: &[u8]) -> (usize, Self) {
29 let (bytes_read, state): (usize, LoadVariable) = LoadVariable::parse(bytes);
30
31 (bytes_read, Self::LoadVariable(state))
32 }
33
34 pub(crate) fn parse_save_variable(bytes: &[u8]) -> (usize, Self) {
35 let (bytes_read, state): (usize, SaveVariable) = SaveVariable::parse(bytes);
36
37 (bytes_read, Self::SaveVariable(state))
38 }
39}