MCPcopy Create free account
hub / github.com/PlotJuggler/PlotJuggler / constantDecodeAsDouble

Function constantDecodeAsDouble

pj_datastore/src/encoding.cpp:76–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74}
75
76double constantDecodeAsDouble(const ConstantEncoded& enc) {
77 const uint8_t* ptr = enc.value_bytes.data();
78
79 auto load = [&]<typename T>(const T* /*tag*/) -> double {
80 T v{};
81 std::memcpy(&v, ptr, sizeof(v));
82 return static_cast<double>(v);
83 };
84
85 switch (enc.value_kind) {
86 case StorageKind::kFloat32:
87 return load(static_cast<const float*>(nullptr));
88 case StorageKind::kFloat64:
89 return load(static_cast<const double*>(nullptr));
90 case StorageKind::kInt32:
91 return load(static_cast<const int32_t*>(nullptr));
92 case StorageKind::kInt64:
93 return load(static_cast<const int64_t*>(nullptr));
94 case StorageKind::kUint64:
95 return load(static_cast<const uint64_t*>(nullptr));
96 case StorageKind::kBool:
97 case StorageKind::kString:
98 break;
99 }
100 return 0.0;
101}
102
103int64_t constantDecodeAsInt64(const ConstantEncoded& enc) {
104 const uint8_t* ptr = enc.value_bytes.data();

Callers 3

readNumericAsDoubleMethod · 0.85
readColumnAsDoublesMethod · 0.85
TESTFunction · 0.85

Calls 1

dataMethod · 0.45

Tested by 1

TESTFunction · 0.68