gobject_ast/model/expression/
initializer_list.rs1use serde::Serialize;
2
3use crate::model::{SourceLocation, expression::Expression};
4
5#[derive(Debug, Clone, Serialize)]
6pub struct InitializerListExpression {
7 #[serde(skip_serializing_if = "Vec::is_empty")]
8 pub items: Vec<InitializerItem>,
9 pub location: SourceLocation,
10}
11
12#[derive(Debug, Clone, Serialize)]
13pub struct InitializerItem {
14 #[serde(skip_serializing_if = "Option::is_none")]
16 pub designator: Option<Designator>,
17 pub value: Box<Expression>,
19}
20
21#[derive(Debug, Clone, Serialize)]
22pub enum Designator {
23 Field(String),
25 Subscript(Box<Expression>),
27}