mago_syntax/ast/ast/
conditional.rs1use serde::Serialize;
2
3use mago_span::HasSpan;
4use mago_span::Span;
5
6use crate::ast::ast::expression::Expression;
7
8#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, PartialOrd, Ord)]
9pub struct Conditional<'arena> {
10 pub condition: &'arena Expression<'arena>,
11 pub question_mark: Span,
12 pub then: Option<&'arena Expression<'arena>>,
13 pub colon: Span,
14 pub r#else: &'arena Expression<'arena>,
15}
16
17impl HasSpan for Conditional<'_> {
18 fn span(&self) -> Span {
19 self.condition.span().join(self.r#else.span())
20 }
21}