use serde::{Deserialize, Serialize};
use super::range::Range;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Argument {
pub value: String,
pub range: Range,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Arguments {
pub arguments: Vec<Argument>,
pub range: Range,
}
impl Arguments {
pub fn new() -> Self {
Arguments {
arguments: Vec::new(),
range: Range::null(),
}
}
pub fn update(mut self, other: &Arguments) -> Self {
if !other.arguments.is_empty() {
self.arguments = other.arguments.clone();
}
self
}
}
impl ToString for Arguments {
fn to_string(&self) -> String {
self.arguments
.iter()
.map(|x| x.value.clone())
.collect::<Vec<String>>()
.join(",")
}
}