use super::*;
use crate::ArgumentKeyNode;
#[cfg(feature = "pretty-print")]
mod display;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct WhileLoopNode {
pub condition: ConditionType,
pub body: Vec<StatementNode>,
pub r#else: Vec<StatementNode>,
pub span: Range<u32>,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct ForLoopNode {
pub pattern: PatternType,
pub iterator: ExpressionNode,
pub condition: ConditionType,
pub body: Vec<StatementNode>,
pub r#else: Vec<StatementNode>,
pub span: Range<u32>,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum PatternType {
Tuple(Vec<ArgumentKeyNode>),
Case,
}