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

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

...