Sort StructuredDataDef members and entries alphabetically after parsing

This commit is contained in:
Jan
2022-03-22 15:09:07 +01:00
parent 1b6f2ab9fa
commit ab5a998903
7 changed files with 19 additions and 17 deletions

View File

@ -47,7 +47,7 @@ uint32_t CommonStructuredDataEnum::CalculateChecksum(const uint32_t initialValue
const auto littleEndianElementCount = endianness::ToLittleEndian(ElementCount());
checksum = crc32(checksum, reinterpret_cast<const Bytef*>(&littleEndianElementCount), sizeof(littleEndianElementCount));
for(const auto& entry : m_entries)
for (const auto& entry : m_entries)
{
checksum = crc32(checksum, reinterpret_cast<const Bytef*>(entry.m_name.c_str()), entry.m_name.size() + 1);
@ -58,10 +58,18 @@ uint32_t CommonStructuredDataEnum::CalculateChecksum(const uint32_t initialValue
return checksum;
}
void CommonStructuredDataEnum::SortEntries()
void CommonStructuredDataEnum::SortEntriesByOffset()
{
std::sort(m_entries.begin(), m_entries.end(), [](const CommonStructuredDataEnumEntry& e1, const CommonStructuredDataEnumEntry& e2)
{
return e1.m_value < e2.m_value;
});
}
void CommonStructuredDataEnum::SortEntriesByName()
{
std::sort(m_entries.begin(), m_entries.end(), [](const CommonStructuredDataEnumEntry& e1, const CommonStructuredDataEnumEntry& e2)
{
return e1.m_name < e2.m_name;
});
}

View File

@ -27,5 +27,6 @@ struct CommonStructuredDataEnum
_NODISCARD size_t ElementCount() const;
_NODISCARD uint32_t CalculateChecksum(uint32_t initialValue) const;
void SortEntries();
void SortEntriesByOffset();
void SortEntriesByName();
};