/// /// Subtitle.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 #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif #include #include namespace margelo::nitro::omni { /** * A struct which can be represented as a JavaScript object (Subtitle). */ struct Subtitle final { public: std::string id SWIFT_PRIVATE; std::string link SWIFT_PRIVATE; std::optional mimeType SWIFT_PRIVATE; std::optional language SWIFT_PRIVATE; std::optional label SWIFT_PRIVATE; public: Subtitle() = default; explicit Subtitle(std::string id, std::string link, std::optional mimeType, std::optional language, std::optional label): id(id), link(link), mimeType(mimeType), language(language), label(label) {} public: friend bool operator==(const Subtitle& lhs, const Subtitle& rhs) = default; }; } // namespace margelo::nitro::omni namespace margelo::nitro { // C++ Subtitle <> JS Subtitle (object) template <> struct JSIConverter final { static inline margelo::nitro::omni::Subtitle fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { jsi::Object obj = arg.asObject(runtime); return margelo::nitro::omni::Subtitle( JSIConverter::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "id"))), JSIConverter::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "link"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "mimeType"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "language"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "label"))) ); } static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::omni::Subtitle& arg) { jsi::Object obj(runtime); obj.setProperty(runtime, PropNameIDCache::get(runtime, "id"), JSIConverter::toJSI(runtime, arg.id)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "link"), JSIConverter::toJSI(runtime, arg.link)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "mimeType"), JSIConverter>::toJSI(runtime, arg.mimeType)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "language"), JSIConverter>::toJSI(runtime, arg.language)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "label"), JSIConverter>::toJSI(runtime, arg.label)); return obj; } static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { if (!value.isObject()) { return false; } jsi::Object obj = value.getObject(runtime); if (!nitro::isPlainObject(runtime, obj)) { return false; } if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "id")))) return false; if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "link")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "mimeType")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "language")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "label")))) return false; return true; } }; } // namespace margelo::nitro