#include "CreateMemberInformationPostProcessor.h" #include bool CreateMemberInformationPostProcessor::CreateMemberInformationForStructure(IDataRepository* repository, StructureInformation* structure) const { for (const auto& member : structure->m_definition->m_members) { StructureInformation* typeInfo = nullptr; const auto* currentDefinition = member->m_type_declaration->m_type; while (currentDefinition->GetType() == DataDefinitionType::TYPEDEF) { currentDefinition = dynamic_cast(currentDefinition)->m_type_declaration->m_type; } const auto* memberDefinition = dynamic_cast(currentDefinition); if (memberDefinition != nullptr) typeInfo = repository->GetInformationFor(memberDefinition); structure->m_ordered_members.emplace_back(std::make_unique(structure, typeInfo, member.get())); } return true; } bool CreateMemberInformationPostProcessor::PostProcess(IDataRepository* repository) { const auto& allStructureInformation = repository->GetAllStructureInformation(); return std::ranges::all_of(allStructureInformation, [this, repository](StructureInformation* structure) { return CreateMemberInformationForStructure(repository, structure); }); }