Я создаю Node-модуль, используя 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, который я только что не нашел? Как тебе это?