use super::*;
#[cfg(feature = "pretty-print")]
mod display;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct IfStatement {
pub branches: Vec<IfConditionNode>,
pub else_branch: ElseStatement,
pub span: Range<u32>,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct IfConditionNode {
pub condition: ExpressionNode,
pub body: StatementBlock,
pub span: Range<u32>,
}
#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
pub struct ElseStatement {
pub statements: Vec<StatementNode>,
pub span: Range<u32>,
}
impl IfStatement {
pub fn as_switch(&self) -> SwitchStatement {
todo!()
}
}
impl WhileConditionNode {
pub fn is_empty(&self) -> bool {
match self {
WhileConditionNode::AlwaysTrue => true,
_ => false,
}
}
}