@rive-app/react-native 0.1.1-beta.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +18 -7
  2. package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelProperty.kt +9 -7
  3. package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelPropertyImpl.kt +43 -24
  4. package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt +0 -1
  5. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt +3 -2
  6. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt +3 -2
  7. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt +3 -2
  8. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt +3 -2
  9. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt +26 -47
  10. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelListProperty.kt +64 -0
  11. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt +3 -2
  12. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt +3 -2
  13. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelTriggerProperty.kt +3 -2
  14. package/ios/BaseHybridViewModelProperty.swift +22 -6
  15. package/ios/HybridViewModel.swift +1 -6
  16. package/ios/HybridViewModelBooleanProperty.swift +1 -9
  17. package/ios/HybridViewModelColorProperty.swift +3 -12
  18. package/ios/HybridViewModelEnumProperty.swift +1 -9
  19. package/ios/HybridViewModelImageProperty.swift +4 -4
  20. package/ios/HybridViewModelInstance.swift +6 -6
  21. package/ios/HybridViewModelListProperty.swift +62 -0
  22. package/ios/HybridViewModelNumberProperty.swift +2 -13
  23. package/ios/HybridViewModelStringProperty.swift +1 -9
  24. package/ios/HybridViewModelTriggerProperty.swift +5 -14
  25. package/ios/RiveReactNativeView.swift +36 -0
  26. package/lib/module/hooks/useRiveColor.js +0 -1
  27. package/lib/module/hooks/useRiveColor.js.map +1 -1
  28. package/lib/module/hooks/useRiveList.js +71 -0
  29. package/lib/module/hooks/useRiveList.js.map +1 -0
  30. package/lib/module/hooks/useRiveProperty.js +6 -12
  31. package/lib/module/hooks/useRiveProperty.js.map +1 -1
  32. package/lib/module/hooks/useViewModelInstance.js +139 -0
  33. package/lib/module/hooks/useViewModelInstance.js.map +1 -0
  34. package/lib/module/index.js +2 -0
  35. package/lib/module/index.js.map +1 -1
  36. package/lib/typescript/src/hooks/useRiveColor.d.ts +6 -4
  37. package/lib/typescript/src/hooks/useRiveColor.d.ts.map +1 -1
  38. package/lib/typescript/src/hooks/useRiveList.d.ts +11 -0
  39. package/lib/typescript/src/hooks/useRiveList.d.ts.map +1 -0
  40. package/lib/typescript/src/hooks/useRiveProperty.d.ts +6 -1
  41. package/lib/typescript/src/hooks/useRiveProperty.d.ts.map +1 -1
  42. package/lib/typescript/src/hooks/useViewModelInstance.d.ts +86 -0
  43. package/lib/typescript/src/hooks/useViewModelInstance.d.ts.map +1 -0
  44. package/lib/typescript/src/index.d.ts +4 -1
  45. package/lib/typescript/src/index.d.ts.map +1 -1
  46. package/lib/typescript/src/specs/ViewModel.nitro.d.ts +39 -15
  47. package/lib/typescript/src/specs/ViewModel.nitro.d.ts.map +1 -1
  48. package/lib/typescript/src/types.d.ts +47 -3
  49. package/lib/typescript/src/types.d.ts.map +1 -1
  50. package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp +14 -4
  51. package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp +1 -1
  52. package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp +14 -4
  53. package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp +1 -1
  54. package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp +14 -4
  55. package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp +1 -1
  56. package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp +15 -6
  57. package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.hpp +1 -1
  58. package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp +9 -0
  59. package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp +1 -0
  60. package/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp +102 -0
  61. package/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp +73 -0
  62. package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp +14 -4
  63. package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp +1 -1
  64. package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp +14 -4
  65. package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp +1 -1
  66. package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.cpp +12 -3
  67. package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.hpp +1 -1
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt +3 -3
  69. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt +3 -3
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt +3 -3
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelImagePropertySpec.kt +3 -3
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt +4 -0
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt +92 -0
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt +3 -3
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt +3 -3
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelTriggerPropertySpec.kt +3 -3
  77. package/nitrogen/generated/android/rive+autolinking.cmake +2 -0
  78. package/nitrogen/generated/android/riveOnLoad.cpp +4 -74
  79. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +17 -0
  80. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +53 -0
  81. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +5 -0
  82. package/nitrogen/generated/ios/RNRiveAutolinking.mm +0 -72
  83. package/nitrogen/generated/ios/RNRiveAutolinking.swift +0 -135
  84. package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp +3 -1
  85. package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp +3 -1
  86. package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp +3 -1
  87. package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.hpp +3 -1
  88. package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp +11 -0
  89. package/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.cpp +11 -0
  90. package/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp +134 -0
  91. package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp +3 -1
  92. package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp +3 -1
  93. package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.hpp +3 -1
  94. package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift +1 -1
  95. package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift +8 -4
  96. package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift +1 -1
  97. package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift +8 -4
  98. package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift +1 -1
  99. package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift +8 -4
  100. package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec.swift +1 -1
  101. package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec_cxx.swift +8 -4
  102. package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift +1 -0
  103. package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift +21 -0
  104. package/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift +63 -0
  105. package/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift +248 -0
  106. package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift +1 -1
  107. package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift +8 -4
  108. package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift +1 -1
  109. package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift +8 -4
  110. package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec.swift +1 -1
  111. package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec_cxx.swift +8 -4
  112. package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp +1 -1
  113. package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp +1 -1
  114. package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp +1 -1
  115. package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.hpp +1 -1
  116. package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp +1 -0
  117. package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp +4 -0
  118. package/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.cpp +30 -0
  119. package/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp +76 -0
  120. package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp +1 -1
  121. package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp +1 -1
  122. package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.hpp +1 -1
  123. package/package.json +3 -3
  124. package/src/hooks/useRiveColor.ts +7 -4
  125. package/src/hooks/useRiveList.ts +108 -0
  126. package/src/hooks/useRiveProperty.ts +20 -13
  127. package/src/hooks/useViewModelInstance.ts +195 -0
  128. package/src/index.tsx +4 -0
  129. package/src/specs/ViewModel.nitro.ts +43 -15
  130. package/src/types.tsx +58 -3
