mirror of
https://github.com/love2d/love.git
synced 2026-08-16 00:02:12 +02:00
Show (short) list of possible enum values when an invalid value is encountered (resolves #1318)
All enum errors have (hopefully) been changed to a luax_enumerror, which has a fixed error message. If additionally a list of valid options is passed, it lists that in the error message. For every enum error with few options I've implemented this using a getConstants call. This solution has been designed specifically to reduce the number of template instantiations (as I've been told that was a concern). All new template code happens in places where there already was an instantiation of the relevant StringMap. Of course there is still std::vector<std::string>... --HG-- branch : minor
This commit is contained in:
@@ -23,6 +23,9 @@
|
||||
|
||||
#include "Exception.h"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace love
|
||||
{
|
||||
|
||||
@@ -145,6 +148,18 @@ public:
|
||||
return hash;
|
||||
}
|
||||
|
||||
std::vector<std::string> getNames() const
|
||||
{
|
||||
std::vector<std::string> names;
|
||||
names.reserve(SIZE);
|
||||
|
||||
for (unsigned int i = 0; i < SIZE; ++i)
|
||||
if (reverse[i] != nullptr)
|
||||
names.emplace_back(reverse[i]);
|
||||
|
||||
return names;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
struct Record
|
||||
|
||||
Reference in New Issue
Block a user