/// /// NumberProperty.hpp /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. /// https://github.com/mrousavy/nitro /// Copyright © Marc Rousavy @ Margelo /// #pragma once #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif namespace margelo::nitro::omni { /** * An enum which can be represented as a JavaScript union (NumberProperty). */ enum class NumberProperty { CURRENTTIME SWIFT_NAME(currenttime) = 0, BUFFERED SWIFT_NAME(buffered) = 1, DURATION SWIFT_NAME(duration) = 2, PLAYBACKRATE SWIFT_NAME(playbackrate) = 3, VOLUME SWIFT_NAME(volume) = 4, ISAUTOQUALITY SWIFT_NAME(isautoquality) = 5, } CLOSED_ENUM; } // namespace margelo::nitro::omni namespace margelo::nitro { // C++ NumberProperty <> JS NumberProperty (union) template <> struct JSIConverter final { static inline margelo::nitro::omni::NumberProperty fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { std::string unionValue = JSIConverter::fromJSI(runtime, arg); switch (hashString(unionValue.c_str(), unionValue.size())) { case hashString("currentTime"): return margelo::nitro::omni::NumberProperty::CURRENTTIME; case hashString("buffered"): return margelo::nitro::omni::NumberProperty::BUFFERED; case hashString("duration"): return margelo::nitro::omni::NumberProperty::DURATION; case hashString("playbackRate"): return margelo::nitro::omni::NumberProperty::PLAYBACKRATE; case hashString("volume"): return margelo::nitro::omni::NumberProperty::VOLUME; case hashString("isAutoQuality"): return margelo::nitro::omni::NumberProperty::ISAUTOQUALITY; default: [[unlikely]] throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum NumberProperty - invalid value!"); } } static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::omni::NumberProperty arg) { switch (arg) { case margelo::nitro::omni::NumberProperty::CURRENTTIME: return JSIConverter::toJSI(runtime, "currentTime"); case margelo::nitro::omni::NumberProperty::BUFFERED: return JSIConverter::toJSI(runtime, "buffered"); case margelo::nitro::omni::NumberProperty::DURATION: return JSIConverter::toJSI(runtime, "duration"); case margelo::nitro::omni::NumberProperty::PLAYBACKRATE: return JSIConverter::toJSI(runtime, "playbackRate"); case margelo::nitro::omni::NumberProperty::VOLUME: return JSIConverter::toJSI(runtime, "volume"); case margelo::nitro::omni::NumberProperty::ISAUTOQUALITY: return JSIConverter::toJSI(runtime, "isAutoQuality"); default: [[unlikely]] throw std::invalid_argument("Cannot convert NumberProperty to JS - invalid value: " + std::to_string(static_cast(arg)) + "!"); } } static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { if (!value.isString()) { return false; } std::string unionValue = JSIConverter::fromJSI(runtime, value); switch (hashString(unionValue.c_str(), unionValue.size())) { case hashString("currentTime"): case hashString("buffered"): case hashString("duration"): case hashString("playbackRate"): case hashString("volume"): case hashString("isAutoQuality"): return true; default: return false; } } }; } // namespace margelo::nitro