|
4 | 4 | #include <string> |
5 | 5 | #include <tuple> |
6 | 6 |
|
7 | | -template<typename T> |
| 7 | +template <typename T> |
8 | 8 | T napi_extract_value(napi_env env, napi_value value); |
9 | 9 |
|
10 | | -template<> |
11 | | -inline std::wstring napi_extract_value<std::wstring>(napi_env env, napi_value value) { |
| 10 | +template <> |
| 11 | +inline std::wstring napi_extract_value<std::wstring>(napi_env env, napi_value value) |
| 12 | +{ |
12 | 13 | size_t length; |
13 | 14 | napi_get_value_string_utf16(env, value, nullptr, 0, &length); |
14 | 15 |
|
15 | 16 | std::wstring result(length + 1, L'\0'); |
16 | 17 | size_t actualLength; |
17 | | - napi_get_value_string_utf16(env, value, reinterpret_cast<char16_t*>(result.data()), length + 1, &actualLength); |
| 18 | + napi_get_value_string_utf16(env, value, reinterpret_cast<char16_t *>(result.data()), length + 1, &actualLength); |
18 | 19 | result.resize(actualLength); |
19 | 20 |
|
20 | 21 | return result; |
21 | 22 | } |
22 | 23 |
|
23 | | -template<> |
24 | | -inline int64_t napi_extract_value<int64_t>(napi_env env, napi_value value) { |
| 24 | +template <> |
| 25 | +inline int64_t napi_extract_value<int64_t>(napi_env env, napi_value value) |
| 26 | +{ |
25 | 27 | int64_t result; |
26 | 28 | napi_get_value_int64(env, value, &result); |
27 | 29 | return result; |
28 | 30 | } |
29 | 31 |
|
30 | | -template<> |
31 | | -inline bool napi_extract_value<bool>(napi_env env, napi_value value) { |
| 32 | +template <> |
| 33 | +inline bool napi_extract_value<bool>(napi_env env, napi_value value) |
| 34 | +{ |
32 | 35 | bool result; |
33 | 36 | napi_get_value_bool(env, value, &result); |
34 | 37 | return result; |
35 | 38 | } |
36 | 39 |
|
37 | | -template<typename... Types, std::size_t... Is> |
38 | | -inline std::tuple<Types...> napi_extract_args_impl(napi_env env, napi_value* argv, std::index_sequence<Is...>) { |
| 40 | +template <typename... Types, std::size_t... Is> |
| 41 | +inline std::tuple<Types...> napi_extract_args_impl(napi_env env, napi_value *argv, std::index_sequence<Is...>) |
| 42 | +{ |
39 | 43 | return std::make_tuple(napi_extract_value<Types>(env, argv[Is])...); |
40 | 44 | } |
41 | 45 |
|
42 | | -template<typename... Types> |
43 | | -inline std::tuple<Types...> napi_extract_args(napi_env env, napi_callback_info info) { |
| 46 | +template <typename... Types> |
| 47 | +inline std::tuple<Types...> napi_extract_args(napi_env env, napi_callback_info info) |
| 48 | +{ |
44 | 49 | constexpr size_t N = sizeof...(Types); |
45 | 50 | size_t argc = N; |
46 | 51 | napi_value argv[N]; |
47 | 52 | napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr); |
48 | | - |
| 53 | + |
49 | 54 | return napi_extract_args_impl<Types...>(env, argv, std::make_index_sequence<N>{}); |
50 | 55 | } |
0 commit comments