#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use crate::db_parser::common_event::argument_type::ArgumentType;
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(PartialEq, Clone)]
pub struct Argument {
argument_type: ArgumentType,
argument_name: String,
default_value: Option<u32>,
db_options: Vec<String>,
db_references: Vec<u32>
}
impl Argument {
pub fn new(
argument_type: u8,
argument_name: String,
default_value: Option<u32>,
db_options: Vec<String>,
db_references: Vec<u32>
) -> Self {
Self {
argument_type: ArgumentType::new(argument_type),
argument_name,
default_value,
db_options,
db_references
}
}
pub fn is_number(&self) -> bool {
self.default_value.is_some()
}
pub fn is_string(&self) -> bool {
self.default_value.is_none()
}
pub fn argument_type(&self) -> &ArgumentType {
&self.argument_type
}
pub fn argument_name(&self) -> &str {
&self.argument_name
}
pub fn default_value(&self) -> Option<u32> {
self.default_value
}
pub fn db_options(&self) -> &Vec<String> {
&self.db_options
}
pub fn db_references(&self) -> &Vec<u32> {
&self.db_references
}
}