Skip to content

Commit fcf9993

Browse files
committed
refactor: align string conversion helper names
Signed-off-by: umuoy1 <burningdian@gmail.com>
1 parent 20ef695 commit fcf9993

3 files changed

Lines changed: 12 additions & 9 deletions

File tree

doc/symbol.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ Returns a `Napi::Symbol` representing a well-known `Symbol` from the
5151
```cpp
5252
static Napi::Symbol Napi::Symbol::For(napi_env env, const std::string& description);
5353
static Napi::Symbol Napi::Symbol::For(napi_env env, std::string_view description);
54+
template <typename T>
55+
static Napi::Symbol Napi::Symbol::For(napi_env env, T&& description);
5456
static Napi::Symbol Napi::Symbol::For(napi_env env, const char* description);
55-
static Napi::Symbol Napi::Symbol::For(napi_env env, String description);
57+
static Napi::Symbol Napi::Symbol::For(napi_env env, Napi::String description);
5658
static Napi::Symbol Napi::Symbol::For(napi_env env, napi_value description);
5759
```
5860
@@ -61,8 +63,8 @@ static Napi::Symbol Napi::Symbol::For(napi_env env, napi_value description);
6163
`description` may be any of:
6264
- `const std::string&` - represents a UTF-8 string.
6365
- `std::string_view` - represents a UTF-8 string view.
64-
- `const char*` - represents a UTF8 string description.
65-
- `String` - Node addon API String description.
66+
- `const char*` - represents a UTF-8 string description.
67+
- `Napi::String` - Node-API string description.
6668
- `napi_value` - Node-API `napi_value` description.
6769
6870
String-like arguments implicitly convertible to both `const std::string&` and

napi-inl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1428,7 +1428,7 @@ inline MaybeOrValue<Symbol> Symbol::For(napi_env env,
14281428
return Symbol::For(env, descriptionValue);
14291429
}
14301430

1431-
template <typename T, details::enable_if_ambiguous_symbol_for_t<T&&>>
1431+
template <typename T, details::enable_if_ambiguous_string_convertible_t<T&&>>
14321432
inline MaybeOrValue<Symbol> Symbol::For(napi_env env, T&& description) {
14331433
std::string_view descriptionView = std::forward<T>(description);
14341434
return Symbol::For(env, descriptionView);

napi.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -800,10 +800,10 @@ struct string_convertible_probe {
800800
};
801801

802802
template <typename T, typename = void>
803-
struct has_unambiguous_symbol_for_overload : std::false_type {};
803+
struct has_unambiguous_string_convertible_overload : std::false_type {};
804804

805805
template <typename T>
806-
struct has_unambiguous_symbol_for_overload<
806+
struct has_unambiguous_string_convertible_overload<
807807
T,
808808
std::void_t<decltype(string_convertible_probe::select(std::declval<T>()))>>
809809
: std::true_type {};
@@ -814,11 +814,11 @@ struct has_unambiguous_symbol_for_overload<
814814
// Exclude nullptr because it matches the pointer overloads equally well and
815815
// cannot safely initialize a std::string_view.
816816
template <typename T>
817-
using enable_if_ambiguous_symbol_for_t =
817+
using enable_if_ambiguous_string_convertible_t =
818818
std::enable_if_t<!std::is_null_pointer_v<std::decay_t<T>> &&
819819
std::is_convertible_v<T, const std::string&> &&
820820
std::is_convertible_v<T, std::string_view> &&
821-
!has_unambiguous_symbol_for_overload<T>::value,
821+
!has_unambiguous_string_convertible_overload<T>::value,
822822
int>;
823823

824824
} // namespace details
@@ -870,7 +870,8 @@ class Symbol : public Name {
870870

871871
// Resolve otherwise ambiguous string-like arguments through the
872872
// std::string_view overload
873-
template <typename T, details::enable_if_ambiguous_symbol_for_t<T&&> = 0>
873+
template <typename T,
874+
details::enable_if_ambiguous_string_convertible_t<T&&> = 0>
874875
static MaybeOrValue<Symbol> For(napi_env env, T&& description);
875876

876877
// Create a symbol in the global registry, C style string (null terminated)

0 commit comments

Comments
 (0)