use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct Node {
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub elements: Vec<crate::models::ast::DictItem>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub params: Vec<crate::models::ast::Property>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub body: Vec<crate::models::ast::Statement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operator: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub left: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub right: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub callee: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub arguments: Vec<crate::models::ast::Expression>,
#[serde(skip_serializing_if = "Option::is_none")]
pub test: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alternate: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub consequent: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub property: Option<crate::models::ast::PropertyKey>,
#[serde(skip_serializing_if = "Option::is_none")]
pub array: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub index: Option<Box<crate::models::ast::Expression>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub properties: Vec<crate::models::ast::Property>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expression: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub argument: Option<Box<crate::models::ast::Expression>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub call: Option<crate::models::ast::CallExpression>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub values: Vec<crate::models::ast::Duration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
impl Node {
pub fn new() -> Self {
Self::default()
}
}