Как отобразить C/C++- перечисления в JavaScript, используя N-API?

Я строю Node-Module с использованием N-API, и в настоящее время я пытаюсь сгенерировать JS-аналог C++ enum,embind кажется, есть встроенный механизм для генерации какого-либо отображения из enums к представлению 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, которого я только что не нашел? Как ты это?

0 ответов

Другие вопросы по тегам