gobject_ast/model/statement/
variable_decl.rs1use serde::Serialize;
2
3use crate::model::{Expression, SourceLocation, TypeInfo};
4
5#[derive(Debug, Clone, Serialize)]
6pub struct VariableDecl {
7 pub type_info: TypeInfo,
8 pub name: String,
9 #[serde(skip_serializing_if = "std::ops::Not::not")]
10 pub is_static: bool,
11 #[serde(skip)]
13 pub name_location: SourceLocation,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub initializer: Option<Expression>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub array_size: Option<Expression>,
19 pub location: SourceLocation,
20}
21
22impl VariableDecl {
23 pub fn type_name(&self) -> &str {
25 &self.type_info.full_text
26 }
27
28 pub fn is_simple_identifier(&self) -> bool {
31 !self.name.contains("->") && !self.name.contains('.')
32 }
33}