diff --git a/core/basic/enum_converter.hpp b/core/basic/enum_converter.hpp new file mode 100644 index 0000000..eebbf0e --- /dev/null +++ b/core/basic/enum_converter.hpp @@ -0,0 +1,48 @@ +// +// Created by zwsd +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace iflytop { +namespace core { +using namespace std; +template +class EnumConverter { + public: + map _e2str; + map _str2e; + EnumConverter(map table) : _e2str(table) { + for (auto it = table.begin(); it != table.end(); it++) { + _str2e[it->second] = it->first; + } + } + string e2str(T e) { // + auto it = _str2e.find(e); + if (it != _str2e.end()) { + return it->second; + } + return "unkown"; + }; + T str2e(string s) { + auto it = _e2str.find(s); + if (it != _e2str.end()) { + return it->second; + } + return (T)-1; + }; +}; +} // namespace core +} // namespace iflytop \ No newline at end of file