Refactor record and report data initialization to improve code reuse #302
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.
Issue
Mirroring internal CR 208912038
Description
This change contains refactors to improve code reuse and clean up the logical flow. Specifically, it:
data!andprocessed_data!macro to define the function to instantiate all the data structs for record/report and add them toPerformanceData/VisualizationData, which allows us toctorstatic functions defined in each data module that have same implementationPerformanceDataandVisualizationDataobjects, which incurs extra costs, since now everything is deterministically sequentialget_data_name_from_type<T>). This pattern benefits from Rust's design where the module definition resides in the file with the same name, and hence eliminates the need to explicitly and redundantly defines a name for a data.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.