gobject_ast/model/statement/
for_stmt.rs1use serde::Serialize;
2
3use crate::{
4 VariableDecl,
5 model::{SourceLocation, expression::Expression, statement::Statement},
6};
7
8#[derive(Debug, Clone, Serialize)]
10pub enum ForInit {
11 Expr(Box<Expression>),
13 Decl(Box<VariableDecl>),
16}
17
18#[derive(Debug, Clone, Serialize)]
19pub struct ForStatement {
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub initializer: Option<ForInit>,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub condition: Option<Box<Expression>>,
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub update: Option<Box<Expression>>,
28 #[serde(skip_serializing_if = "Vec::is_empty")]
30 pub body: Vec<Statement>,
31 pub location: SourceLocation,
32}