wolfrpg_map_parser/db_parser/models/common_event/
argument.rs1#[cfg(feature = "serde")]
2use serde::{Deserialize, Serialize};
3use crate::db_parser::common_event::argument_type::ArgumentType;
4
5#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
6#[derive(PartialEq, Clone)]
7pub struct Argument {
8 argument_type: ArgumentType,
9 argument_name: String,
10 default_value: Option<u32>,
11 db_options: Vec<String>,
12 db_references: Vec<u32>
13}
14
15impl Argument {
16 pub fn new(
17 argument_type: u8,
18 argument_name: String,
19 default_value: Option<u32>,
20 db_options: Vec<String>,
21 db_references: Vec<u32>
22 ) -> Self {
23 Self {
24 argument_type: ArgumentType::new(argument_type),
25 argument_name,
26 default_value,
27 db_options,
28 db_references
29 }
30 }
31
32 pub fn is_number(&self) -> bool {
34 self.default_value.is_some()
35 }
36
37 pub fn is_string(&self) -> bool {
39 self.default_value.is_none()
40 }
41
42 pub fn argument_type(&self) -> &ArgumentType {
44 &self.argument_type
45 }
46
47 pub fn argument_name(&self) -> &str {
49 &self.argument_name
50 }
51
52 pub fn default_value(&self) -> Option<u32> {
54 self.default_value
55 }
56
57 pub fn db_options(&self) -> &Vec<String> {
59 &self.db_options
60 }
61
62 pub fn db_references(&self) -> &Vec<u32> {
64 &self.db_references
65 }
66}