Как отобразить C/C++- перечисления в JavaScript, используя N-API?
Я строю Node-Module с использованием N-API, и в настоящее время я пытаюсь сгенерировать JS-аналог C++ enum
,embind
кажется, есть встроенный механизм для генерации какого-либо отображения из enum
s к представлению JavaScript:
enum class ElementType {
Invalid = 0,
Circle2D = 1,
Rectangle2D = 2,
};
std::string foo(ElementType arg) {
return [&] {
switch (arg) {
case ElementType::Invalid: return "Invalid";
case ElementType::Circle2D: return "Circle2D";
case ElementType::Rectangle2D: return "Rectangle2D";
}}();
}
EMSCRIPTEN_BINDINGS(my_module) {
enum_<ElementType>("ElementType")
.value("Invalid", ElementType::Invalid)
.value("Circle2D", ElementType::Circle2D)
.value("Rectangle2D", ElementType::Rectangle2D)
;
function("foo", &foo);
}
Но я упускаю что-то подобное для нативных модулей, использующих N-API.
Есть ли подобный подход для N-API, которого я только что не нашел? Как ты это?