Optimize AssetVault serialization to avoid vector allocation #1189
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit optimizes the serialization of AssetVault by eliminating unnecessary vector allocation.
Previously, the write_into method was collecting all assets into a temporary vector before writing them to the target, which was inefficient for large asset collections. The new implementation counts the assets directly using the iterator's count() method and then iterates through the assets again to write them one by one.
This change improves memory efficiency by avoiding the allocation of a temporary vector, which is especially beneficial for vaults with many assets.
Resolves TODO: "determine total number of assets in the vault without allocating the vector"