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