use super::literals::LiteralNode;
#[derive(Debug, Clone, PartialEq)]
pub enum PatternNode {
Literal(LiteralNode),
Identifier(String),
Wildcard,
EnumVariant {
name: String,
args: Vec<PatternNode>,
},
List {
elements: Vec<PatternNode>,
rest: Option<Box<PatternNode>>, },
}
#[derive(Debug, Clone, PartialEq)]
pub struct MatchArm {
pub pattern: PatternNode,
pub guard: Option<super::nodes::ExpressionNode>,
pub body: Vec<super::nodes::StatementNode>,
}