@@ -143,18 +143,22 @@ open class HybridViewModelImagePropertySpec_cxx : HybridViewModelPropertySpec_cx
143
143
  }
144
144
 
145
145
  @inline(__always)
146
- public final func addListener(onChanged: bridge.Func_void) -> bridge.Result_void_ {
146
+ public final func addListener(onChanged: bridge.Func_void) -> bridge.Result_std__function_void____ {
147
147
  do {
148
- try self.__implementation.addListener(onChanged: { () -> () -> Void in
148
+ let __result = try self.__implementation.addListener(onChanged: { () -> () -> Void in
149
149
  let __wrappedFunction = bridge.wrap_Func_void(onChanged)
150
150
  return { () -> Void in
151
151
  __wrappedFunction.call()
152
152
  }
153
153
  }())
154
- return bridge.create_Result_void_()
154
+ let __resultCpp = { () -> bridge.Func_void in
155
+ let __closureWrapper = Func_void(__result)
156
+ return bridge.create_Func_void(__closureWrapper.toUnsafe())
157
+ }()
158
+ return bridge.create_Result_std__function_void____(__resultCpp)
155
159
  } catch (let __error) {
156
160
  let __exceptionPtr = __error.toCpp()
157
- return bridge.create_Result_void_(__exceptionPtr)
161
+ return bridge.create_Result_std__function_void____(__exceptionPtr)
158
162
  }
159
163
  }
160
164
 
@@ -21,6 +21,7 @@ public protocol HybridViewModelInstanceSpec_protocol: HybridObject {
21
21
  func enumProperty(path: String) throws -> (any HybridViewModelEnumPropertySpec)?
22
22
  func triggerProperty(path: String) throws -> (any HybridViewModelTriggerPropertySpec)?
23
23
  func imageProperty(path: String) throws -> (any HybridViewModelImagePropertySpec)?
24
+ func listProperty(path: String) throws -> (any HybridViewModelListPropertySpec)?
24
25
  }
25
26
 
26
27
  public extension HybridViewModelInstanceSpec_protocol {
@@ -268,4 +268,25 @@ open class HybridViewModelInstanceSpec_cxx {
268
268
  return bridge.create_Result_std__optional_std__shared_ptr_HybridViewModelImagePropertySpec___(__exceptionPtr)
269
269
  }
270
270
  }
271
+
272
+ @inline(__always)
273
+ public final func listProperty(path: std.string) -> bridge.Result_std__optional_std__shared_ptr_HybridViewModelListPropertySpec___ {
274
+ do {
275
+ let __result = try self.__implementation.listProperty(path: String(path))
276
+ let __resultCpp = { () -> bridge.std__optional_std__shared_ptr_HybridViewModelListPropertySpec__ in
277
+ if let __unwrappedValue = __result {
278
+ return bridge.create_std__optional_std__shared_ptr_HybridViewModelListPropertySpec__({ () -> bridge.std__shared_ptr_HybridViewModelListPropertySpec_ in
279
+ let __cxxWrapped = __unwrappedValue.getCxxWrapper()
280
+ return __cxxWrapped.getCxxPart()
281
+ }())
282
+ } else {
283
+ return .init()
284
+ }
285
+ }()
286
+ return bridge.create_Result_std__optional_std__shared_ptr_HybridViewModelListPropertySpec___(__resultCpp)
287
+ } catch (let __error) {
288
+ let __exceptionPtr = __error.toCpp()
289
+ return bridge.create_Result_std__optional_std__shared_ptr_HybridViewModelListPropertySpec___(__exceptionPtr)
290
+ }
291
+ }
271
292
  }
@@ -0,0 +1,63 @@
1
+ ///
2
+ /// HybridViewModelListPropertySpec.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /// See ``HybridViewModelListPropertySpec``
12
+ public protocol HybridViewModelListPropertySpec_protocol: HybridObject, HybridViewModelPropertySpec_protocol {
13
+ // Properties
14
+ var length: Double { get }
15
+
16
+ // Methods
17
+ func getInstanceAt(index: Double) throws -> (any HybridViewModelInstanceSpec)?
18
+ func addInstance(instance: (any HybridViewModelInstanceSpec)) throws -> Void
19
+ func addInstanceAt(instance: (any HybridViewModelInstanceSpec), index: Double) throws -> Bool
20
+ func removeInstance(instance: (any HybridViewModelInstanceSpec)) throws -> Void
21
+ func removeInstanceAt(index: Double) throws -> Void
22
+ func swap(index1: Double, index2: Double) throws -> Bool
23
+ func addListener(onChanged: @escaping () -> Void) throws -> () -> Void
24
+ func removeListeners() throws -> Void
25
+ }
26
+
27
+ public extension HybridViewModelListPropertySpec_protocol {
28
+ /// Default implementation of ``HybridObject.toString``
29
+ func toString() -> String {
30
+ return "[HybridObject ViewModelListProperty]"
31
+ }
32
+ }
33
+
34
+ /// See ``HybridViewModelListPropertySpec``
35
+ open class HybridViewModelListPropertySpec_base: HybridViewModelPropertySpec_base {
36
+ private weak var cxxWrapper: HybridViewModelListPropertySpec_cxx? = nil
37
+ public override init() { super.init() }
38
+ public override func getCxxWrapper() -> HybridViewModelListPropertySpec_cxx {
39
+ #if DEBUG
40
+ guard self is HybridViewModelListPropertySpec else {
41
+ fatalError("`self` is not a `HybridViewModelListPropertySpec`! Did you accidentally inherit from `HybridViewModelListPropertySpec_base` instead of `HybridViewModelListPropertySpec`?")
42
+ }
43
+ #endif
44
+ if let cxxWrapper = self.cxxWrapper {
45
+ return cxxWrapper
46
+ } else {
47
+ let cxxWrapper = HybridViewModelListPropertySpec_cxx(self as! HybridViewModelListPropertySpec)
48
+ self.cxxWrapper = cxxWrapper
49
+ return cxxWrapper
50
+ }
51
+ }
52
+ }
53
+
54
+ /**
55
+ * A Swift base-protocol representing the ViewModelListProperty HybridObject.
56
+ * Implement this protocol to create Swift-based instances of ViewModelListProperty.
57
+ * ```swift
58
+ * class HybridViewModelListProperty : HybridViewModelListPropertySpec {
59
+ * // ...
60
+ * }
61
+ * ```
62
+ */
63
+ public typealias HybridViewModelListPropertySpec = HybridViewModelListPropertySpec_protocol & HybridViewModelListPropertySpec_base
@@ -0,0 +1,248 @@
1
+ ///
2
+ /// HybridViewModelListPropertySpec_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * A class implementation that bridges HybridViewModelListPropertySpec over to C++.
13
+ * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
14
+ *
15
+ * Also, some Swift types need to be bridged with special handling:
16
+ * - Enums need to be wrapped in Structs, otherwise they cannot be accessed bi-directionally (Swift bug: https://github.com/swiftlang/swift/issues/75330)
17
+ * - Other HybridObjects need to be wrapped/unwrapped from the Swift TCxx wrapper
18
+ * - Throwing methods need to be wrapped with a Result<T, Error> type, as exceptions cannot be propagated to C++
19
+ */
20
+ open class HybridViewModelListPropertySpec_cxx : HybridViewModelPropertySpec_cxx {
21
+ /**
22
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::rive::bridge::swift`)
23
+ * from `RNRive-Swift-Cxx-Bridge.hpp`.
24
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
25
+ */
26
+ public typealias bridge = margelo.nitro.rive.bridge.swift
27
+
28
+ /**
29
+ * Holds an instance of the `HybridViewModelListPropertySpec` Swift protocol.
30
+ */
31
+ private var __implementation: any HybridViewModelListPropertySpec
32
+
33
+ /**
34
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
35
+ */
36
+ private var __cxxPart: bridge.std__weak_ptr_HybridViewModelListPropertySpec_
37
+
38
+ /**
39
+ * Create a new `HybridViewModelListPropertySpec_cxx` that wraps the given `HybridViewModelListPropertySpec`.
40
+ * All properties and methods bridge to C++ types.
41
+ */
42
+ public init(_ implementation: any HybridViewModelListPropertySpec) {
43
+ self.__implementation = implementation
44
+ self.__cxxPart = .init()
45
+ super.init(implementation)
46
+ }
47
+
48
+ /**
49
+ * Get the actual `HybridViewModelListPropertySpec` instance this class wraps.
50
+ */
51
+ @inline(__always)
52
+ public func getHybridViewModelListPropertySpec() -> any HybridViewModelListPropertySpec {
53
+ return __implementation
54
+ }
55
+
56
+ /**
57
+ * Casts this instance to a retained unsafe raw pointer.
58
+ * This acquires one additional strong reference on the object!
59
+ */
60
+ public override func toUnsafe() -> UnsafeMutableRawPointer {
61
+ return Unmanaged.passRetained(self).toOpaque()
62
+ }
63
+
64
+ /**
65
+ * Casts an unsafe pointer to a `HybridViewModelListPropertySpec_cxx`.
66
+ * The pointer has to be a retained opaque `Unmanaged<HybridViewModelListPropertySpec_cxx>`.
67
+ * This removes one strong reference from the object!
68
+ */
69
+ public override class func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> HybridViewModelListPropertySpec_cxx {
70
+ return Unmanaged<HybridViewModelListPropertySpec_cxx>.fromOpaque(pointer).takeRetainedValue()
71
+ }
72
+
73
+ /**
74
+ * Gets (or creates) the C++ part of this Hybrid Object.
75
+ * The C++ part is a `std::shared_ptr<HybridViewModelListPropertySpec>`.
76
+ */
77
+ public func getCxxPart() -> bridge.std__shared_ptr_HybridViewModelListPropertySpec_ {
78
+ let cachedCxxPart = self.__cxxPart.lock()
79
+ if Bool(fromCxx: cachedCxxPart) {
80
+ return cachedCxxPart
81
+ } else {
82
+ let newCxxPart = bridge.create_std__shared_ptr_HybridViewModelListPropertySpec_(self.toUnsafe())
83
+ __cxxPart = bridge.weakify_std__shared_ptr_HybridViewModelListPropertySpec_(newCxxPart)
84
+ return newCxxPart
85
+ }
86
+ }
87
+
88
+ public override func getCxxPart() -> bridge.std__shared_ptr_HybridViewModelPropertySpec_ {
89
+ let ownCxxPart: bridge.std__shared_ptr_HybridViewModelListPropertySpec_ = getCxxPart()
90
+ return bridge.upcast_ViewModelListProperty_to_ViewModelProperty(ownCxxPart)
91
+ }
92
+
93
+ /**
94
+ * Get the memory size of the Swift class (plus size of any other allocations)
95
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
96
+ */
97
+ @inline(__always)
98
+ public override var memorySize: Int {
99
+ return MemoryHelper.getSizeOf(self.__implementation) + self.__implementation.memorySize
100
+ }
101
+
102
+ /**
103
+ * Call dispose() on the Swift class.
104
+ * This _may_ be called manually from JS.
105
+ */
106
+ @inline(__always)
107
+ public override func dispose() {
108
+ self.__implementation.dispose()
109
+ }
110
+
111
+ /**
112
+ * Call toString() on the Swift class.
113
+ */
114
+ @inline(__always)
115
+ public override func toString() -> String {
116
+ return self.__implementation.toString()
117
+ }
118
+
119
+ // Properties
120
+ public final var length: Double {
121
+ @inline(__always)
122
+ get {
123
+ return self.__implementation.length
124
+ }
125
+ }
126
+
127
+ // Methods
128
+ @inline(__always)
129
+ public final func getInstanceAt(index: Double) -> bridge.Result_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___ {
130
+ do {
131
+ let __result = try self.__implementation.getInstanceAt(index: index)
132
+ let __resultCpp = { () -> bridge.std__optional_std__shared_ptr_HybridViewModelInstanceSpec__ in
133
+ if let __unwrappedValue = __result {
134
+ return bridge.create_std__optional_std__shared_ptr_HybridViewModelInstanceSpec__({ () -> bridge.std__shared_ptr_HybridViewModelInstanceSpec_ in
135
+ let __cxxWrapped = __unwrappedValue.getCxxWrapper()
136
+ return __cxxWrapped.getCxxPart()
137
+ }())
138
+ } else {
139
+ return .init()
140
+ }
141
+ }()
142
+ return bridge.create_Result_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___(__resultCpp)
143
+ } catch (let __error) {
144
+ let __exceptionPtr = __error.toCpp()
145
+ return bridge.create_Result_std__optional_std__shared_ptr_HybridViewModelInstanceSpec___(__exceptionPtr)
146
+ }
147
+ }
148
+
149
+ @inline(__always)
150
+ public final func addInstance(instance: bridge.std__shared_ptr_HybridViewModelInstanceSpec_) -> bridge.Result_void_ {
151
+ do {
152
+ try self.__implementation.addInstance(instance: { () -> HybridViewModelInstanceSpec in
153
+ let __unsafePointer = bridge.get_std__shared_ptr_HybridViewModelInstanceSpec_(instance)
154
+ let __instance = HybridViewModelInstanceSpec_cxx.fromUnsafe(__unsafePointer)
155
+ return __instance.getHybridViewModelInstanceSpec()
156
+ }())
157
+ return bridge.create_Result_void_()
158
+ } catch (let __error) {
159
+ let __exceptionPtr = __error.toCpp()
160
+ return bridge.create_Result_void_(__exceptionPtr)
161
+ }
162
+ }
163
+
164
+ @inline(__always)
165
+ public final func addInstanceAt(instance: bridge.std__shared_ptr_HybridViewModelInstanceSpec_, index: Double) -> bridge.Result_bool_ {
166
+ do {
167
+ let __result = try self.__implementation.addInstanceAt(instance: { () -> HybridViewModelInstanceSpec in
168
+ let __unsafePointer = bridge.get_std__shared_ptr_HybridViewModelInstanceSpec_(instance)
169
+ let __instance = HybridViewModelInstanceSpec_cxx.fromUnsafe(__unsafePointer)
170
+ return __instance.getHybridViewModelInstanceSpec()
171
+ }(), index: index)
172
+ let __resultCpp = __result
173
+ return bridge.create_Result_bool_(__resultCpp)
174
+ } catch (let __error) {
175
+ let __exceptionPtr = __error.toCpp()
176
+ return bridge.create_Result_bool_(__exceptionPtr)
177
+ }
178
+ }
179
+
180
+ @inline(__always)
181
+ public final func removeInstance(instance: bridge.std__shared_ptr_HybridViewModelInstanceSpec_) -> bridge.Result_void_ {
182
+ do {
183
+ try self.__implementation.removeInstance(instance: { () -> HybridViewModelInstanceSpec in
184
+ let __unsafePointer = bridge.get_std__shared_ptr_HybridViewModelInstanceSpec_(instance)
185
+ let __instance = HybridViewModelInstanceSpec_cxx.fromUnsafe(__unsafePointer)
186
+ return __instance.getHybridViewModelInstanceSpec()
187
+ }())
188
+ return bridge.create_Result_void_()
189
+ } catch (let __error) {
190
+ let __exceptionPtr = __error.toCpp()
191
+ return bridge.create_Result_void_(__exceptionPtr)
192
+ }
193
+ }
194
+
195
+ @inline(__always)
196
+ public final func removeInstanceAt(index: Double) -> bridge.Result_void_ {
197
+ do {
198
+ try self.__implementation.removeInstanceAt(index: index)
199
+ return bridge.create_Result_void_()
200
+ } catch (let __error) {
201
+ let __exceptionPtr = __error.toCpp()
202
+ return bridge.create_Result_void_(__exceptionPtr)
203
+ }
204
+ }
205
+
206
+ @inline(__always)
207
+ public final func swap(index1: Double, index2: Double) -> bridge.Result_bool_ {
208
+ do {
209
+ let __result = try self.__implementation.swap(index1: index1, index2: index2)
210
+ let __resultCpp = __result
211
+ return bridge.create_Result_bool_(__resultCpp)
212
+ } catch (let __error) {
213
+ let __exceptionPtr = __error.toCpp()
214
+ return bridge.create_Result_bool_(__exceptionPtr)
215
+ }
216
+ }
217
+
218
+ @inline(__always)
219
+ public final func addListener(onChanged: bridge.Func_void) -> bridge.Result_std__function_void____ {
220
+ do {
221
+ let __result = try self.__implementation.addListener(onChanged: { () -> () -> Void in
222
+ let __wrappedFunction = bridge.wrap_Func_void(onChanged)
223
+ return { () -> Void in
224
+ __wrappedFunction.call()
225
+ }
226
+ }())
227
+ let __resultCpp = { () -> bridge.Func_void in
228
+ let __closureWrapper = Func_void(__result)
229
+ return bridge.create_Func_void(__closureWrapper.toUnsafe())
230
+ }()
231
+ return bridge.create_Result_std__function_void____(__resultCpp)
232
+ } catch (let __error) {
233
+ let __exceptionPtr = __error.toCpp()
234
+ return bridge.create_Result_std__function_void____(__exceptionPtr)
235
+ }
236
+ }
237
+
238
+ @inline(__always)
239
+ public final func removeListeners() -> bridge.Result_void_ {
240
+ do {
241
+ try self.__implementation.removeListeners()
242
+ return bridge.create_Result_void_()
243
+ } catch (let __error) {
244
+ let __exceptionPtr = __error.toCpp()
245
+ return bridge.create_Result_void_(__exceptionPtr)
246
+ }
247
+ }
248
+ }
@@ -14,7 +14,7 @@ public protocol HybridViewModelNumberPropertySpec_protocol: HybridObject, Hybrid
14
14
  var value: Double { get set }
15
15
 
16
16
  // Methods
17
- func addListener(onChanged: @escaping (_ value: Double) -> Void) throws -> Void
17
+ func addListener(onChanged: @escaping (_ value: Double) -> Void) throws -> () -> Void
18
18
  func removeListeners() throws -> Void
19
19
  }
20
20
 
@@ -130,18 +130,22 @@ open class HybridViewModelNumberPropertySpec_cxx : HybridViewModelPropertySpec_c
130
130
 
131
131
  // Methods
132
132
  @inline(__always)
133
- public final func addListener(onChanged: bridge.Func_void_double) -> bridge.Result_void_ {
133
+ public final func addListener(onChanged: bridge.Func_void_double) -> bridge.Result_std__function_void____ {
134
134
  do {
135
- try self.__implementation.addListener(onChanged: { () -> (Double) -> Void in
135
+ let __result = try self.__implementation.addListener(onChanged: { () -> (Double) -> Void in
136
136
  let __wrappedFunction = bridge.wrap_Func_void_double(onChanged)
137
137
  return { (__value: Double) -> Void in
138
138
  __wrappedFunction.call(__value)
139
139
  }
140
140
  }())
141
- return bridge.create_Result_void_()
141
+ let __resultCpp = { () -> bridge.Func_void in
142
+ let __closureWrapper = Func_void(__result)
143
+ return bridge.create_Func_void(__closureWrapper.toUnsafe())
144
+ }()
145
+ return bridge.create_Result_std__function_void____(__resultCpp)
142
146
  } catch (let __error) {
143
147
  let __exceptionPtr = __error.toCpp()
144
- return bridge.create_Result_void_(__exceptionPtr)
148
+ return bridge.create_Result_std__function_void____(__exceptionPtr)
145
149
  }
146
150
  }
147
151
 
@@ -14,7 +14,7 @@ public protocol HybridViewModelStringPropertySpec_protocol: HybridObject, Hybrid
14
14
  var value: String { get set }
15
15
 
16
16
  // Methods
17
- func addListener(onChanged: @escaping (_ value: String) -> Void) throws -> Void
17
+ func addListener(onChanged: @escaping (_ value: String) -> Void) throws -> () -> Void
18
18
  func removeListeners() throws -> Void
19
19
  }
20
20
 
@@ -130,18 +130,22 @@ open class HybridViewModelStringPropertySpec_cxx : HybridViewModelPropertySpec_c
130
130
 
131
131
  // Methods
132
132
  @inline(__always)
133
- public final func addListener(onChanged: bridge.Func_void_std__string) -> bridge.Result_void_ {
133
+ public final func addListener(onChanged: bridge.Func_void_std__string) -> bridge.Result_std__function_void____ {
134
134
  do {
135
- try self.__implementation.addListener(onChanged: { () -> (String) -> Void in
135
+ let __result = try self.__implementation.addListener(onChanged: { () -> (String) -> Void in
136
136
  let __wrappedFunction = bridge.wrap_Func_void_std__string(onChanged)
137
137
  return { (__value: String) -> Void in
138
138
  __wrappedFunction.call(std.string(__value))
139
139
  }
140
140
  }())
141
- return bridge.create_Result_void_()
141
+ let __resultCpp = { () -> bridge.Func_void in
142
+ let __closureWrapper = Func_void(__result)
143
+ return bridge.create_Func_void(__closureWrapper.toUnsafe())
144
+ }()
145
+ return bridge.create_Result_std__function_void____(__resultCpp)
142
146
  } catch (let __error) {
143
147
  let __exceptionPtr = __error.toCpp()
144
- return bridge.create_Result_void_(__exceptionPtr)
148
+ return bridge.create_Result_std__function_void____(__exceptionPtr)
145
149
  }
146
150
  }
147
151
 
@@ -14,7 +14,7 @@ public protocol HybridViewModelTriggerPropertySpec_protocol: HybridObject, Hybri
14
14
 
15
15
 
16
16
  // Methods
17
- func addListener(onChanged: @escaping () -> Void) throws -> Void
17
+ func addListener(onChanged: @escaping () -> Void) throws -> () -> Void
18
18
  func trigger() throws -> Void
19
19
  func removeListeners() throws -> Void
20
20
  }
@@ -121,18 +121,22 @@ open class HybridViewModelTriggerPropertySpec_cxx : HybridViewModelPropertySpec_
121
121
 
122
122
  // Methods
123
123
  @inline(__always)
124
- public final func addListener(onChanged: bridge.Func_void) -> bridge.Result_void_ {
124
+ public final func addListener(onChanged: bridge.Func_void) -> bridge.Result_std__function_void____ {
125
125
  do {
126
- try self.__implementation.addListener(onChanged: { () -> () -> Void in
126
+ let __result = try self.__implementation.addListener(onChanged: { () -> () -> Void in
127
127
  let __wrappedFunction = bridge.wrap_Func_void(onChanged)
128
128
  return { () -> Void in
129
129
  __wrappedFunction.call()
130
130
  }
131
131
  }())
132
- return bridge.create_Result_void_()
132
+ let __resultCpp = { () -> bridge.Func_void in
133
+ let __closureWrapper = Func_void(__result)
134
+ return bridge.create_Func_void(__closureWrapper.toUnsafe())
135
+ }()
136
+ return bridge.create_Result_std__function_void____(__resultCpp)
133
137
  } catch (let __error) {
134
138
  let __exceptionPtr = __error.toCpp()
135
- return bridge.create_Result_void_(__exceptionPtr)
139
+ return bridge.create_Result_std__function_void____(__exceptionPtr)
136
140
  }
137
141
  }
138
142
 
@@ -52,7 +52,7 @@ namespace margelo::nitro::rive {
52
52
 
53
53
  public:
54
54
  // Methods
55
- virtual void addListener(const std::function<void(bool /* value */)>& onChanged) = 0;
55
+ virtual std::function<void()> addListener(const std::function<void(bool /* value */)>& onChanged) = 0;
56
56
  virtual void removeListeners() = 0;
57
57
 
58
58
  protected:
@@ -52,7 +52,7 @@ namespace margelo::nitro::rive {
52
52
 
53
53
  public:
54
54
  // Methods
55
- virtual void addListener(const std::function<void(double /* value */)>& onChanged) = 0;
55
+ virtual std::function<void()> addListener(const std::function<void(double /* value */)>& onChanged) = 0;
56
56
  virtual void removeListeners() = 0;
57
57
 
58
58
  protected:
@@ -53,7 +53,7 @@ namespace margelo::nitro::rive {
53
53
 
54
54
  public:
55
55
  // Methods
56
- virtual void addListener(const std::function<void(const std::string& /* value */)>& onChanged) = 0;
56
+ virtual std::function<void()> addListener(const std::function<void(const std::string& /* value */)>& onChanged) = 0;
57
57
  virtual void removeListeners() = 0;
58
58
 
59
59
  protected:
@@ -56,7 +56,7 @@ namespace margelo::nitro::rive {
56
56
  public:
57
57
  // Methods
58
58
  virtual void set(const std::optional<std::shared_ptr<HybridRiveImageSpec>>& image) = 0;
59
- virtual void addListener(const std::function<void()>& onChanged) = 0;
59
+ virtual std::function<void()> addListener(const std::function<void()>& onChanged) = 0;
60
60
  virtual void removeListeners() = 0;
61
61
 
62
62
  protected:
@@ -22,6 +22,7 @@ namespace margelo::nitro::rive {
22
22
  prototype.registerHybridMethod("enumProperty", &HybridViewModelInstanceSpec::enumProperty);
23
23
  prototype.registerHybridMethod("triggerProperty", &HybridViewModelInstanceSpec::triggerProperty);
24
24
  prototype.registerHybridMethod("imageProperty", &HybridViewModelInstanceSpec::imageProperty);
25
+ prototype.registerHybridMethod("listProperty", &HybridViewModelInstanceSpec::listProperty);
25
26
  });
26
27
  }
27
28
 
@@ -27,6 +27,8 @@ namespace margelo::nitro::rive { class HybridViewModelEnumPropertySpec; }
27
27
  namespace margelo::nitro::rive { class HybridViewModelTriggerPropertySpec; }
28
28
  // Forward declaration of `HybridViewModelImagePropertySpec` to properly resolve imports.
29
29
  namespace margelo::nitro::rive { class HybridViewModelImagePropertySpec; }
30
+ // Forward declaration of `HybridViewModelListPropertySpec` to properly resolve imports.
31
+ namespace margelo::nitro::rive { class HybridViewModelListPropertySpec; }
30
32
 
31
33
  #include <string>
32
34
  #include <memory>
@@ -38,6 +40,7 @@ namespace margelo::nitro::rive { class HybridViewModelImagePropertySpec; }
38
40
  #include "HybridViewModelEnumPropertySpec.hpp"
39
41
  #include "HybridViewModelTriggerPropertySpec.hpp"
40
42
  #include "HybridViewModelImagePropertySpec.hpp"
43
+ #include "HybridViewModelListPropertySpec.hpp"
41
44
 
42
45
  namespace margelo::nitro::rive {
43
46
 
@@ -77,6 +80,7 @@ namespace margelo::nitro::rive {
77
80
  virtual std::optional<std::shared_ptr<HybridViewModelEnumPropertySpec>> enumProperty(const std::string& path) = 0;
78
81
  virtual std::optional<std::shared_ptr<HybridViewModelTriggerPropertySpec>> triggerProperty(const std::string& path) = 0;
79
82
  virtual std::optional<std::shared_ptr<HybridViewModelImagePropertySpec>> imageProperty(const std::string& path) = 0;
83
+ virtual std::optional<std::shared_ptr<HybridViewModelListPropertySpec>> listProperty(const std::string& path) = 0;
80
84
 
81
85
  protected:
82
86
  // Hybrid Setup
@@ -0,0 +1,30 @@
1
+ ///
2
+ /// HybridViewModelListPropertySpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridViewModelListPropertySpec.hpp"
9
+
10
+ namespace margelo::nitro::rive {
11
+
12
+ void HybridViewModelListPropertySpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ HybridViewModelPropertySpec::loadHybridMethods();
16
+ // load custom methods/properties
17
+ registerHybrids(this, [](Prototype& prototype) {
18
+ prototype.registerHybridGetter("length", &HybridViewModelListPropertySpec::getLength);
19
+ prototype.registerHybridMethod("getInstanceAt", &HybridViewModelListPropertySpec::getInstanceAt);
20
+ prototype.registerHybridMethod("addInstance", &HybridViewModelListPropertySpec::addInstance);
21
+ prototype.registerHybridMethod("addInstanceAt", &HybridViewModelListPropertySpec::addInstanceAt);
22
+ prototype.registerHybridMethod("removeInstance", &HybridViewModelListPropertySpec::removeInstance);
23
+ prototype.registerHybridMethod("removeInstanceAt", &HybridViewModelListPropertySpec::removeInstanceAt);
24
+ prototype.registerHybridMethod("swap", &HybridViewModelListPropertySpec::swap);
25
+ prototype.registerHybridMethod("addListener", &HybridViewModelListPropertySpec::addListener);
26
+ prototype.registerHybridMethod("removeListeners", &HybridViewModelListPropertySpec::removeListeners);
27
+ });
28
+ }
29
+
30
+ } // namespace margelo::nitro::rive