2#ifndef VALUE_DESCRIPTIONS_H
3#define VALUE_DESCRIPTIONS_H
10using RawSignalValue = std::variant<std::int64_t, std::uint64_t>;
13inline RawSignalValue NormalizeValueKey(
const RawSignalValue &value) {
14 if (
const std::int64_t *number = std::get_if<std::int64_t>(&value)) {
16 return static_cast<std::uint64_t
>(*number);
21using ValueDescriptions = std::map<RawSignalValue, std::string>;
24inline const std::string *FindValueDescription(
const ValueDescriptions &descriptions,
25 const RawSignalValue &rawValue) {
26 const ValueDescriptions::const_iterator found = descriptions.find(NormalizeValueKey(rawValue));
27 return found == descriptions.end() ? nullptr : &found->second;