diff --git a/src/openrct2/scripting/Duktape.hpp b/src/openrct2/scripting/Duktape.hpp index 1a9eb0962d..c3b0e8bf0a 100644 --- a/src/openrct2/scripting/Duktape.hpp +++ b/src/openrct2/scripting/Duktape.hpp @@ -208,38 +208,30 @@ namespace OpenRCT2::Scripting template DukValue ToDuk(duk_context* ctx, const T& value) = delete; template T FromDuk(const DukValue& s) = delete; + template<> inline DukValue ToDuk(duk_context* ctx, const std::nullptr_t&) { duk_push_null(ctx); return DukValue::take_from_stack(ctx); } + template<> inline DukValue ToDuk(duk_context* ctx, const std::string_view& value) { duk_push_lstring(ctx, value.data(), value.size()); return DukValue::take_from_stack(ctx); } + template inline DukValue ToDuk(duk_context* ctx, const char (&value)[TLen]) { duk_push_string(ctx, value); return DukValue::take_from_stack(ctx); } + template DukValue ToDuk(duk_context* ctx, const std::optional& value) { return value ? ToDuk(ctx, *value) : ToDuk(ctx, nullptr); } - template<> inline DukValue ToDuk(duk_context* ctx, const std::nullptr_t&) - { - duk_push_null(ctx); - return DukValue::take_from_stack(ctx); - } - - template<> inline DukValue ToDuk(duk_context* ctx, const std::string_view& value) - { - duk_push_lstring(ctx, value.data(), value.size()); - return DukValue::take_from_stack(ctx); - } - } // namespace OpenRCT2::Scripting #endif