Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
enum_string.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2025 cx384
4
5#pragma once
6
7#include <string_view>
8#include <type_traits>
9
11{
12 int num;
13 const char *str;
14};
15
16bool string_to_enum(const EnumString *spec, int &result, std::string_view str);
17
18template <typename T, std::enable_if_t<std::is_enum_v<T>, bool> = true>
19bool string_to_enum(const EnumString *spec, T &result, std::string_view str)
20{
21 int result_int = result;
22 bool ret = string_to_enum(spec, result_int, str);
23 result = static_cast<T>(result_int);
24 return ret;
25}
26
27[[nodiscard]] const char *enum_to_string(const EnumString *spec, int num);
const char * enum_to_string(const EnumString *spec, int num)
Definition enum_string.cpp:22
bool string_to_enum(const EnumString *spec, int &result, std::string_view str)
Definition enum_string.cpp:8
Definition enum_string.h:11
const char * str
Definition enum_string.h:13
int num
Definition enum_string.h:12