* @brief Copies per-frame volatile state (source id + dataset values) into a structure-matched dst. */
| 922 | * @brief Copies per-frame volatile state (source id + dataset values) into a structure-matched dst. |
| 923 | */ |
| 924 | inline void copy_frame_values(Frame& dst, const Frame& src) noexcept |
| 925 | { |
| 926 | dst.sourceId = src.sourceId; |
| 927 | |
| 928 | const size_t groupCount = src.groups.size(); |
| 929 | for (size_t g = 0; g < groupCount; ++g) { |
| 930 | const auto& srcGroup = src.groups[g]; |
| 931 | auto& dstGroup = dst.groups[g]; |
| 932 | const size_t datasetCount = srcGroup.datasets.size(); |
| 933 | SS_NO_UNROLL |
| 934 | for (size_t d = 0; d < datasetCount; ++d) { |
| 935 | const auto& srcDataset = srcGroup.datasets[d]; |
| 936 | auto& dstDataset = dstGroup.datasets[d]; |
| 937 | |
| 938 | assign_string_in_place(dstDataset.value, srcDataset.value); |
| 939 | assign_string_in_place(dstDataset.rawValue, srcDataset.rawValue); |
| 940 | dstDataset.numericValue = srcDataset.numericValue; |
| 941 | dstDataset.isNumeric = srcDataset.isNumeric; |
| 942 | dstDataset.rawNumericValue = srcDataset.rawNumericValue; |
| 943 | } |
| 944 | } |
| 945 | } |
| 946 | |
| 947 | /** |
| 948 | * @brief Compares two frames for structural equivalence. |
no test coverage detected