| 449 | |
| 450 | template <typename Getter, typename Setter> |
| 451 | struct AccessorCallbackData { |
| 452 | static inline napi_value GetterWrapper(napi_env env, |
| 453 | napi_callback_info info) { |
| 454 | return details::WrapCallback(env, [&] { |
| 455 | CallbackInfo callbackInfo(env, info); |
| 456 | AccessorCallbackData* callbackData = |
| 457 | static_cast<AccessorCallbackData*>(callbackInfo.Data()); |
| 458 | callbackInfo.SetData(callbackData->data); |
| 459 | return callbackData->getterCallback(callbackInfo); |
| 460 | }); |
| 461 | } |
| 462 | |
| 463 | static inline napi_value SetterWrapper(napi_env env, |
| 464 | napi_callback_info info) { |
| 465 | return details::WrapCallback(env, [&] { |
| 466 | CallbackInfo callbackInfo(env, info); |
| 467 | AccessorCallbackData* callbackData = |
| 468 | static_cast<AccessorCallbackData*>(callbackInfo.Data()); |
| 469 | callbackInfo.SetData(callbackData->data); |
| 470 | callbackData->setterCallback(callbackInfo); |
| 471 | return nullptr; |
| 472 | }); |
| 473 | } |
| 474 | |
| 475 | Getter getterCallback; |
| 476 | Setter setterCallback; |
| 477 | void* data; |
| 478 | }; |
| 479 | |
| 480 | // Debugging-purpose C++-style variant of sprintf(). |
| 481 | inline std::string StringFormat(const char* format, ...) { |
nothing calls this directly
no outgoing calls
no test coverage detected