diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt b/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt index 60c6b57a..d1f87197 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt @@ -3,6 +3,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.File import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import java.lang.ref.WeakReference import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -85,6 +86,38 @@ class HybridRiveFile : HybridRiveFileSpec() { } } + override fun getViewModelNamesAsync(): Promise> { + return Promise.async { + val file = riveFile ?: return@async emptyArray() + val count = file.viewModelCount + val names = mutableListOf() + for (i in 0 until count) { + try { + val vm = file.getViewModelByIndex(i) + names.add(vm.name) + } catch (_: Exception) { + } + } + names.toTypedArray() + } + } + + override fun viewModelByNameAsync(name: String, validate: Boolean?): Promise { + return Promise.async { viewModelByName(name) } + } + + override fun defaultArtboardViewModelAsync(artboardBy: ArtboardBy?): Promise { + return Promise.async { defaultArtboardViewModel(artboardBy) } + } + + override fun getArtboardCountAsync(): Promise { + return Promise.async { artboardCount } + } + + override fun getArtboardNamesAsync(): Promise> { + return Promise.async { artboardNames } + } + override fun updateReferencedAssets(referencedAssets: ReferencedAssetsType) { val assetsData = referencedAssets.data ?: return val cache = referencedAssetCache ?: return diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt index 5d23869f..b5af4ead 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt @@ -4,6 +4,7 @@ import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModel import app.rive.runtime.kotlin.core.errors.ViewModelException import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise @Keep @DoNotStrip @@ -51,4 +52,16 @@ class HybridViewModel(private val viewModel: ViewModel) : HybridViewModelSpec() return null } } + + override fun createInstanceByNameAsync(name: String): Promise { + return Promise.async { createInstanceByName(name) } + } + + override fun createDefaultInstanceAsync(): Promise { + return Promise.async { createDefaultInstance() } + } + + override fun createBlankInstanceAsync(): Promise { + return Promise.async { createInstance() } + } } diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt index 5a82de36..a8011cff 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt @@ -3,6 +3,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelBooleanProperty import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise @Keep @DoNotStrip @@ -15,6 +16,14 @@ class HybridViewModelBooleanProperty(private val viewModelBoolean: ViewModelBool viewModelBoolean.value = value } + override fun getValueAsync(): Promise { + return Promise.async { value } + } + + override fun set(value: Boolean) { + viewModelBoolean.value = value + } + override fun addListener(onChanged: (value: Boolean) -> Unit): () -> Unit { val remover = addListenerInternal(onChanged) ensureValueListenerJob(viewModelBoolean.valueFlow) diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt index 0e20ce41..7d44e514 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt @@ -3,6 +3,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelColorProperty import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise @Keep @DoNotStrip @@ -15,6 +16,14 @@ class HybridViewModelColorProperty(private val viewModelColor: ViewModelColorPro viewModelColor.value = value.toLong().toInt() } + override fun getValueAsync(): Promise { + return Promise.async { value } + } + + override fun set(value: Double) { + viewModelColor.value = value.toLong().toInt() + } + override fun addListener(onChanged: (value: Double) -> Unit): () -> Unit { val remover = addListenerInternal { intValue: Int -> onChanged(intValue.toDouble()) } ensureValueListenerJob(viewModelColor.valueFlow) diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt index ec7554bc..7f5b88e9 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt @@ -3,6 +3,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelEnumProperty import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise @Keep @DoNotStrip @@ -15,6 +16,14 @@ class HybridViewModelEnumProperty(private val viewModelEnum: ViewModelEnumProper viewModelEnum.value = value } + override fun getValueAsync(): Promise { + return Promise.async { value } + } + + override fun set(value: String) { + viewModelEnum.value = value + } + override fun addListener(onChanged: (value: String) -> Unit): () -> Unit { val remover = addListenerInternal(onChanged) ensureValueListenerJob(viewModelEnum.valueFlow) diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt index 01c006ee..b8bba139 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt @@ -4,6 +4,7 @@ import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelInstance import app.rive.runtime.kotlin.core.errors.ViewModelException import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise @Keep @DoNotStrip @@ -65,4 +66,8 @@ class HybridViewModelInstance(val viewModelInstance: ViewModelInstance) : Hybrid val nativeInstance = (instance as HybridViewModelInstance).viewModelInstance viewModelInstance.setInstanceProperty(path, nativeInstance) } + + override fun viewModelAsync(path: String): Promise { + return Promise.async { viewModel(path) } + } } diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelListProperty.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelListProperty.kt index 3dc77238..e6f4e7da 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelListProperty.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelListProperty.kt @@ -3,6 +3,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelListProperty import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import kotlinx.coroutines.flow.map @Keep @@ -56,6 +57,14 @@ class HybridViewModelListProperty(private val listProperty: ViewModelListPropert return true } + override fun getLengthAsync(): Promise { + return Promise.async { length } + } + + override fun getInstanceAtAsync(index: Double): Promise { + return Promise.async { getInstanceAt(index) } + } + override fun addListener(onChanged: () -> Unit): () -> Unit { val remover = addListenerInternal { _ -> onChanged() } ensureValueListenerJob(listProperty.valueFlow.map { }) diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt index fc647ec1..d07688d6 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt @@ -3,6 +3,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelNumberProperty import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import kotlinx.coroutines.flow.map @Keep @@ -16,6 +17,14 @@ class HybridViewModelNumberProperty(private val viewModelNumber: ViewModelNumber viewModelNumber.value = value.toFloat() } + override fun getValueAsync(): Promise { + return Promise.async { value } + } + + override fun set(value: Double) { + viewModelNumber.value = value.toFloat() + } + override fun addListener(onChanged: (value: Double) -> Unit): () -> Unit { val remover = addListenerInternal(onChanged) ensureValueListenerJob(viewModelNumber.valueFlow.map { it.toDouble() }) diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt index 02c69e8c..ba10ae36 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt @@ -3,6 +3,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelStringProperty import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise @Keep @DoNotStrip @@ -15,6 +16,14 @@ class HybridViewModelStringProperty(private val viewModelString: ViewModelString viewModelString.value = value } + override fun getValueAsync(): Promise { + return Promise.async { value } + } + + override fun set(value: String) { + viewModelString.value = value + } + override fun addListener(onChanged: (value: String) -> Unit): () -> Unit { val remover = addListenerInternal(onChanged) ensureValueListenerJob(viewModelString.valueFlow) diff --git a/ios/HybridRiveFile.swift b/ios/HybridRiveFile.swift index ac6c71c1..31a4b779 100644 --- a/ios/HybridRiveFile.swift +++ b/ios/HybridRiveFile.swift @@ -1,3 +1,4 @@ +import NitroModules import RiveRuntime typealias ReferencedAssetCache = [String: RiveFileAsset] @@ -88,6 +89,36 @@ class HybridRiveFile: HybridRiveFileSpec, RiveViewSource { return HybridBindableArtboard(bindableArtboard: bindable) } + func getViewModelNamesAsync() throws -> Promise<[String]> { + return Promise.async { + guard let file = self.riveFile else { return [] } + let count = file.viewModelCount + var names: [String] = [] + for i in 0.. Promise<(any HybridViewModelSpec)?> { + return Promise.async { try self.viewModelByName(name: name) } + } + + func defaultArtboardViewModelAsync(artboardBy: ArtboardBy?) throws -> Promise<(any HybridViewModelSpec)?> { + return Promise.async { try self.defaultArtboardViewModel(artboardBy: artboardBy) } + } + + func getArtboardCountAsync() throws -> Promise { + return Promise.async { self.artboardCount } + } + + func getArtboardNamesAsync() throws -> Promise<[String]> { + return Promise.async { self.artboardNames } + } + func updateReferencedAssets(referencedAssets: ReferencedAssetsType) { guard let assetsData = referencedAssets.data, let cache = referencedAssetCache, diff --git a/ios/HybridViewModel.swift b/ios/HybridViewModel.swift index 7e00d157..52e789b2 100644 --- a/ios/HybridViewModel.swift +++ b/ios/HybridViewModel.swift @@ -1,3 +1,4 @@ +import NitroModules import RiveRuntime class HybridViewModel: HybridViewModelSpec { @@ -39,4 +40,16 @@ class HybridViewModel: HybridViewModelSpec { let vmi = viewModel.createInstance() else { return nil } return HybridViewModelInstance(viewModelInstance: vmi) } + + func createInstanceByNameAsync(name: String) throws -> Promise<(any HybridViewModelInstanceSpec)?> { + return Promise.async { try self.createInstanceByName(name: name) } + } + + func createDefaultInstanceAsync() throws -> Promise<(any HybridViewModelInstanceSpec)?> { + return Promise.async { try self.createDefaultInstance() } + } + + func createBlankInstanceAsync() throws -> Promise<(any HybridViewModelInstanceSpec)?> { + return Promise.async { try self.createInstance() } + } } diff --git a/ios/HybridViewModelBooleanProperty.swift b/ios/HybridViewModelBooleanProperty.swift index acf62da1..ed5864bb 100644 --- a/ios/HybridViewModelBooleanProperty.swift +++ b/ios/HybridViewModelBooleanProperty.swift @@ -18,4 +18,12 @@ class HybridViewModelBooleanProperty: HybridViewModelBooleanPropertySpec, Valued property.value = newValue } } + + func getValueAsync() throws -> Promise { + return Promise.async { self.property.value } + } + + func set(value: Bool) throws { + property.value = value + } } diff --git a/ios/HybridViewModelColorProperty.swift b/ios/HybridViewModelColorProperty.swift index 8d7e0b4c..9769dde3 100644 --- a/ios/HybridViewModelColorProperty.swift +++ b/ios/HybridViewModelColorProperty.swift @@ -19,6 +19,14 @@ class HybridViewModelColorProperty: HybridViewModelColorPropertySpec, ValuedProp } } + func getValueAsync() throws -> Promise { + return Promise.async { self.property.value.toHexDouble() } + } + + func set(value: Double) throws { + property.value = UIColor(argb: Int(value)) + } + func addListener(onChanged: @escaping (Double) -> Void) throws -> () -> Void { return helper.addListener { (color: UIColor) in onChanged(color.toHexDouble()) diff --git a/ios/HybridViewModelEnumProperty.swift b/ios/HybridViewModelEnumProperty.swift index a758786d..e322356f 100644 --- a/ios/HybridViewModelEnumProperty.swift +++ b/ios/HybridViewModelEnumProperty.swift @@ -18,4 +18,12 @@ class HybridViewModelEnumProperty: HybridViewModelEnumPropertySpec, ValuedProper property.value = newValue } } + + func getValueAsync() throws -> Promise { + return Promise.async { self.property.value } + } + + func set(value: String) throws { + property.value = value + } } diff --git a/ios/HybridViewModelInstance.swift b/ios/HybridViewModelInstance.swift index f6308113..9a8ca3dd 100644 --- a/ios/HybridViewModelInstance.swift +++ b/ios/HybridViewModelInstance.swift @@ -70,4 +70,8 @@ class HybridViewModelInstance: HybridViewModelInstanceSpec { throw RuntimeError.error(withMessage: "Failed to replace ViewModel at path: \(path)") } } + + func viewModelAsync(path: String) throws -> Promise<(any HybridViewModelInstanceSpec)?> { + return Promise.async { try self.viewModel(path: path) } + } } diff --git a/ios/HybridViewModelListProperty.swift b/ios/HybridViewModelListProperty.swift index 11ac39af..bdf5521a 100644 --- a/ios/HybridViewModelListProperty.swift +++ b/ios/HybridViewModelListProperty.swift @@ -1,3 +1,4 @@ +import NitroModules import RiveRuntime class HybridViewModelListProperty: HybridViewModelListPropertySpec, ValuedPropertyProtocol { @@ -56,6 +57,14 @@ class HybridViewModelListProperty: HybridViewModelListPropertySpec, ValuedProper return true } + func getLengthAsync() throws -> Promise { + return Promise.async { self.length } + } + + func getInstanceAtAsync(index: Double) throws -> Promise<(any HybridViewModelInstanceSpec)?> { + return Promise.async { try self.getInstanceAt(index: index) } + } + func addListener(onChanged: @escaping () -> Void) throws -> () -> Void { helper.addListener({ _ in onChanged() }) } diff --git a/ios/HybridViewModelNumberProperty.swift b/ios/HybridViewModelNumberProperty.swift index 82dfafe5..6323fcf4 100644 --- a/ios/HybridViewModelNumberProperty.swift +++ b/ios/HybridViewModelNumberProperty.swift @@ -1,3 +1,4 @@ +import NitroModules import RiveRuntime class HybridViewModelNumberProperty: HybridViewModelNumberPropertySpec, ValuedPropertyProtocol { @@ -18,6 +19,14 @@ class HybridViewModelNumberProperty: HybridViewModelNumberPropertySpec, ValuedPr } } + func getValueAsync() throws -> Promise { + return Promise.async { Double(self.property.value) } + } + + func set(value: Double) throws { + property.value = Float(value) + } + func addListener(onChanged: @escaping (Double) -> Void) throws -> () -> Void { return helper.addListener({ floatValue in onChanged(Double(floatValue)) }) } diff --git a/ios/HybridViewModelStringProperty.swift b/ios/HybridViewModelStringProperty.swift index ea681f5e..09ec5273 100644 --- a/ios/HybridViewModelStringProperty.swift +++ b/ios/HybridViewModelStringProperty.swift @@ -18,4 +18,12 @@ class HybridViewModelStringProperty: HybridViewModelStringPropertySpec, ValuedPr property.value = newValue } } + + func getValueAsync() throws -> Promise { + return Promise.async { self.property.value } + } + + func set(value: String) throws { + property.value = value + } } diff --git a/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp b/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp index 8bbed4b7..057ebc34 100644 --- a/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp +++ b/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp @@ -28,6 +28,8 @@ namespace margelo::nitro::rive { class HybridRiveImageSpec; } #include #include "HybridViewModelSpec.hpp" #include "JHybridViewModelSpec.hpp" +#include +#include #include "HybridBindableArtboardSpec.hpp" #include "JHybridBindableArtboardSpec.hpp" #include "ArtboardBy.hpp" @@ -117,6 +119,104 @@ namespace margelo::nitro::rive { static const auto method = _javaPart->javaClassStatic()->getMethod /* referencedAssets */)>("updateReferencedAssets"); method(_javaPart, JReferencedAssetsType::fromCpp(referencedAssets)); } + std::shared_ptr>> JHybridRiveFileSpec::getViewModelNamesAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getViewModelNamesAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast>(__boxedResult); + __promise->resolve([&]() { + size_t __size = __result->size(); + std::vector __vector; + __vector.reserve(__size); + for (size_t __i = 0; __i < __size; __i++) { + auto __element = __result->getElement(__i); + __vector.push_back(__element->toStdString()); + } + return __vector; + }()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + std::shared_ptr>>> JHybridRiveFileSpec::viewModelByNameAsync(const std::string& name, std::optional validate) { + static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* name */, jni::alias_ref /* validate */)>("viewModelByNameAsync"); + auto __result = method(_javaPart, jni::make_jstring(name), validate.has_value() ? jni::JBoolean::valueOf(validate.value()) : nullptr); + return [&]() { + auto __promise = Promise>>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result != nullptr ? std::make_optional(__result->getJHybridViewModelSpec()) : std::nullopt); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + std::shared_ptr>>> JHybridRiveFileSpec::defaultArtboardViewModelAsync(const std::optional& artboardBy) { + static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* artboardBy */)>("defaultArtboardViewModelAsync"); + auto __result = method(_javaPart, artboardBy.has_value() ? JArtboardBy::fromCpp(artboardBy.value()) : nullptr); + return [&]() { + auto __promise = Promise>>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result != nullptr ? std::make_optional(__result->getJHybridViewModelSpec()) : std::nullopt); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + std::shared_ptr> JHybridRiveFileSpec::getArtboardCountAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getArtboardCountAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result->value()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + std::shared_ptr>> JHybridRiveFileSpec::getArtboardNamesAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getArtboardNamesAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast>(__boxedResult); + __promise->resolve([&]() { + size_t __size = __result->size(); + std::vector __vector; + __vector.reserve(__size); + for (size_t __i = 0; __i < __size; __i++) { + auto __element = __result->getElement(__i); + __vector.push_back(__element->toStdString()); + } + return __vector; + }()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } std::shared_ptr JHybridRiveFileSpec::getBindableArtboard(const std::string& name) { static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* name */)>("getBindableArtboard"); auto __result = method(_javaPart, jni::make_jstring(name)); diff --git a/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp b/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp index fa3e0dd1..b184fe7b 100644 --- a/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp +++ b/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp @@ -60,6 +60,11 @@ namespace margelo::nitro::rive { std::optional> viewModelByName(const std::string& name) override; std::optional> defaultArtboardViewModel(const std::optional& artboardBy) override; void updateReferencedAssets(const ReferencedAssetsType& referencedAssets) override; + std::shared_ptr>> getViewModelNamesAsync() override; + std::shared_ptr>>> viewModelByNameAsync(const std::string& name, std::optional validate) override; + std::shared_ptr>>> defaultArtboardViewModelAsync(const std::optional& artboardBy) override; + std::shared_ptr> getArtboardCountAsync() override; + std::shared_ptr>> getArtboardNamesAsync() override; std::shared_ptr getBindableArtboard(const std::string& name) override; private: diff --git a/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp index 83770717..e20e0e8c 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp @@ -9,6 +9,8 @@ +#include +#include #include #include "JFunc_void.hpp" #include @@ -55,6 +57,26 @@ namespace margelo::nitro::rive { } // Methods + std::shared_ptr> JHybridViewModelBooleanPropertySpec::getValueAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getValueAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(static_cast(__result->value())); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + void JHybridViewModelBooleanPropertySpec::set(bool value) { + static const auto method = _javaPart->javaClassStatic()->getMethod("set"); + method(_javaPart, value); + } std::function JHybridViewModelBooleanPropertySpec::addListener(const std::function& onChanged) { static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* onChanged */)>("addListener_cxx"); auto __result = method(_javaPart, JFunc_void_bool_cxx::fromCpp(onChanged)); diff --git a/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp index 46064e88..4662ddf1 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp @@ -57,6 +57,8 @@ namespace margelo::nitro::rive { public: // Methods + std::shared_ptr> getValueAsync() override; + void set(bool value) override; std::function addListener(const std::function& onChanged) override; void removeListeners() override; diff --git a/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp index 36775209..445fe329 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp @@ -9,6 +9,8 @@ +#include +#include #include #include "JFunc_void.hpp" #include @@ -55,6 +57,26 @@ namespace margelo::nitro::rive { } // Methods + std::shared_ptr> JHybridViewModelColorPropertySpec::getValueAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getValueAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result->value()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + void JHybridViewModelColorPropertySpec::set(double value) { + static const auto method = _javaPart->javaClassStatic()->getMethod("set"); + method(_javaPart, value); + } std::function JHybridViewModelColorPropertySpec::addListener(const std::function& onChanged) { static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* onChanged */)>("addListener_cxx"); auto __result = method(_javaPart, JFunc_void_double_cxx::fromCpp(onChanged)); diff --git a/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp index 4c828eda..ffbd11df 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp @@ -57,6 +57,8 @@ namespace margelo::nitro::rive { public: // Methods + std::shared_ptr> getValueAsync() override; + void set(double value) override; std::function addListener(const std::function& onChanged) override; void removeListeners() override; diff --git a/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp index d5ba61df..8466983e 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp @@ -10,6 +10,8 @@ #include +#include +#include #include #include "JFunc_void.hpp" #include @@ -56,6 +58,26 @@ namespace margelo::nitro::rive { } // Methods + std::shared_ptr> JHybridViewModelEnumPropertySpec::getValueAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getValueAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result->toStdString()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + void JHybridViewModelEnumPropertySpec::set(const std::string& value) { + static const auto method = _javaPart->javaClassStatic()->getMethod /* value */)>("set"); + method(_javaPart, jni::make_jstring(value)); + } std::function JHybridViewModelEnumPropertySpec::addListener(const std::function& onChanged) { static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* onChanged */)>("addListener_cxx"); auto __result = method(_javaPart, JFunc_void_std__string_cxx::fromCpp(onChanged)); diff --git a/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp index 2bfb4140..abc6db3a 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp @@ -57,6 +57,8 @@ namespace margelo::nitro::rive { public: // Methods + std::shared_ptr> getValueAsync() override; + void set(const std::string& value) override; std::function addListener(const std::function& onChanged) override; void removeListeners() override; diff --git a/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp index ccb8618e..6cdef82f 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp @@ -51,6 +51,8 @@ namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; } #include "JHybridViewModelArtboardPropertySpec.hpp" #include "HybridViewModelInstanceSpec.hpp" #include "JHybridViewModelInstanceSpec.hpp" +#include +#include namespace margelo::nitro::rive { @@ -139,6 +141,22 @@ namespace margelo::nitro::rive { auto __result = method(_javaPart, jni::make_jstring(path)); return __result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt; } + std::shared_ptr>>> JHybridViewModelInstanceSpec::viewModelAsync(const std::string& path) { + static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* path */)>("viewModelAsync"); + auto __result = method(_javaPart, jni::make_jstring(path)); + return [&]() { + auto __promise = Promise>>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } void JHybridViewModelInstanceSpec::replaceViewModel(const std::string& path, const std::shared_ptr& instance) { static const auto method = _javaPart->javaClassStatic()->getMethod /* path */, jni::alias_ref /* instance */)>("replaceViewModel"); method(_javaPart, jni::make_jstring(path), std::dynamic_pointer_cast(instance)->getJavaPart()); diff --git a/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp index 8fe85dd6..b5b36233 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp @@ -64,6 +64,7 @@ namespace margelo::nitro::rive { std::optional> listProperty(const std::string& path) override; std::optional> artboardProperty(const std::string& path) override; std::optional> viewModel(const std::string& path) override; + std::shared_ptr>>> viewModelAsync(const std::string& path) override; void replaceViewModel(const std::string& path, const std::shared_ptr& instance) override; private: diff --git a/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp index 96dbe630..0c1901cd 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp @@ -14,6 +14,8 @@ namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; } #include "HybridViewModelInstanceSpec.hpp" #include #include "JHybridViewModelInstanceSpec.hpp" +#include +#include #include #include "JFunc_void.hpp" #include @@ -60,6 +62,38 @@ namespace margelo::nitro::rive { auto __result = method(_javaPart, index); return __result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt; } + std::shared_ptr> JHybridViewModelListPropertySpec::getLengthAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getLengthAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result->value()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + std::shared_ptr>>> JHybridViewModelListPropertySpec::getInstanceAtAsync(double index) { + static const auto method = _javaPart->javaClassStatic()->getMethod(double /* index */)>("getInstanceAtAsync"); + auto __result = method(_javaPart, index); + return [&]() { + auto __promise = Promise>>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } void JHybridViewModelListPropertySpec::addInstance(const std::shared_ptr& instance) { static const auto method = _javaPart->javaClassStatic()->getMethod /* instance */)>("addInstance"); method(_javaPart, std::dynamic_pointer_cast(instance)->getJavaPart()); diff --git a/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp index 14f4ba84..d779a623 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp @@ -57,6 +57,8 @@ namespace margelo::nitro::rive { public: // Methods std::optional> getInstanceAt(double index) override; + std::shared_ptr> getLengthAsync() override; + std::shared_ptr>>> getInstanceAtAsync(double index) override; void addInstance(const std::shared_ptr& instance) override; bool addInstanceAt(const std::shared_ptr& instance, double index) override; void removeInstance(const std::shared_ptr& instance) override; diff --git a/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp index fa0b4672..aec9f3a3 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp @@ -9,6 +9,8 @@ +#include +#include #include #include "JFunc_void.hpp" #include @@ -55,6 +57,26 @@ namespace margelo::nitro::rive { } // Methods + std::shared_ptr> JHybridViewModelNumberPropertySpec::getValueAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getValueAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result->value()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + void JHybridViewModelNumberPropertySpec::set(double value) { + static const auto method = _javaPart->javaClassStatic()->getMethod("set"); + method(_javaPart, value); + } std::function JHybridViewModelNumberPropertySpec::addListener(const std::function& onChanged) { static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* onChanged */)>("addListener_cxx"); auto __result = method(_javaPart, JFunc_void_double_cxx::fromCpp(onChanged)); diff --git a/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp index e0953691..2116e132 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp @@ -57,6 +57,8 @@ namespace margelo::nitro::rive { public: // Methods + std::shared_ptr> getValueAsync() override; + void set(double value) override; std::function addListener(const std::function& onChanged) override; void removeListeners() override; diff --git a/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp index f167ad35..e105963c 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp @@ -15,6 +15,8 @@ namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; } #include "HybridViewModelInstanceSpec.hpp" #include #include "JHybridViewModelInstanceSpec.hpp" +#include +#include namespace margelo::nitro::rive { @@ -83,5 +85,53 @@ namespace margelo::nitro::rive { auto __result = method(_javaPart); return __result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt; } + std::shared_ptr>>> JHybridViewModelSpec::createInstanceByNameAsync(const std::string& name) { + static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* name */)>("createInstanceByNameAsync"); + auto __result = method(_javaPart, jni::make_jstring(name)); + return [&]() { + auto __promise = Promise>>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + std::shared_ptr>>> JHybridViewModelSpec::createDefaultInstanceAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("createDefaultInstanceAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise>>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + std::shared_ptr>>> JHybridViewModelSpec::createBlankInstanceAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("createBlankInstanceAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise>>::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result != nullptr ? std::make_optional(__result->getJHybridViewModelInstanceSpec()) : std::nullopt); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } } // namespace margelo::nitro::rive diff --git a/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp index 7b0a1d4d..41bd0779 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp @@ -60,6 +60,9 @@ namespace margelo::nitro::rive { std::optional> createInstanceByName(const std::string& name) override; std::optional> createDefaultInstance() override; std::optional> createInstance() override; + std::shared_ptr>>> createInstanceByNameAsync(const std::string& name) override; + std::shared_ptr>>> createDefaultInstanceAsync() override; + std::shared_ptr>>> createBlankInstanceAsync() override; private: jni::global_ref _javaPart; diff --git a/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp index 0d87f455..ae9d77ee 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp @@ -10,6 +10,8 @@ #include +#include +#include #include #include "JFunc_void.hpp" #include @@ -56,6 +58,26 @@ namespace margelo::nitro::rive { } // Methods + std::shared_ptr> JHybridViewModelStringPropertySpec::getValueAsync() { + static const auto method = _javaPart->javaClassStatic()->getMethod()>("getValueAsync"); + auto __result = method(_javaPart); + return [&]() { + auto __promise = Promise::create(); + __result->cthis()->addOnResolvedListener([=](const jni::alias_ref& __boxedResult) { + auto __result = jni::static_ref_cast(__boxedResult); + __promise->resolve(__result->toStdString()); + }); + __result->cthis()->addOnRejectedListener([=](const jni::alias_ref& __throwable) { + jni::JniException __jniError(__throwable); + __promise->reject(std::make_exception_ptr(__jniError)); + }); + return __promise; + }(); + } + void JHybridViewModelStringPropertySpec::set(const std::string& value) { + static const auto method = _javaPart->javaClassStatic()->getMethod /* value */)>("set"); + method(_javaPart, jni::make_jstring(value)); + } std::function JHybridViewModelStringPropertySpec::addListener(const std::function& onChanged) { static const auto method = _javaPart->javaClassStatic()->getMethod(jni::alias_ref /* onChanged */)>("addListener_cxx"); auto __result = method(_javaPart, JFunc_void_std__string_cxx::fromCpp(onChanged)); diff --git a/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp b/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp index 158d8344..8dfd69d3 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp +++ b/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp @@ -57,6 +57,8 @@ namespace margelo::nitro::rive { public: // Methods + std::shared_ptr> getValueAsync() override; + void set(const std::string& value) override; std::function addListener(const std::function& onChanged) override; void removeListeners() override; diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt index 92746f59..39625a33 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -54,6 +55,26 @@ abstract class HybridRiveFileSpec: HybridObject() { @Keep abstract fun updateReferencedAssets(referencedAssets: ReferencedAssetsType): Unit + @DoNotStrip + @Keep + abstract fun getViewModelNamesAsync(): Promise> + + @DoNotStrip + @Keep + abstract fun viewModelByNameAsync(name: String, validate: Boolean?): Promise + + @DoNotStrip + @Keep + abstract fun defaultArtboardViewModelAsync(artboardBy: ArtboardBy?): Promise + + @DoNotStrip + @Keep + abstract fun getArtboardCountAsync(): Promise + + @DoNotStrip + @Keep + abstract fun getArtboardNamesAsync(): Promise> + @DoNotStrip @Keep abstract fun getBindableArtboard(name: String): HybridBindableArtboardSpec diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt index d85ea31a..6878d126 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -32,6 +33,14 @@ abstract class HybridViewModelBooleanPropertySpec: HybridViewModelPropertySpec() abstract var value: Boolean // Methods + @DoNotStrip + @Keep + abstract fun getValueAsync(): Promise + + @DoNotStrip + @Keep + abstract fun set(value: Boolean): Unit + abstract fun addListener(onChanged: (value: Boolean) -> Unit): () -> Unit @DoNotStrip diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt index cc77ae23..9495e973 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -32,6 +33,14 @@ abstract class HybridViewModelColorPropertySpec: HybridViewModelPropertySpec() { abstract var value: Double // Methods + @DoNotStrip + @Keep + abstract fun getValueAsync(): Promise + + @DoNotStrip + @Keep + abstract fun set(value: Double): Unit + abstract fun addListener(onChanged: (value: Double) -> Unit): () -> Unit @DoNotStrip diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt index fc8ca0d1..a3b61f9c 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -32,6 +33,14 @@ abstract class HybridViewModelEnumPropertySpec: HybridViewModelPropertySpec() { abstract var value: String // Methods + @DoNotStrip + @Keep + abstract fun getValueAsync(): Promise + + @DoNotStrip + @Keep + abstract fun set(value: String): Unit + abstract fun addListener(onChanged: (value: String) -> Unit): () -> Unit @DoNotStrip diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt index 5727b5b2..dd360e91 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -70,6 +71,10 @@ abstract class HybridViewModelInstanceSpec: HybridObject() { @Keep abstract fun viewModel(path: String): HybridViewModelInstanceSpec? + @DoNotStrip + @Keep + abstract fun viewModelAsync(path: String): Promise + @DoNotStrip @Keep abstract fun replaceViewModel(path: String, instance: HybridViewModelInstanceSpec): Unit diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt index b250f717..5fd5551a 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -34,6 +35,14 @@ abstract class HybridViewModelListPropertySpec: HybridViewModelPropertySpec() { @Keep abstract fun getInstanceAt(index: Double): HybridViewModelInstanceSpec? + @DoNotStrip + @Keep + abstract fun getLengthAsync(): Promise + + @DoNotStrip + @Keep + abstract fun getInstanceAtAsync(index: Double): Promise + @DoNotStrip @Keep abstract fun addInstance(instance: HybridViewModelInstanceSpec): Unit diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt index 71b04eb2..9504db8d 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -32,6 +33,14 @@ abstract class HybridViewModelNumberPropertySpec: HybridViewModelPropertySpec() abstract var value: Double // Methods + @DoNotStrip + @Keep + abstract fun getValueAsync(): Promise + + @DoNotStrip + @Keep + abstract fun set(value: Double): Unit + abstract fun addListener(onChanged: (value: Double) -> Unit): () -> Unit @DoNotStrip diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt index be153d81..99922fa0 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -53,6 +54,18 @@ abstract class HybridViewModelSpec: HybridObject() { @DoNotStrip @Keep abstract fun createInstance(): HybridViewModelInstanceSpec? + + @DoNotStrip + @Keep + abstract fun createInstanceByNameAsync(name: String): Promise + + @DoNotStrip + @Keep + abstract fun createDefaultInstanceAsync(): Promise + + @DoNotStrip + @Keep + abstract fun createBlankInstanceAsync(): Promise // Default implementation of `HybridObject.toString()` override fun toString(): String { diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt index 6280b61b..3136c77e 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt @@ -10,6 +10,7 @@ package com.margelo.nitro.rive import androidx.annotation.Keep import com.facebook.jni.HybridData import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise import com.margelo.nitro.core.HybridObject /** @@ -32,6 +33,14 @@ abstract class HybridViewModelStringPropertySpec: HybridViewModelPropertySpec() abstract var value: String // Methods + @DoNotStrip + @Keep + abstract fun getValueAsync(): Promise + + @DoNotStrip + @Keep + abstract fun set(value: String): Unit + abstract fun addListener(onChanged: (value: String) -> Unit): () -> Unit @DoNotStrip diff --git a/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp b/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp index 89ae6cb9..7c1b9ce4 100644 --- a/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +++ b/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp @@ -82,6 +82,38 @@ namespace margelo::nitro::rive::bridge::swift { return swiftPart.toUnsafe(); } + // pragma MARK: std::function& /* result */)> + Func_void_std__vector_std__string_ create_Func_void_std__vector_std__string_(void* NON_NULL swiftClosureWrapper) noexcept { + auto swiftClosure = RNRive::Func_void_std__vector_std__string_::fromUnsafe(swiftClosureWrapper); + return [swiftClosure = std::move(swiftClosure)](const std::vector& result) mutable -> void { + swiftClosure.call(result); + }; + } + + // pragma MARK: std::function + Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept { + auto swiftClosure = RNRive::Func_void_std__exception_ptr::fromUnsafe(swiftClosureWrapper); + return [swiftClosure = std::move(swiftClosure)](const std::exception_ptr& error) mutable -> void { + swiftClosure.call(error); + }; + } + + // pragma MARK: std::function>& /* result */)> + Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__ create_Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__(void* NON_NULL swiftClosureWrapper) noexcept { + auto swiftClosure = RNRive::Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__::fromUnsafe(swiftClosureWrapper); + return [swiftClosure = std::move(swiftClosure)](const std::optional>& result) mutable -> void { + swiftClosure.call(result); + }; + } + + // pragma MARK: std::function + Func_void_double create_Func_void_double(void* NON_NULL swiftClosureWrapper) noexcept { + auto swiftClosure = RNRive::Func_void_double::fromUnsafe(swiftClosureWrapper); + return [swiftClosure = std::move(swiftClosure)](double result) mutable -> void { + swiftClosure.call(result); + }; + } + // pragma MARK: std::shared_ptr std::shared_ptr create_std__shared_ptr_HybridRiveFileSpec_(void* NON_NULL swiftUnsafePointer) noexcept { RNRive::HybridRiveFileSpec_cxx swiftPart = RNRive::HybridRiveFileSpec_cxx::fromUnsafe(swiftUnsafePointer); @@ -106,14 +138,6 @@ namespace margelo::nitro::rive::bridge::swift { }; } - // pragma MARK: std::function - Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept { - auto swiftClosure = RNRive::Func_void_std__exception_ptr::fromUnsafe(swiftClosureWrapper); - return [swiftClosure = std::move(swiftClosure)](const std::exception_ptr& error) mutable -> void { - swiftClosure.call(error); - }; - } - // pragma MARK: std::shared_ptr std::shared_ptr create_std__shared_ptr_HybridRiveFileFactorySpec_(void* NON_NULL swiftUnsafePointer) noexcept { RNRive::HybridRiveFileFactorySpec_cxx swiftPart = RNRive::HybridRiveFileFactorySpec_cxx::fromUnsafe(swiftUnsafePointer); @@ -274,6 +298,14 @@ namespace margelo::nitro::rive::bridge::swift { return swiftPart.toUnsafe(); } + // pragma MARK: std::function>& /* result */)> + Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ create_Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__(void* NON_NULL swiftClosureWrapper) noexcept { + auto swiftClosure = RNRive::Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__::fromUnsafe(swiftClosureWrapper); + return [swiftClosure = std::move(swiftClosure)](const std::optional>& result) mutable -> void { + swiftClosure.call(result); + }; + } + // pragma MARK: std::shared_ptr std::shared_ptr create_std__shared_ptr_HybridViewModelPropertySpec_(void* NON_NULL swiftUnsafePointer) noexcept { RNRive::HybridViewModelPropertySpec_cxx swiftPart = RNRive::HybridViewModelPropertySpec_cxx::fromUnsafe(swiftUnsafePointer); @@ -434,19 +466,11 @@ namespace margelo::nitro::rive::bridge::swift { return swiftPart.toUnsafe(); } - // pragma MARK: std::function - Func_void_double create_Func_void_double(void* NON_NULL swiftClosureWrapper) noexcept { - auto swiftClosure = RNRive::Func_void_double::fromUnsafe(swiftClosureWrapper); - return [swiftClosure = std::move(swiftClosure)](double value) mutable -> void { - swiftClosure.call(value); - }; - } - - // pragma MARK: std::function + // pragma MARK: std::function Func_void_std__string create_Func_void_std__string(void* NON_NULL swiftClosureWrapper) noexcept { auto swiftClosure = RNRive::Func_void_std__string::fromUnsafe(swiftClosureWrapper); - return [swiftClosure = std::move(swiftClosure)](const std::string& value) mutable -> void { - swiftClosure.call(value); + return [swiftClosure = std::move(swiftClosure)](const std::string& result) mutable -> void { + swiftClosure.call(result); }; } diff --git a/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp b/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp index 66dd7c81..d442201c 100644 --- a/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +++ b/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp @@ -333,6 +333,145 @@ namespace margelo::nitro::rive::bridge::swift { return vector; } + // pragma MARK: std::shared_ptr>> + /** + * Specialized version of `std::shared_ptr>>`. + */ + using std__shared_ptr_Promise_std__vector_std__string___ = std::shared_ptr>>; + inline std::shared_ptr>> create_std__shared_ptr_Promise_std__vector_std__string___() noexcept { + return Promise>::create(); + } + inline PromiseHolder> wrap_std__shared_ptr_Promise_std__vector_std__string___(std::shared_ptr>> promise) noexcept { + return PromiseHolder>(std::move(promise)); + } + + // pragma MARK: std::function& /* result */)> + /** + * Specialized version of `std::function&)>`. + */ + using Func_void_std__vector_std__string_ = std::function& /* result */)>; + /** + * Wrapper class for a `std::function& / * result * /)>`, this can be used from Swift. + */ + class Func_void_std__vector_std__string__Wrapper final { + public: + explicit Func_void_std__vector_std__string__Wrapper(std::function& /* result */)>&& func): _function(std::make_unique& /* result */)>>(std::move(func))) {} + inline void call(std::vector result) const noexcept { + _function->operator()(result); + } + private: + std::unique_ptr& /* result */)>> _function; + } SWIFT_NONCOPYABLE; + Func_void_std__vector_std__string_ create_Func_void_std__vector_std__string_(void* NON_NULL swiftClosureWrapper) noexcept; + inline Func_void_std__vector_std__string__Wrapper wrap_Func_void_std__vector_std__string_(Func_void_std__vector_std__string_ value) noexcept { + return Func_void_std__vector_std__string__Wrapper(std::move(value)); + } + + // pragma MARK: std::function + /** + * Specialized version of `std::function`. + */ + using Func_void_std__exception_ptr = std::function; + /** + * Wrapper class for a `std::function`, this can be used from Swift. + */ + class Func_void_std__exception_ptr_Wrapper final { + public: + explicit Func_void_std__exception_ptr_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} + inline void call(std::exception_ptr error) const noexcept { + _function->operator()(error); + } + private: + std::unique_ptr> _function; + } SWIFT_NONCOPYABLE; + Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept; + inline Func_void_std__exception_ptr_Wrapper wrap_Func_void_std__exception_ptr(Func_void_std__exception_ptr value) noexcept { + return Func_void_std__exception_ptr_Wrapper(std::move(value)); + } + + // pragma MARK: std::shared_ptr>>> + /** + * Specialized version of `std::shared_ptr>>>`. + */ + using std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____ = std::shared_ptr>>>; + inline std::shared_ptr>>> create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____() noexcept { + return Promise>>::create(); + } + inline PromiseHolder>> wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____(std::shared_ptr>>> promise) noexcept { + return PromiseHolder>>(std::move(promise)); + } + + // pragma MARK: std::function>& /* result */)> + /** + * Specialized version of `std::function>&)>`. + */ + using Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__ = std::function>& /* result */)>; + /** + * Wrapper class for a `std::function>& / * result * /)>`, this can be used from Swift. + */ + class Func_void_std__optional_std__shared_ptr_HybridViewModelSpec___Wrapper final { + public: + explicit Func_void_std__optional_std__shared_ptr_HybridViewModelSpec___Wrapper(std::function>& /* result */)>&& func): _function(std::make_unique>& /* result */)>>(std::move(func))) {} + inline void call(std::optional> result) const noexcept { + _function->operator()(result); + } + private: + std::unique_ptr>& /* result */)>> _function; + } SWIFT_NONCOPYABLE; + Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__ create_Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__(void* NON_NULL swiftClosureWrapper) noexcept; + inline Func_void_std__optional_std__shared_ptr_HybridViewModelSpec___Wrapper wrap_Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__(Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__ value) noexcept { + return Func_void_std__optional_std__shared_ptr_HybridViewModelSpec___Wrapper(std::move(value)); + } + + // pragma MARK: std::optional + /** + * Specialized version of `std::optional`. + */ + using std__optional_bool_ = std::optional; + inline std::optional create_std__optional_bool_(const bool& value) noexcept { + return std::optional(value); + } + inline bool has_value_std__optional_bool_(const std::optional& optional) noexcept { + return optional.has_value(); + } + inline bool get_std__optional_bool_(const std::optional& optional) noexcept { + return optional.value(); + } + + // pragma MARK: std::shared_ptr> + /** + * Specialized version of `std::shared_ptr>`. + */ + using std__shared_ptr_Promise_double__ = std::shared_ptr>; + inline std::shared_ptr> create_std__shared_ptr_Promise_double__() noexcept { + return Promise::create(); + } + inline PromiseHolder wrap_std__shared_ptr_Promise_double__(std::shared_ptr> promise) noexcept { + return PromiseHolder(std::move(promise)); + } + + // pragma MARK: std::function + /** + * Specialized version of `std::function`. + */ + using Func_void_double = std::function; + /** + * Wrapper class for a `std::function`, this can be used from Swift. + */ + class Func_void_double_Wrapper final { + public: + explicit Func_void_double_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} + inline void call(double result) const noexcept { + _function->operator()(result); + } + private: + std::unique_ptr> _function; + } SWIFT_NONCOPYABLE; + Func_void_double create_Func_void_double(void* NON_NULL swiftClosureWrapper) noexcept; + inline Func_void_double_Wrapper wrap_Func_void_double(Func_void_double value) noexcept { + return Func_void_double_Wrapper(std::move(value)); + } + // pragma MARK: std::shared_ptr /** * Specialized version of `std::shared_ptr`. @@ -363,6 +502,33 @@ namespace margelo::nitro::rive::bridge::swift { return Result::withError(error); } + // pragma MARK: Result>>> + using Result_std__shared_ptr_Promise_std__vector_std__string____ = Result>>>; + inline Result_std__shared_ptr_Promise_std__vector_std__string____ create_Result_std__shared_ptr_Promise_std__vector_std__string____(const std::shared_ptr>>& value) noexcept { + return Result>>>::withValue(value); + } + inline Result_std__shared_ptr_Promise_std__vector_std__string____ create_Result_std__shared_ptr_Promise_std__vector_std__string____(const std::exception_ptr& error) noexcept { + return Result>>>::withError(error); + } + + // pragma MARK: Result>>>> + using Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____ = Result>>>>; + inline Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____ create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____(const std::shared_ptr>>>& value) noexcept { + return Result>>>>::withValue(value); + } + inline Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____ create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____(const std::exception_ptr& error) noexcept { + return Result>>>>::withError(error); + } + + // pragma MARK: Result>> + using Result_std__shared_ptr_Promise_double___ = Result>>; + inline Result_std__shared_ptr_Promise_double___ create_Result_std__shared_ptr_Promise_double___(const std::shared_ptr>& value) noexcept { + return Result>>::withValue(value); + } + inline Result_std__shared_ptr_Promise_double___ create_Result_std__shared_ptr_Promise_double___(const std::exception_ptr& error) noexcept { + return Result>>::withError(error); + } + // pragma MARK: Result> using Result_std__shared_ptr_HybridBindableArtboardSpec__ = Result>; inline Result_std__shared_ptr_HybridBindableArtboardSpec__ create_Result_std__shared_ptr_HybridBindableArtboardSpec__(const std::shared_ptr& value) noexcept { @@ -406,28 +572,6 @@ namespace margelo::nitro::rive::bridge::swift { return Func_void_std__shared_ptr_HybridRiveFileSpec__Wrapper(std::move(value)); } - // pragma MARK: std::function - /** - * Specialized version of `std::function`. - */ - using Func_void_std__exception_ptr = std::function; - /** - * Wrapper class for a `std::function`, this can be used from Swift. - */ - class Func_void_std__exception_ptr_Wrapper final { - public: - explicit Func_void_std__exception_ptr_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} - inline void call(std::exception_ptr error) const noexcept { - _function->operator()(error); - } - private: - std::unique_ptr> _function; - } SWIFT_NONCOPYABLE; - Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept; - inline Func_void_std__exception_ptr_Wrapper wrap_Func_void_std__exception_ptr(Func_void_std__exception_ptr value) noexcept { - return Func_void_std__exception_ptr_Wrapper(std::move(value)); - } - // pragma MARK: std::optional /** * Specialized version of `std::optional`. @@ -661,21 +805,6 @@ namespace margelo::nitro::rive::bridge::swift { using std__weak_ptr_HybridRiveRuntimeSpec_ = std::weak_ptr; inline std__weak_ptr_HybridRiveRuntimeSpec_ weakify_std__shared_ptr_HybridRiveRuntimeSpec_(const std::shared_ptr& strong) noexcept { return strong; } - // pragma MARK: std::optional - /** - * Specialized version of `std::optional`. - */ - using std__optional_bool_ = std::optional; - inline std::optional create_std__optional_bool_(const bool& value) noexcept { - return std::optional(value); - } - inline bool has_value_std__optional_bool_(const std::optional& optional) noexcept { - return optional.has_value(); - } - inline bool get_std__optional_bool_(const std::optional& optional) noexcept { - return optional.value(); - } - // pragma MARK: std::optional /** * Specialized version of `std::optional`. @@ -993,6 +1122,49 @@ namespace margelo::nitro::rive::bridge::swift { return Result::withError(error); } + // pragma MARK: std::shared_ptr>>> + /** + * Specialized version of `std::shared_ptr>>>`. + */ + using std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____ = std::shared_ptr>>>; + inline std::shared_ptr>>> create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____() noexcept { + return Promise>>::create(); + } + inline PromiseHolder>> wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____(std::shared_ptr>>> promise) noexcept { + return PromiseHolder>>(std::move(promise)); + } + + // pragma MARK: std::function>& /* result */)> + /** + * Specialized version of `std::function>&)>`. + */ + using Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ = std::function>& /* result */)>; + /** + * Wrapper class for a `std::function>& / * result * /)>`, this can be used from Swift. + */ + class Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___Wrapper final { + public: + explicit Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___Wrapper(std::function>& /* result */)>&& func): _function(std::make_unique>& /* result */)>>(std::move(func))) {} + inline void call(std::optional> result) const noexcept { + _function->operator()(result); + } + private: + std::unique_ptr>& /* result */)>> _function; + } SWIFT_NONCOPYABLE; + Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ create_Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__(void* NON_NULL swiftClosureWrapper) noexcept; + inline Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___Wrapper wrap_Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__(Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ value) noexcept { + return Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___Wrapper(std::move(value)); + } + + // pragma MARK: Result>>>> + using Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ = Result>>>>; + inline Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(const std::shared_ptr>>>& value) noexcept { + return Result>>>>::withValue(value); + } + inline Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(const std::exception_ptr& error) noexcept { + return Result>>>>::withError(error); + } + // pragma MARK: std::shared_ptr /** * Specialized version of `std::shared_ptr`. @@ -1356,28 +1528,6 @@ namespace margelo::nitro::rive::bridge::swift { return Result>>::withError(error); } - // pragma MARK: std::function - /** - * Specialized version of `std::function`. - */ - using Func_void_double = std::function; - /** - * Wrapper class for a `std::function`, this can be used from Swift. - */ - class Func_void_double_Wrapper final { - public: - explicit Func_void_double_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} - inline void call(double value) const noexcept { - _function->operator()(value); - } - private: - std::unique_ptr> _function; - } SWIFT_NONCOPYABLE; - Func_void_double create_Func_void_double(void* NON_NULL swiftClosureWrapper) noexcept; - inline Func_void_double_Wrapper wrap_Func_void_double(Func_void_double value) noexcept { - return Func_void_double_Wrapper(std::move(value)); - } - // pragma MARK: Result> using Result_std__function_void____ = Result>; inline Result_std__function_void____ create_Result_std__function_void____(const std::function& value) noexcept { @@ -1387,28 +1537,49 @@ namespace margelo::nitro::rive::bridge::swift { return Result>::withError(error); } - // pragma MARK: std::function + // pragma MARK: std::shared_ptr> + /** + * Specialized version of `std::shared_ptr>`. + */ + using std__shared_ptr_Promise_std__string__ = std::shared_ptr>; + inline std::shared_ptr> create_std__shared_ptr_Promise_std__string__() noexcept { + return Promise::create(); + } + inline PromiseHolder wrap_std__shared_ptr_Promise_std__string__(std::shared_ptr> promise) noexcept { + return PromiseHolder(std::move(promise)); + } + + // pragma MARK: std::function /** * Specialized version of `std::function`. */ - using Func_void_std__string = std::function; + using Func_void_std__string = std::function; /** - * Wrapper class for a `std::function`, this can be used from Swift. + * Wrapper class for a `std::function`, this can be used from Swift. */ class Func_void_std__string_Wrapper final { public: - explicit Func_void_std__string_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} - inline void call(std::string value) const noexcept { - _function->operator()(value); + explicit Func_void_std__string_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} + inline void call(std::string result) const noexcept { + _function->operator()(result); } private: - std::unique_ptr> _function; + std::unique_ptr> _function; } SWIFT_NONCOPYABLE; Func_void_std__string create_Func_void_std__string(void* NON_NULL swiftClosureWrapper) noexcept; inline Func_void_std__string_Wrapper wrap_Func_void_std__string(Func_void_std__string value) noexcept { return Func_void_std__string_Wrapper(std::move(value)); } + // pragma MARK: Result>> + using Result_std__shared_ptr_Promise_std__string___ = Result>>; + inline Result_std__shared_ptr_Promise_std__string___ create_Result_std__shared_ptr_Promise_std__string___(const std::shared_ptr>& value) noexcept { + return Result>>::withValue(value); + } + inline Result_std__shared_ptr_Promise_std__string___ create_Result_std__shared_ptr_Promise_std__string___(const std::exception_ptr& error) noexcept { + return Result>>::withError(error); + } + // pragma MARK: std::optional> /** * Specialized version of `std::optional>`. diff --git a/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp b/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp index c2d1cd57..9beef6ad 100644 --- a/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp @@ -38,6 +38,7 @@ namespace margelo::nitro::rive { class HybridBindableArtboardSpec; } #include "ResolvedReferencedAsset.hpp" #include #include "HybridRiveImageSpec.hpp" +#include #include "HybridBindableArtboardSpec.hpp" #include "RNRive-Swift-Cxx-Umbrella.hpp" @@ -130,6 +131,46 @@ namespace margelo::nitro::rive { std::rethrow_exception(__result.error()); } } + inline std::shared_ptr>> getViewModelNamesAsync() override { + auto __result = _swiftPart.getViewModelNamesAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline std::shared_ptr>>> viewModelByNameAsync(const std::string& name, std::optional validate) override { + auto __result = _swiftPart.viewModelByNameAsync(name, validate); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline std::shared_ptr>>> defaultArtboardViewModelAsync(const std::optional& artboardBy) override { + auto __result = _swiftPart.defaultArtboardViewModelAsync(artboardBy); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline std::shared_ptr> getArtboardCountAsync() override { + auto __result = _swiftPart.getArtboardCountAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline std::shared_ptr>> getArtboardNamesAsync() override { + auto __result = _swiftPart.getArtboardNamesAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } inline std::shared_ptr getBindableArtboard(const std::string& name) override { auto __result = _swiftPart.getBindableArtboard(name); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp index 8fee0cc2..26283ea5 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp @@ -15,6 +15,7 @@ namespace RNRive { class HybridViewModelBooleanPropertySpec_cxx; } // Forward declaration of `HybridViewModelPropertySpecSwift` to properly resolve imports. namespace margelo::nitro::rive { class HybridViewModelPropertySpecSwift; } +#include #include #include "HybridViewModelPropertySpecSwift.hpp" @@ -74,6 +75,20 @@ namespace margelo::nitro::rive { public: // Methods + inline std::shared_ptr> getValueAsync() override { + auto __result = _swiftPart.getValueAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline void set(bool value) override { + auto __result = _swiftPart.set(std::forward(value)); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + } inline std::function addListener(const std::function& onChanged) override { auto __result = _swiftPart.addListener(onChanged); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp index c86b8a5e..19666def 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp @@ -15,6 +15,7 @@ namespace RNRive { class HybridViewModelColorPropertySpec_cxx; } // Forward declaration of `HybridViewModelPropertySpecSwift` to properly resolve imports. namespace margelo::nitro::rive { class HybridViewModelPropertySpecSwift; } +#include #include #include "HybridViewModelPropertySpecSwift.hpp" @@ -74,6 +75,20 @@ namespace margelo::nitro::rive { public: // Methods + inline std::shared_ptr> getValueAsync() override { + auto __result = _swiftPart.getValueAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline void set(double value) override { + auto __result = _swiftPart.set(std::forward(value)); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + } inline std::function addListener(const std::function& onChanged) override { auto __result = _swiftPart.addListener(onChanged); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp index 93f96d68..e0b7fb7d 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp @@ -16,6 +16,7 @@ namespace RNRive { class HybridViewModelEnumPropertySpec_cxx; } namespace margelo::nitro::rive { class HybridViewModelPropertySpecSwift; } #include +#include #include #include "HybridViewModelPropertySpecSwift.hpp" @@ -76,6 +77,20 @@ namespace margelo::nitro::rive { public: // Methods + inline std::shared_ptr> getValueAsync() override { + auto __result = _swiftPart.getValueAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline void set(const std::string& value) override { + auto __result = _swiftPart.set(value); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + } inline std::function addListener(const std::function& onChanged) override { auto __result = _swiftPart.addListener(onChanged); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp index 0c1b54a2..1d0e86ff 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp @@ -46,6 +46,7 @@ namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; } #include "HybridViewModelListPropertySpec.hpp" #include "HybridViewModelArtboardPropertySpec.hpp" #include "HybridViewModelInstanceSpec.hpp" +#include #include "RNRive-Swift-Cxx-Umbrella.hpp" @@ -180,6 +181,14 @@ namespace margelo::nitro::rive { auto __value = std::move(__result.value()); return __value; } + inline std::shared_ptr>>> viewModelAsync(const std::string& path) override { + auto __result = _swiftPart.viewModelAsync(path); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } inline void replaceViewModel(const std::string& path, const std::shared_ptr& instance) override { auto __result = _swiftPart.replaceViewModel(path, instance); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp index 5c617604..aa38b8cc 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp @@ -20,6 +20,7 @@ namespace margelo::nitro::rive { class HybridViewModelPropertySpecSwift; } #include #include "HybridViewModelInstanceSpec.hpp" #include +#include #include #include "HybridViewModelPropertySpecSwift.hpp" @@ -84,6 +85,22 @@ namespace margelo::nitro::rive { auto __value = std::move(__result.value()); return __value; } + inline std::shared_ptr> getLengthAsync() override { + auto __result = _swiftPart.getLengthAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline std::shared_ptr>>> getInstanceAtAsync(double index) override { + auto __result = _swiftPart.getInstanceAtAsync(std::forward(index)); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } inline void addInstance(const std::shared_ptr& instance) override { auto __result = _swiftPart.addInstance(instance); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp index 9e7e9248..6a49c876 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp @@ -15,6 +15,7 @@ namespace RNRive { class HybridViewModelNumberPropertySpec_cxx; } // Forward declaration of `HybridViewModelPropertySpecSwift` to properly resolve imports. namespace margelo::nitro::rive { class HybridViewModelPropertySpecSwift; } +#include #include #include "HybridViewModelPropertySpecSwift.hpp" @@ -74,6 +75,20 @@ namespace margelo::nitro::rive { public: // Methods + inline std::shared_ptr> getValueAsync() override { + auto __result = _swiftPart.getValueAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline void set(double value) override { + auto __result = _swiftPart.set(std::forward(value)); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + } inline std::function addListener(const std::function& onChanged) override { auto __result = _swiftPart.addListener(onChanged); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp index 353f6f10..7d18ce1f 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp @@ -19,6 +19,7 @@ namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; } #include #include "HybridViewModelInstanceSpec.hpp" #include +#include #include "RNRive-Swift-Cxx-Umbrella.hpp" @@ -111,6 +112,30 @@ namespace margelo::nitro::rive { auto __value = std::move(__result.value()); return __value; } + inline std::shared_ptr>>> createInstanceByNameAsync(const std::string& name) override { + auto __result = _swiftPart.createInstanceByNameAsync(name); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline std::shared_ptr>>> createDefaultInstanceAsync() override { + auto __result = _swiftPart.createDefaultInstanceAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline std::shared_ptr>>> createBlankInstanceAsync() override { + auto __result = _swiftPart.createBlankInstanceAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } private: RNRive::HybridViewModelSpec_cxx _swiftPart; diff --git a/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp b/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp index 4e0dfee6..bcbb8519 100644 --- a/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp @@ -16,6 +16,7 @@ namespace RNRive { class HybridViewModelStringPropertySpec_cxx; } namespace margelo::nitro::rive { class HybridViewModelPropertySpecSwift; } #include +#include #include #include "HybridViewModelPropertySpecSwift.hpp" @@ -76,6 +77,20 @@ namespace margelo::nitro::rive { public: // Methods + inline std::shared_ptr> getValueAsync() override { + auto __result = _swiftPart.getValueAsync(); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + auto __value = std::move(__result.value()); + return __value; + } + inline void set(const std::string& value) override { + auto __result = _swiftPart.set(value); + if (__result.hasError()) [[unlikely]] { + std::rethrow_exception(__result.error()); + } + } inline std::function addListener(const std::function& onChanged) override { auto __result = _swiftPart.addListener(onChanged); if (__result.hasError()) [[unlikely]] { diff --git a/nitrogen/generated/ios/swift/Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__.swift b/nitrogen/generated/ios/swift/Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__.swift new file mode 100644 index 00000000..ccfea4b3 --- /dev/null +++ b/nitrogen/generated/ios/swift/Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__.swift @@ -0,0 +1,57 @@ +/// +/// Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__.swift +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +import NitroModules + +/** + * Wraps a Swift `(_ value: (any HybridViewModelInstanceSpec)?) -> Void` as a class. + * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`. + */ +public final class Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ { + public typealias bridge = margelo.nitro.rive.bridge.swift + + private let closure: (_ value: (any HybridViewModelInstanceSpec)?) -> Void + + public init(_ closure: @escaping (_ value: (any HybridViewModelInstanceSpec)?) -> Void) { + self.closure = closure + } + + @inline(__always) + public func call(value: bridge.std__optional_std__shared_ptr_HybridViewModelInstanceSpec__) -> Void { + self.closure({ () -> (any HybridViewModelInstanceSpec)? in + if bridge.has_value_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__(value) { + let __unwrapped = bridge.get_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__(value) + return { () -> any HybridViewModelInstanceSpec in + let __unsafePointer = bridge.get_std__shared_ptr_HybridViewModelInstanceSpec_(__unwrapped) + let __instance = HybridViewModelInstanceSpec_cxx.fromUnsafe(__unsafePointer) + return __instance.getHybridViewModelInstanceSpec() + }() + } else { + return nil + } + }()) + } + + /** + * Casts this instance to a retained unsafe raw pointer. + * This acquires one additional strong reference on the object! + */ + @inline(__always) + public func toUnsafe() -> UnsafeMutableRawPointer { + return Unmanaged.passRetained(self).toOpaque() + } + + /** + * Casts an unsafe pointer to a `Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__`. + * The pointer has to be a retained opaque `Unmanaged`. + * This removes one strong reference from the object! + */ + @inline(__always) + public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ { + return Unmanaged.fromOpaque(pointer).takeRetainedValue() + } +} diff --git a/nitrogen/generated/ios/swift/Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__.swift b/nitrogen/generated/ios/swift/Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__.swift new file mode 100644 index 00000000..32e9b593 --- /dev/null +++ b/nitrogen/generated/ios/swift/Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__.swift @@ -0,0 +1,57 @@ +/// +/// Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__.swift +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +import NitroModules + +/** + * Wraps a Swift `(_ value: (any HybridViewModelSpec)?) -> Void` as a class. + * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`. + */ +public final class Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__ { + public typealias bridge = margelo.nitro.rive.bridge.swift + + private let closure: (_ value: (any HybridViewModelSpec)?) -> Void + + public init(_ closure: @escaping (_ value: (any HybridViewModelSpec)?) -> Void) { + self.closure = closure + } + + @inline(__always) + public func call(value: bridge.std__optional_std__shared_ptr_HybridViewModelSpec__) -> Void { + self.closure({ () -> (any HybridViewModelSpec)? in + if bridge.has_value_std__optional_std__shared_ptr_HybridViewModelSpec__(value) { + let __unwrapped = bridge.get_std__optional_std__shared_ptr_HybridViewModelSpec__(value) + return { () -> any HybridViewModelSpec in + let __unsafePointer = bridge.get_std__shared_ptr_HybridViewModelSpec_(__unwrapped) + let __instance = HybridViewModelSpec_cxx.fromUnsafe(__unsafePointer) + return __instance.getHybridViewModelSpec() + }() + } else { + return nil + } + }()) + } + + /** + * Casts this instance to a retained unsafe raw pointer. + * This acquires one additional strong reference on the object! + */ + @inline(__always) + public func toUnsafe() -> UnsafeMutableRawPointer { + return Unmanaged.passRetained(self).toOpaque() + } + + /** + * Casts an unsafe pointer to a `Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__`. + * The pointer has to be a retained opaque `Unmanaged`. + * This removes one strong reference from the object! + */ + @inline(__always) + public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__optional_std__shared_ptr_HybridViewModelSpec__ { + return Unmanaged.fromOpaque(pointer).takeRetainedValue() + } +} diff --git a/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift b/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift new file mode 100644 index 00000000..8f4042a3 --- /dev/null +++ b/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift @@ -0,0 +1,46 @@ +/// +/// Func_void_std__vector_std__string_.swift +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +import NitroModules + +/** + * Wraps a Swift `(_ value: [String]) -> Void` as a class. + * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`. + */ +public final class Func_void_std__vector_std__string_ { + public typealias bridge = margelo.nitro.rive.bridge.swift + + private let closure: (_ value: [String]) -> Void + + public init(_ closure: @escaping (_ value: [String]) -> Void) { + self.closure = closure + } + + @inline(__always) + public func call(value: bridge.std__vector_std__string_) -> Void { + self.closure(value.map({ __item in String(__item) })) + } + + /** + * Casts this instance to a retained unsafe raw pointer. + * This acquires one additional strong reference on the object! + */ + @inline(__always) + public func toUnsafe() -> UnsafeMutableRawPointer { + return Unmanaged.passRetained(self).toOpaque() + } + + /** + * Casts an unsafe pointer to a `Func_void_std__vector_std__string_`. + * The pointer has to be a retained opaque `Unmanaged`. + * This removes one strong reference from the object! + */ + @inline(__always) + public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__vector_std__string_ { + return Unmanaged.fromOpaque(pointer).takeRetainedValue() + } +} diff --git a/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift b/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift index 8c840b59..952d0a0e 100644 --- a/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift +++ b/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift @@ -19,6 +19,11 @@ public protocol HybridRiveFileSpec_protocol: HybridObject { func viewModelByName(name: String) throws -> (any HybridViewModelSpec)? func defaultArtboardViewModel(artboardBy: ArtboardBy?) throws -> (any HybridViewModelSpec)? func updateReferencedAssets(referencedAssets: ReferencedAssetsType) throws -> Void + func getViewModelNamesAsync() throws -> Promise<[String]> + func viewModelByNameAsync(name: String, validate: Bool?) throws -> Promise<(any HybridViewModelSpec)?> + func defaultArtboardViewModelAsync(artboardBy: ArtboardBy?) throws -> Promise<(any HybridViewModelSpec)?> + func getArtboardCountAsync() throws -> Promise + func getArtboardNamesAsync() throws -> Promise<[String]> func getBindableArtboard(name: String) throws -> (any HybridBindableArtboardSpec) } diff --git a/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift b/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift index 1c481956..19b47a7f 100644 --- a/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift @@ -229,6 +229,138 @@ open class HybridRiveFileSpec_cxx { } } + @inline(__always) + public final func getViewModelNamesAsync() -> bridge.Result_std__shared_ptr_Promise_std__vector_std__string____ { + do { + let __result = try self.__implementation.getViewModelNamesAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__vector_std__string___ in + let __promise = bridge.create_std__shared_ptr_Promise_std__vector_std__string___() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__vector_std__string___(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__vector_std__string_ in + var __vector = bridge.create_std__vector_std__string_(__result.count) + for __item in __result { + __vector.push_back(std.string(__item)) + } + return __vector + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__vector_std__string____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__vector_std__string____(__exceptionPtr) + } + } + + @inline(__always) + public final func viewModelByNameAsync(name: std.string, validate: bridge.std__optional_bool_) -> bridge.Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____ { + do { + let __result = try self.__implementation.viewModelByNameAsync(name: String(name), validate: { () -> Bool? in + if bridge.has_value_std__optional_bool_(validate) { + let __unwrapped = bridge.get_std__optional_bool_(validate) + return __unwrapped + } else { + return nil + } + }()) + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____ in + let __promise = bridge.create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__optional_std__shared_ptr_HybridViewModelSpec__ in + if let __unwrappedValue = __result { + return bridge.create_std__optional_std__shared_ptr_HybridViewModelSpec__({ () -> bridge.std__shared_ptr_HybridViewModelSpec_ in + let __cxxWrapped = __unwrappedValue.getCxxWrapper() + return __cxxWrapped.getCxxPart() + }()) + } else { + return .init() + } + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____(__exceptionPtr) + } + } + + @inline(__always) + public final func defaultArtboardViewModelAsync(artboardBy: bridge.std__optional_ArtboardBy_) -> bridge.Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____ { + do { + let __result = try self.__implementation.defaultArtboardViewModelAsync(artboardBy: artboardBy.value) + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____ in + let __promise = bridge.create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec____(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__optional_std__shared_ptr_HybridViewModelSpec__ in + if let __unwrappedValue = __result { + return bridge.create_std__optional_std__shared_ptr_HybridViewModelSpec__({ () -> bridge.std__shared_ptr_HybridViewModelSpec_ in + let __cxxWrapped = __unwrappedValue.getCxxWrapper() + return __cxxWrapped.getCxxPart() + }()) + } else { + return .init() + } + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelSpec_____(__exceptionPtr) + } + } + + @inline(__always) + public final func getArtboardCountAsync() -> bridge.Result_std__shared_ptr_Promise_double___ { + do { + let __result = try self.__implementation.getArtboardCountAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_double__ in + let __promise = bridge.create_std__shared_ptr_Promise_double__() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_double__(__promise) + __result + .then({ __result in __promiseHolder.resolve(__result) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_double___(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_double___(__exceptionPtr) + } + } + + @inline(__always) + public final func getArtboardNamesAsync() -> bridge.Result_std__shared_ptr_Promise_std__vector_std__string____ { + do { + let __result = try self.__implementation.getArtboardNamesAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__vector_std__string___ in + let __promise = bridge.create_std__shared_ptr_Promise_std__vector_std__string___() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__vector_std__string___(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__vector_std__string_ in + var __vector = bridge.create_std__vector_std__string_(__result.count) + for __item in __result { + __vector.push_back(std.string(__item)) + } + return __vector + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__vector_std__string____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__vector_std__string____(__exceptionPtr) + } + } + @inline(__always) public final func getBindableArtboard(name: std.string) -> bridge.Result_std__shared_ptr_HybridBindableArtboardSpec__ { do { diff --git a/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift b/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift index 88a229af..016933e2 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift @@ -13,6 +13,8 @@ public protocol HybridViewModelBooleanPropertySpec_protocol: HybridObject, Hybri var value: Bool { get set } // Methods + func getValueAsync() throws -> Promise + func set(value: Bool) throws -> Void func addListener(onChanged: @escaping (_ value: Bool) -> Void) throws -> () -> Void func removeListeners() throws -> Void } diff --git a/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift index 784585ee..5eae203b 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift @@ -136,6 +136,36 @@ open class HybridViewModelBooleanPropertySpec_cxx : HybridViewModelPropertySpec_ } // Methods + @inline(__always) + public final func getValueAsync() -> bridge.Result_std__shared_ptr_Promise_bool___ { + do { + let __result = try self.__implementation.getValueAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_bool__ in + let __promise = bridge.create_std__shared_ptr_Promise_bool__() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_bool__(__promise) + __result + .then({ __result in __promiseHolder.resolve(__result) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_bool___(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_bool___(__exceptionPtr) + } + } + + @inline(__always) + public final func set(value: Bool) -> bridge.Result_void_ { + do { + try self.__implementation.set(value: value) + return bridge.create_Result_void_() + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_void_(__exceptionPtr) + } + } + @inline(__always) public final func addListener(onChanged: bridge.Func_void_bool) -> bridge.Result_std__function_void____ { do { diff --git a/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift b/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift index 89230cdb..57e34f72 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift @@ -13,6 +13,8 @@ public protocol HybridViewModelColorPropertySpec_protocol: HybridObject, HybridV var value: Double { get set } // Methods + func getValueAsync() throws -> Promise + func set(value: Double) throws -> Void func addListener(onChanged: @escaping (_ value: Double) -> Void) throws -> () -> Void func removeListeners() throws -> Void } diff --git a/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift index 9278aa63..994cb62c 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift @@ -136,6 +136,36 @@ open class HybridViewModelColorPropertySpec_cxx : HybridViewModelPropertySpec_cx } // Methods + @inline(__always) + public final func getValueAsync() -> bridge.Result_std__shared_ptr_Promise_double___ { + do { + let __result = try self.__implementation.getValueAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_double__ in + let __promise = bridge.create_std__shared_ptr_Promise_double__() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_double__(__promise) + __result + .then({ __result in __promiseHolder.resolve(__result) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_double___(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_double___(__exceptionPtr) + } + } + + @inline(__always) + public final func set(value: Double) -> bridge.Result_void_ { + do { + try self.__implementation.set(value: value) + return bridge.create_Result_void_() + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_void_(__exceptionPtr) + } + } + @inline(__always) public final func addListener(onChanged: bridge.Func_void_double) -> bridge.Result_std__function_void____ { do { diff --git a/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift b/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift index 702e5031..e8a26784 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift @@ -13,6 +13,8 @@ public protocol HybridViewModelEnumPropertySpec_protocol: HybridObject, HybridVi var value: String { get set } // Methods + func getValueAsync() throws -> Promise + func set(value: String) throws -> Void func addListener(onChanged: @escaping (_ value: String) -> Void) throws -> () -> Void func removeListeners() throws -> Void } diff --git a/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift index 3a31751e..a7cef3c2 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift @@ -136,6 +136,36 @@ open class HybridViewModelEnumPropertySpec_cxx : HybridViewModelPropertySpec_cxx } // Methods + @inline(__always) + public final func getValueAsync() -> bridge.Result_std__shared_ptr_Promise_std__string___ { + do { + let __result = try self.__implementation.getValueAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__string__ in + let __promise = bridge.create_std__shared_ptr_Promise_std__string__() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__string__(__promise) + __result + .then({ __result in __promiseHolder.resolve(std.string(__result)) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__string___(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__string___(__exceptionPtr) + } + } + + @inline(__always) + public final func set(value: std.string) -> bridge.Result_void_ { + do { + try self.__implementation.set(value: String(value)) + return bridge.create_Result_void_() + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_void_(__exceptionPtr) + } + } + @inline(__always) public final func addListener(onChanged: bridge.Func_void_std__string) -> bridge.Result_std__function_void____ { do { diff --git a/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift b/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift index f8f54d46..aaa8e9ca 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift @@ -23,6 +23,7 @@ public protocol HybridViewModelInstanceSpec_protocol: HybridObject { func listProperty(path: String) throws -> (any HybridViewModelListPropertySpec)? func artboardProperty(path: String) throws -> (any HybridViewModelArtboardPropertySpec)? func viewModel(path: String) throws -> (any HybridViewModelInstanceSpec)? + func viewModelAsync(path: String) throws -> Promise<(any HybridViewModelInstanceSpec)?> func replaceViewModel(path: String, instance: (any HybridViewModelInstanceSpec)) throws -> Void } diff --git a/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift index 8d2b518c..48fcb568 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift @@ -339,6 +339,34 @@ open class HybridViewModelInstanceSpec_cxx { } } + @inline(__always) + public final func viewModelAsync(path: std.string) -> bridge.Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ { + do { + let __result = try self.__implementation.viewModelAsync(path: String(path)) + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____ in + let __promise = bridge.create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ in + if let __unwrappedValue = __result { + return bridge.create_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__({ () -> bridge.std__shared_ptr_HybridViewModelInstanceSpec_ in + let __cxxWrapped = __unwrappedValue.getCxxWrapper() + return __cxxWrapped.getCxxPart() + }()) + } else { + return .init() + } + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__exceptionPtr) + } + } + @inline(__always) public final func replaceViewModel(path: std.string, instance: bridge.std__shared_ptr_HybridViewModelInstanceSpec_) -> bridge.Result_void_ { do { diff --git a/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift b/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift index 60f6579f..df5af7d5 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift @@ -14,6 +14,8 @@ public protocol HybridViewModelListPropertySpec_protocol: HybridObject, HybridVi // Methods func getInstanceAt(index: Double) throws -> (any HybridViewModelInstanceSpec)? + func getLengthAsync() throws -> Promise + func getInstanceAtAsync(index: Double) throws -> Promise<(any HybridViewModelInstanceSpec)?> func addInstance(instance: (any HybridViewModelInstanceSpec)) throws -> Void func addInstanceAt(instance: (any HybridViewModelInstanceSpec), index: Double) throws -> Bool func removeInstance(instance: (any HybridViewModelInstanceSpec)) throws -> Void diff --git a/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift index 4b074636..bbb678c6 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift @@ -153,6 +153,53 @@ open class HybridViewModelListPropertySpec_cxx : HybridViewModelPropertySpec_cxx } } + @inline(__always) + public final func getLengthAsync() -> bridge.Result_std__shared_ptr_Promise_double___ { + do { + let __result = try self.__implementation.getLengthAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_double__ in + let __promise = bridge.create_std__shared_ptr_Promise_double__() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_double__(__promise) + __result + .then({ __result in __promiseHolder.resolve(__result) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_double___(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_double___(__exceptionPtr) + } + } + + @inline(__always) + public final func getInstanceAtAsync(index: Double) -> bridge.Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ { + do { + let __result = try self.__implementation.getInstanceAtAsync(index: index) + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____ in + let __promise = bridge.create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ in + if let __unwrappedValue = __result { + return bridge.create_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__({ () -> bridge.std__shared_ptr_HybridViewModelInstanceSpec_ in + let __cxxWrapped = __unwrappedValue.getCxxWrapper() + return __cxxWrapped.getCxxPart() + }()) + } else { + return .init() + } + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__exceptionPtr) + } + } + @inline(__always) public final func addInstance(instance: bridge.std__shared_ptr_HybridViewModelInstanceSpec_) -> bridge.Result_void_ { do { diff --git a/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift b/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift index a29d5b06..75991dfc 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift @@ -13,6 +13,8 @@ public protocol HybridViewModelNumberPropertySpec_protocol: HybridObject, Hybrid var value: Double { get set } // Methods + func getValueAsync() throws -> Promise + func set(value: Double) throws -> Void func addListener(onChanged: @escaping (_ value: Double) -> Void) throws -> () -> Void func removeListeners() throws -> Void } diff --git a/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift index 80f839c1..3922087d 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift @@ -136,6 +136,36 @@ open class HybridViewModelNumberPropertySpec_cxx : HybridViewModelPropertySpec_c } // Methods + @inline(__always) + public final func getValueAsync() -> bridge.Result_std__shared_ptr_Promise_double___ { + do { + let __result = try self.__implementation.getValueAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_double__ in + let __promise = bridge.create_std__shared_ptr_Promise_double__() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_double__(__promise) + __result + .then({ __result in __promiseHolder.resolve(__result) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_double___(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_double___(__exceptionPtr) + } + } + + @inline(__always) + public final func set(value: Double) -> bridge.Result_void_ { + do { + try self.__implementation.set(value: value) + return bridge.create_Result_void_() + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_void_(__exceptionPtr) + } + } + @inline(__always) public final func addListener(onChanged: bridge.Func_void_double) -> bridge.Result_std__function_void____ { do { diff --git a/nitrogen/generated/ios/swift/HybridViewModelSpec.swift b/nitrogen/generated/ios/swift/HybridViewModelSpec.swift index e973a3be..b699f291 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelSpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelSpec.swift @@ -19,6 +19,9 @@ public protocol HybridViewModelSpec_protocol: HybridObject { func createInstanceByName(name: String) throws -> (any HybridViewModelInstanceSpec)? func createDefaultInstance() throws -> (any HybridViewModelInstanceSpec)? func createInstance() throws -> (any HybridViewModelInstanceSpec)? + func createInstanceByNameAsync(name: String) throws -> Promise<(any HybridViewModelInstanceSpec)?> + func createDefaultInstanceAsync() throws -> Promise<(any HybridViewModelInstanceSpec)?> + func createBlankInstanceAsync() throws -> Promise<(any HybridViewModelInstanceSpec)?> } public extension HybridViewModelSpec_protocol { diff --git a/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift index 5c7ad3b0..6a5ef9d1 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift @@ -226,4 +226,88 @@ open class HybridViewModelSpec_cxx { return bridge.create_Result_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___(__exceptionPtr) } } + + @inline(__always) + public final func createInstanceByNameAsync(name: std.string) -> bridge.Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ { + do { + let __result = try self.__implementation.createInstanceByNameAsync(name: String(name)) + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____ in + let __promise = bridge.create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ in + if let __unwrappedValue = __result { + return bridge.create_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__({ () -> bridge.std__shared_ptr_HybridViewModelInstanceSpec_ in + let __cxxWrapped = __unwrappedValue.getCxxWrapper() + return __cxxWrapped.getCxxPart() + }()) + } else { + return .init() + } + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__exceptionPtr) + } + } + + @inline(__always) + public final func createDefaultInstanceAsync() -> bridge.Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ { + do { + let __result = try self.__implementation.createDefaultInstanceAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____ in + let __promise = bridge.create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ in + if let __unwrappedValue = __result { + return bridge.create_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__({ () -> bridge.std__shared_ptr_HybridViewModelInstanceSpec_ in + let __cxxWrapped = __unwrappedValue.getCxxWrapper() + return __cxxWrapped.getCxxPart() + }()) + } else { + return .init() + } + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__exceptionPtr) + } + } + + @inline(__always) + public final func createBlankInstanceAsync() -> bridge.Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____ { + do { + let __result = try self.__implementation.createBlankInstanceAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____ in + let __promise = bridge.create_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec____(__promise) + __result + .then({ __result in __promiseHolder.resolve({ () -> bridge.std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ in + if let __unwrappedValue = __result { + return bridge.create_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__({ () -> bridge.std__shared_ptr_HybridViewModelInstanceSpec_ in + let __cxxWrapped = __unwrappedValue.getCxxWrapper() + return __cxxWrapped.getCxxPart() + }()) + } else { + return .init() + } + }()) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__optional_std__shared_ptr_HybridViewModelInstanceSpec_____(__exceptionPtr) + } + } } diff --git a/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift b/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift index 4ce63bef..7b944798 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift @@ -13,6 +13,8 @@ public protocol HybridViewModelStringPropertySpec_protocol: HybridObject, Hybrid var value: String { get set } // Methods + func getValueAsync() throws -> Promise + func set(value: String) throws -> Void func addListener(onChanged: @escaping (_ value: String) -> Void) throws -> () -> Void func removeListeners() throws -> Void } diff --git a/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift b/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift index 76d1cb29..93a413e9 100644 --- a/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift +++ b/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift @@ -136,6 +136,36 @@ open class HybridViewModelStringPropertySpec_cxx : HybridViewModelPropertySpec_c } // Methods + @inline(__always) + public final func getValueAsync() -> bridge.Result_std__shared_ptr_Promise_std__string___ { + do { + let __result = try self.__implementation.getValueAsync() + let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__string__ in + let __promise = bridge.create_std__shared_ptr_Promise_std__string__() + let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__string__(__promise) + __result + .then({ __result in __promiseHolder.resolve(std.string(__result)) }) + .catch({ __error in __promiseHolder.reject(__error.toCpp()) }) + return __promise + }() + return bridge.create_Result_std__shared_ptr_Promise_std__string___(__resultCpp) + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_std__shared_ptr_Promise_std__string___(__exceptionPtr) + } + } + + @inline(__always) + public final func set(value: std.string) -> bridge.Result_void_ { + do { + try self.__implementation.set(value: String(value)) + return bridge.create_Result_void_() + } catch (let __error) { + let __exceptionPtr = __error.toCpp() + return bridge.create_Result_void_(__exceptionPtr) + } + } + @inline(__always) public final func addListener(onChanged: bridge.Func_void_std__string) -> bridge.Result_std__function_void____ { do { diff --git a/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp b/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp index 2aae1434..a39ff1ea 100644 --- a/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp +++ b/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp @@ -21,6 +21,11 @@ namespace margelo::nitro::rive { prototype.registerHybridMethod("viewModelByName", &HybridRiveFileSpec::viewModelByName); prototype.registerHybridMethod("defaultArtboardViewModel", &HybridRiveFileSpec::defaultArtboardViewModel); prototype.registerHybridMethod("updateReferencedAssets", &HybridRiveFileSpec::updateReferencedAssets); + prototype.registerHybridMethod("getViewModelNamesAsync", &HybridRiveFileSpec::getViewModelNamesAsync); + prototype.registerHybridMethod("viewModelByNameAsync", &HybridRiveFileSpec::viewModelByNameAsync); + prototype.registerHybridMethod("defaultArtboardViewModelAsync", &HybridRiveFileSpec::defaultArtboardViewModelAsync); + prototype.registerHybridMethod("getArtboardCountAsync", &HybridRiveFileSpec::getArtboardCountAsync); + prototype.registerHybridMethod("getArtboardNamesAsync", &HybridRiveFileSpec::getArtboardNamesAsync); prototype.registerHybridMethod("getBindableArtboard", &HybridRiveFileSpec::getBindableArtboard); }); } diff --git a/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp b/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp index 30a466b1..6394d695 100644 --- a/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp +++ b/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp @@ -29,6 +29,7 @@ namespace margelo::nitro::rive { class HybridBindableArtboardSpec; } #include "HybridViewModelSpec.hpp" #include "ArtboardBy.hpp" #include "ReferencedAssetsType.hpp" +#include #include "HybridBindableArtboardSpec.hpp" namespace margelo::nitro::rive { @@ -68,6 +69,11 @@ namespace margelo::nitro::rive { virtual std::optional> viewModelByName(const std::string& name) = 0; virtual std::optional> defaultArtboardViewModel(const std::optional& artboardBy) = 0; virtual void updateReferencedAssets(const ReferencedAssetsType& referencedAssets) = 0; + virtual std::shared_ptr>> getViewModelNamesAsync() = 0; + virtual std::shared_ptr>>> viewModelByNameAsync(const std::string& name, std::optional validate) = 0; + virtual std::shared_ptr>>> defaultArtboardViewModelAsync(const std::optional& artboardBy) = 0; + virtual std::shared_ptr> getArtboardCountAsync() = 0; + virtual std::shared_ptr>> getArtboardNamesAsync() = 0; virtual std::shared_ptr getBindableArtboard(const std::string& name) = 0; protected: diff --git a/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp index 5fb595e7..36640220 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp @@ -17,6 +17,8 @@ namespace margelo::nitro::rive { registerHybrids(this, [](Prototype& prototype) { prototype.registerHybridGetter("value", &HybridViewModelBooleanPropertySpec::getValue); prototype.registerHybridSetter("value", &HybridViewModelBooleanPropertySpec::setValue); + prototype.registerHybridMethod("getValueAsync", &HybridViewModelBooleanPropertySpec::getValueAsync); + prototype.registerHybridMethod("set", &HybridViewModelBooleanPropertySpec::set); prototype.registerHybridMethod("addListener", &HybridViewModelBooleanPropertySpec::addListener); prototype.registerHybridMethod("removeListeners", &HybridViewModelBooleanPropertySpec::removeListeners); }); diff --git a/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp index cfb3500c..0023f5af 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp @@ -16,6 +16,7 @@ // Forward declaration of `HybridViewModelPropertySpec` to properly resolve imports. namespace margelo::nitro::rive { class HybridViewModelPropertySpec; } +#include #include #include #include "HybridViewModelPropertySpec.hpp" @@ -52,6 +53,8 @@ namespace margelo::nitro::rive { public: // Methods + virtual std::shared_ptr> getValueAsync() = 0; + virtual void set(bool value) = 0; virtual std::function addListener(const std::function& onChanged) = 0; virtual void removeListeners() = 0; diff --git a/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp index 60dbaaa8..129f72fc 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp @@ -17,6 +17,8 @@ namespace margelo::nitro::rive { registerHybrids(this, [](Prototype& prototype) { prototype.registerHybridGetter("value", &HybridViewModelColorPropertySpec::getValue); prototype.registerHybridSetter("value", &HybridViewModelColorPropertySpec::setValue); + prototype.registerHybridMethod("getValueAsync", &HybridViewModelColorPropertySpec::getValueAsync); + prototype.registerHybridMethod("set", &HybridViewModelColorPropertySpec::set); prototype.registerHybridMethod("addListener", &HybridViewModelColorPropertySpec::addListener); prototype.registerHybridMethod("removeListeners", &HybridViewModelColorPropertySpec::removeListeners); }); diff --git a/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp index 4d4bb65f..589ec237 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp @@ -16,6 +16,7 @@ // Forward declaration of `HybridViewModelPropertySpec` to properly resolve imports. namespace margelo::nitro::rive { class HybridViewModelPropertySpec; } +#include #include #include #include "HybridViewModelPropertySpec.hpp" @@ -52,6 +53,8 @@ namespace margelo::nitro::rive { public: // Methods + virtual std::shared_ptr> getValueAsync() = 0; + virtual void set(double value) = 0; virtual std::function addListener(const std::function& onChanged) = 0; virtual void removeListeners() = 0; diff --git a/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp index ee1e984c..19ad36c1 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp @@ -17,6 +17,8 @@ namespace margelo::nitro::rive { registerHybrids(this, [](Prototype& prototype) { prototype.registerHybridGetter("value", &HybridViewModelEnumPropertySpec::getValue); prototype.registerHybridSetter("value", &HybridViewModelEnumPropertySpec::setValue); + prototype.registerHybridMethod("getValueAsync", &HybridViewModelEnumPropertySpec::getValueAsync); + prototype.registerHybridMethod("set", &HybridViewModelEnumPropertySpec::set); prototype.registerHybridMethod("addListener", &HybridViewModelEnumPropertySpec::addListener); prototype.registerHybridMethod("removeListeners", &HybridViewModelEnumPropertySpec::removeListeners); }); diff --git a/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp index 56fd3969..7246c5f2 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp @@ -17,6 +17,7 @@ namespace margelo::nitro::rive { class HybridViewModelPropertySpec; } #include +#include #include #include #include "HybridViewModelPropertySpec.hpp" @@ -53,6 +54,8 @@ namespace margelo::nitro::rive { public: // Methods + virtual std::shared_ptr> getValueAsync() = 0; + virtual void set(const std::string& value) = 0; virtual std::function addListener(const std::function& onChanged) = 0; virtual void removeListeners() = 0; diff --git a/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp index abd989ef..961edebf 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp @@ -25,6 +25,7 @@ namespace margelo::nitro::rive { prototype.registerHybridMethod("listProperty", &HybridViewModelInstanceSpec::listProperty); prototype.registerHybridMethod("artboardProperty", &HybridViewModelInstanceSpec::artboardProperty); prototype.registerHybridMethod("viewModel", &HybridViewModelInstanceSpec::viewModel); + prototype.registerHybridMethod("viewModelAsync", &HybridViewModelInstanceSpec::viewModelAsync); prototype.registerHybridMethod("replaceViewModel", &HybridViewModelInstanceSpec::replaceViewModel); }); } diff --git a/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp index 4b24d2ac..9fa31918 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp @@ -47,6 +47,7 @@ namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; } #include "HybridViewModelListPropertySpec.hpp" #include "HybridViewModelArtboardPropertySpec.hpp" #include "HybridViewModelInstanceSpec.hpp" +#include namespace margelo::nitro::rive { @@ -89,6 +90,7 @@ namespace margelo::nitro::rive { virtual std::optional> listProperty(const std::string& path) = 0; virtual std::optional> artboardProperty(const std::string& path) = 0; virtual std::optional> viewModel(const std::string& path) = 0; + virtual std::shared_ptr>>> viewModelAsync(const std::string& path) = 0; virtual void replaceViewModel(const std::string& path, const std::shared_ptr& instance) = 0; protected: diff --git a/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.cpp index ca384a8e..cf2eb99a 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.cpp @@ -17,6 +17,8 @@ namespace margelo::nitro::rive { registerHybrids(this, [](Prototype& prototype) { prototype.registerHybridGetter("length", &HybridViewModelListPropertySpec::getLength); prototype.registerHybridMethod("getInstanceAt", &HybridViewModelListPropertySpec::getInstanceAt); + prototype.registerHybridMethod("getLengthAsync", &HybridViewModelListPropertySpec::getLengthAsync); + prototype.registerHybridMethod("getInstanceAtAsync", &HybridViewModelListPropertySpec::getInstanceAtAsync); prototype.registerHybridMethod("addInstance", &HybridViewModelListPropertySpec::addInstance); prototype.registerHybridMethod("addInstanceAt", &HybridViewModelListPropertySpec::addInstanceAt); prototype.registerHybridMethod("removeInstance", &HybridViewModelListPropertySpec::removeInstance); diff --git a/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp index d88e1fa4..b795d9bc 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp @@ -21,6 +21,7 @@ namespace margelo::nitro::rive { class HybridViewModelPropertySpec; } #include #include "HybridViewModelInstanceSpec.hpp" #include +#include #include #include "HybridViewModelPropertySpec.hpp" @@ -56,6 +57,8 @@ namespace margelo::nitro::rive { public: // Methods virtual std::optional> getInstanceAt(double index) = 0; + virtual std::shared_ptr> getLengthAsync() = 0; + virtual std::shared_ptr>>> getInstanceAtAsync(double index) = 0; virtual void addInstance(const std::shared_ptr& instance) = 0; virtual bool addInstanceAt(const std::shared_ptr& instance, double index) = 0; virtual void removeInstance(const std::shared_ptr& instance) = 0; diff --git a/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp index 936a0fe9..5b383873 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp @@ -17,6 +17,8 @@ namespace margelo::nitro::rive { registerHybrids(this, [](Prototype& prototype) { prototype.registerHybridGetter("value", &HybridViewModelNumberPropertySpec::getValue); prototype.registerHybridSetter("value", &HybridViewModelNumberPropertySpec::setValue); + prototype.registerHybridMethod("getValueAsync", &HybridViewModelNumberPropertySpec::getValueAsync); + prototype.registerHybridMethod("set", &HybridViewModelNumberPropertySpec::set); prototype.registerHybridMethod("addListener", &HybridViewModelNumberPropertySpec::addListener); prototype.registerHybridMethod("removeListeners", &HybridViewModelNumberPropertySpec::removeListeners); }); diff --git a/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp index cb2d93b1..9a9f5248 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp @@ -16,6 +16,7 @@ // Forward declaration of `HybridViewModelPropertySpec` to properly resolve imports. namespace margelo::nitro::rive { class HybridViewModelPropertySpec; } +#include #include #include #include "HybridViewModelPropertySpec.hpp" @@ -52,6 +53,8 @@ namespace margelo::nitro::rive { public: // Methods + virtual std::shared_ptr> getValueAsync() = 0; + virtual void set(double value) = 0; virtual std::function addListener(const std::function& onChanged) = 0; virtual void removeListeners() = 0; diff --git a/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp index 228daf38..78f51ba0 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp @@ -21,6 +21,9 @@ namespace margelo::nitro::rive { prototype.registerHybridMethod("createInstanceByName", &HybridViewModelSpec::createInstanceByName); prototype.registerHybridMethod("createDefaultInstance", &HybridViewModelSpec::createDefaultInstance); prototype.registerHybridMethod("createInstance", &HybridViewModelSpec::createInstance); + prototype.registerHybridMethod("createInstanceByNameAsync", &HybridViewModelSpec::createInstanceByNameAsync); + prototype.registerHybridMethod("createDefaultInstanceAsync", &HybridViewModelSpec::createDefaultInstanceAsync); + prototype.registerHybridMethod("createBlankInstanceAsync", &HybridViewModelSpec::createBlankInstanceAsync); }); } diff --git a/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp index 5ac8d4c2..2ef01abe 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp @@ -20,6 +20,7 @@ namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; } #include #include "HybridViewModelInstanceSpec.hpp" #include +#include namespace margelo::nitro::rive { @@ -58,6 +59,9 @@ namespace margelo::nitro::rive { virtual std::optional> createInstanceByName(const std::string& name) = 0; virtual std::optional> createDefaultInstance() = 0; virtual std::optional> createInstance() = 0; + virtual std::shared_ptr>>> createInstanceByNameAsync(const std::string& name) = 0; + virtual std::shared_ptr>>> createDefaultInstanceAsync() = 0; + virtual std::shared_ptr>>> createBlankInstanceAsync() = 0; protected: // Hybrid Setup diff --git a/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp b/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp index dee90bad..b2cbc269 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp +++ b/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp @@ -17,6 +17,8 @@ namespace margelo::nitro::rive { registerHybrids(this, [](Prototype& prototype) { prototype.registerHybridGetter("value", &HybridViewModelStringPropertySpec::getValue); prototype.registerHybridSetter("value", &HybridViewModelStringPropertySpec::setValue); + prototype.registerHybridMethod("getValueAsync", &HybridViewModelStringPropertySpec::getValueAsync); + prototype.registerHybridMethod("set", &HybridViewModelStringPropertySpec::set); prototype.registerHybridMethod("addListener", &HybridViewModelStringPropertySpec::addListener); prototype.registerHybridMethod("removeListeners", &HybridViewModelStringPropertySpec::removeListeners); }); diff --git a/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp b/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp index 3349551a..b037ec41 100644 --- a/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp +++ b/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp @@ -17,6 +17,7 @@ namespace margelo::nitro::rive { class HybridViewModelPropertySpec; } #include +#include #include #include #include "HybridViewModelPropertySpec.hpp" @@ -53,6 +54,8 @@ namespace margelo::nitro::rive { public: // Methods + virtual std::shared_ptr> getValueAsync() = 0; + virtual void set(const std::string& value) = 0; virtual std::function addListener(const std::function& onChanged) = 0; virtual void removeListeners() = 0; diff --git a/src/specs/RiveFile.nitro.ts b/src/specs/RiveFile.nitro.ts index 02822c38..9b0f7015 100644 --- a/src/specs/RiveFile.nitro.ts +++ b/src/specs/RiveFile.nitro.ts @@ -22,20 +22,36 @@ export type ReferencedAssetsType = { */ export interface RiveFile extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { - /** The number of view models in the Rive file */ + /** @deprecated Use getViewModelNamesAsync instead */ readonly viewModelCount?: number; - /** Get a view model by index */ + /** @deprecated Use getViewModelNamesAsync + viewModelByNameAsync instead */ viewModelByIndex(index: number): ViewModel | undefined; - /** Get a view model by name */ + /** @deprecated Use viewModelByNameAsync instead */ viewModelByName(name: string): ViewModel | undefined; - /** Returns the default view model for the provided artboard */ + /** @deprecated Use defaultArtboardViewModelAsync instead */ defaultArtboardViewModel(artboardBy?: ArtboardBy): ViewModel | undefined; updateReferencedAssets(referencedAssets: ReferencedAssetsType): void; - /** The number of artboards in the Rive file */ + /** @deprecated Use getArtboardCountAsync instead */ readonly artboardCount: number; - /** The names of all artboards in the Rive file */ + /** @deprecated Use getArtboardNamesAsync instead */ readonly artboardNames: string[]; + + /** The names of all view models in the Rive file */ + getViewModelNamesAsync(): Promise; + /** Get a view model by name, optionally validating its properties */ + viewModelByNameAsync( + name: string, + validate?: boolean + ): Promise; + /** Get the default view model for the given artboard */ + defaultArtboardViewModelAsync( + artboardBy?: ArtboardBy + ): Promise; + /** The number of artboards in the Rive file */ + getArtboardCountAsync(): Promise; + /** The names of all artboards in the Rive file */ + getArtboardNamesAsync(): Promise; /** * Get a bindable artboard by name for use with data binding. * @throws Error if artboard with the given name is not found diff --git a/src/specs/ViewModel.nitro.ts b/src/specs/ViewModel.nitro.ts index e7341253..4b241102 100644 --- a/src/specs/ViewModel.nitro.ts +++ b/src/specs/ViewModel.nitro.ts @@ -14,14 +14,23 @@ export interface ViewModel readonly instanceCount: number; /** The name of the view model */ readonly modelName: string; - /** Create a new instance of the view model by index */ + /** @deprecated Use createInstanceByNameAsync instead */ createInstanceByIndex(index: number): ViewModelInstance | undefined; - /** Create a new instance of the view model by name */ + /** @deprecated Use createInstanceByNameAsync instead */ createInstanceByName(name: string): ViewModelInstance | undefined; - /** Create the default instance of the view model */ + /** @deprecated Use createDefaultInstanceAsync instead */ createDefaultInstance(): ViewModelInstance | undefined; - /** Create an empty/new view model instance */ + /** @deprecated Use createBlankInstanceAsync instead */ createInstance(): ViewModelInstance | undefined; + + /** Create a view model instance by name */ + createInstanceByNameAsync( + name: string + ): Promise; + /** Create the default view model instance */ + createDefaultInstanceAsync(): Promise; + /** Create a blank view model instance with default property values */ + createBlankInstanceAsync(): Promise; } /** @@ -63,9 +72,13 @@ export interface ViewModelInstance /** * Get a nested ViewModel instance at the given path. * Supports path notation with "/" for nested access (e.g., "Parent/Child"). + * @deprecated Use viewModelAsync instead */ viewModel(path: string): ViewModelInstance | undefined; + /** Get a nested ViewModel instance at the given path. Supports "/" for nested access (e.g., "Parent/Child"). */ + viewModelAsync(path: string): Promise; + /** * Replace the ViewModel instance at the given path with a new instance. * The replacement instance must be compatible with the expected ViewModel type. @@ -85,8 +98,11 @@ export interface ObservableProperty { export interface ViewModelNumberProperty extends ViewModelProperty, ObservableProperty { - /** The value of the view model number property */ + /** @deprecated Use getValueAsync (read) or set(value) (write) instead */ value: number; + /** Get the current value of the number property */ + getValueAsync(): Promise; + set(value: number): void; /** Add a listener to the view model number property. Returns a function to remove the listener. */ addListener(onChanged: (value: number) => void): () => void; } @@ -94,8 +110,11 @@ export interface ViewModelNumberProperty export interface ViewModelStringProperty extends ViewModelProperty, ObservableProperty { - /** The value of the view model string property */ + /** @deprecated Use getValueAsync (read) or set(value) (write) instead */ value: string; + /** Get the current value of the string property */ + getValueAsync(): Promise; + set(value: string): void; /** Add a listener to the view model string property. Returns a function to remove the listener. */ addListener(onChanged: (value: string) => void): () => void; } @@ -103,8 +122,11 @@ export interface ViewModelStringProperty export interface ViewModelBooleanProperty extends ViewModelProperty, ObservableProperty { - /** The value of the view model boolean property */ + /** @deprecated Use getValueAsync (read) or set(value) (write) instead */ value: boolean; + /** Get the current value of the boolean property */ + getValueAsync(): Promise; + set(value: boolean): void; /** Add a listener to the view model boolean property. Returns a function to remove the listener. */ addListener(onChanged: (value: boolean) => void): () => void; } @@ -112,8 +134,11 @@ export interface ViewModelBooleanProperty export interface ViewModelColorProperty extends ViewModelProperty, ObservableProperty { - /** The value of the view model color property */ + /** @deprecated Use getValueAsync (read) or set(value) (write) instead */ value: number; + /** Get the current value of the color property */ + getValueAsync(): Promise; + set(value: number): void; /** Add a listener to the view model color property. Returns a function to remove the listener. */ addListener(onChanged: (value: number) => void): () => void; } @@ -121,8 +146,11 @@ export interface ViewModelColorProperty export interface ViewModelEnumProperty extends ViewModelProperty, ObservableProperty { - /** The value of the view model enum property */ + /** @deprecated Use getValueAsync (read) or set(value) (write) instead */ value: string; + /** Get the current value of the enum property */ + getValueAsync(): Promise; + set(value: string): void; /** Add a listener to the view model enum property. Returns a function to remove the listener. */ addListener(onChanged: (value: string) => void): () => void; } @@ -152,10 +180,14 @@ export interface ViewModelImageProperty export interface ViewModelListProperty extends ViewModelProperty, ObservableProperty { - /** The number of instances in the list */ + /** @deprecated Use getLengthAsync instead */ readonly length: number; - /** Get the instance at the given index */ + /** @deprecated Use getInstanceAtAsync instead */ getInstanceAt(index: number): ViewModelInstance | undefined; + /** The number of instances in the list */ + getLengthAsync(): Promise; + /** Get the instance at the given index */ + getInstanceAtAsync(index: number): Promise; /** Add an instance to the end of the list */ addInstance(instance: ViewModelInstance): void; /** Add an instance at the given index, returns true if successful */