blob: 3220104f841fb5de55f228231ae337b711a0309a [file] [log] [blame]
#include <BaSyx/submodel/enumerations/LevelType.h>
#include <array>
#include <algorithm>
#include <memory>
#include <string>
using namespace basyx::submodel;
using enum_pair_t = std::pair<const char*, LevelType>;
static const std::array<enum_pair_t, 4> string_to_enum =
{
std::make_pair("Max", LevelType::Max),
std::make_pair("Min", LevelType::Min),
std::make_pair("Nom", LevelType::Nom),
std::make_pair("Typ", LevelType::Typ),
};
LevelType LevelType_::from_string(const std::string & name)
{
auto pair = std::find_if(string_to_enum.begin(), string_to_enum.end(),
[&name](const enum_pair_t & pair) {
return !name.compare(pair.first);
});
return pair->second;
}
const char * LevelType_::to_string(LevelType value)
{
auto pair = std::find_if(string_to_enum.begin(), string_to_enum.end(),
[value](const enum_pair_t & pair) {
return value == pair.second;
});
return pair->first;
}