xref: /openbmc/telemetry/src/types/readings.cpp (revision c7935fa1)
1493e62ebSKrzysztof Grobelny #include "types/readings.hpp"
2493e62ebSKrzysztof Grobelny 
3493e62ebSKrzysztof Grobelny #include "utils/transform.hpp"
4493e62ebSKrzysztof Grobelny 
5493e62ebSKrzysztof Grobelny namespace utils
6493e62ebSKrzysztof Grobelny {
7493e62ebSKrzysztof Grobelny 
8493e62ebSKrzysztof Grobelny namespace ts = utils::tstring;
9493e62ebSKrzysztof Grobelny 
toLabeledReadings(const Readings & readings)10493e62ebSKrzysztof Grobelny LabeledReadings toLabeledReadings(const Readings& readings)
11493e62ebSKrzysztof Grobelny {
12*c7935fa1SPatrick Williams     return LabeledReadings{
13*c7935fa1SPatrick Williams         std::get<0>(readings),
14*c7935fa1SPatrick Williams         utils::transform(std::get<1>(readings), [](const auto& readingData) {
15493e62ebSKrzysztof Grobelny         return LabeledReadingData{readingData};
16493e62ebSKrzysztof Grobelny     })};
17493e62ebSKrzysztof Grobelny }
18493e62ebSKrzysztof Grobelny 
toReadings(const LabeledReadings & labeledReadings)19493e62ebSKrzysztof Grobelny Readings toReadings(const LabeledReadings& labeledReadings)
20493e62ebSKrzysztof Grobelny {
21493e62ebSKrzysztof Grobelny     return Readings{labeledReadings.at_label<ts::Timestamp>(),
22493e62ebSKrzysztof Grobelny                     utils::transform(labeledReadings.at_label<ts::Readings>(),
23493e62ebSKrzysztof Grobelny                                      [](const auto& labeledReadingData) {
24493e62ebSKrzysztof Grobelny         return labeledReadingData.to_tuple();
25493e62ebSKrzysztof Grobelny     })};
26493e62ebSKrzysztof Grobelny }
27493e62ebSKrzysztof Grobelny 
28493e62ebSKrzysztof Grobelny } // namespace utils
29