#pragma once
#include
namespace base {
/// A compile time fixed string, fit for usage as a C++20 cNTTP.
template
struct FixedString {
char buf[N + 1] {};
constexpr FixedString(const char* s) { // NOLINT
for(unsigned i = 0; i != N; ++i)
buf[i] = s[i];
}
constexpr operator const char*() const { // NOLINT
return buf;
}
[[nodiscard]] constexpr usize Length() const {
return N;
}
};
template
FixedString(char const (&)[N]) -> FixedString;
} // namespace base