46 std::vector<DesignatedInitializerField>
fields,
66 return variable_name_;
72 [[nodiscard]]
const std::vector<DesignatedInitializerField> &
fields()
const
89 [[nodiscard]] std::optional<std::string>
field_value(
const std::string &field_name)
const
91 for (
const auto &field : fields_) {
92 if (field.field_name() == field_name) {
100 std::string struct_type_;
101 std::string variable_name_;
102 std::vector<DesignatedInitializerField> fields_;
Represents a parsed C struct variable declaration with its initializer fields.
const std::vector< DesignatedInitializerField > & fields() const
Returns all designated initializer fields.
const std::string & struct_type() const
Returns the struct type name.
const SourcePosition & position() const
Returns the source position of the variable name.
std::optional< std::string > field_value(const std::string &field_name) const
Looks up the value of a field by name.
StructInitializerDeclaration(std::string struct_type, std::string variable_name, std::vector< DesignatedInitializerField > fields, SourcePosition position)
Constructs a StructInitializerDeclaration.
const std::string & variable_name() const
Returns the variable name.
Represents a position within source content.