mirror of
https://github.com/DarkflameUniverse/DarkflameServer
synced 2024-08-30 18:43:58 +00:00
ef6f2f133e
* cast and code cleanup * cast cleanup * bug fixes and improvements * no getBoolField method exists * fixes * unbroke sg cannon scoring * removing comments * Remove the c-style cast warning I added from CMakeLists now that they're gone (it triggers on 3rd party dependencies and slows down compilation) * (Hopefully) fix MacOS compilation error * partially-implemented feedback * more updates to account for feedback * change bool default --------- Co-authored-by: jadebenn <jonahebenn@yahoo.com>
30 lines
674 B
C++
30 lines
674 B
C++
#ifndef __STRINGIFIEDENUM_H__
|
|
#define __STRINGIFIEDENUM_H__
|
|
|
|
#include <string>
|
|
#include "magic_enum.hpp"
|
|
|
|
namespace StringifiedEnum {
|
|
template<typename T>
|
|
const std::string_view ToString(const T e) {
|
|
static_assert(std::is_enum_v<T>, "Not an enum"); // Check type
|
|
|
|
constexpr auto sv = &magic_enum::enum_entries<T>();
|
|
|
|
const auto it = std::lower_bound(
|
|
sv->begin(), sv->end(), e,
|
|
[&](const std::pair<T, std::string_view>& lhs, const T rhs) { return lhs.first < rhs; }
|
|
);
|
|
|
|
std::string_view output;
|
|
if (it != sv->end() && it->first == e) {
|
|
output = it->second;
|
|
} else {
|
|
output = "UNKNOWN";
|
|
}
|
|
return output;
|
|
}
|
|
}
|
|
|
|
#endif // !__STRINGIFIEDENUM_H__
|