react-native-list 1.0.1 → 2.0.0-alpha.1
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.
- package/README.md +188 -32
- package/ReactNativeList.podspec +39 -0
- package/android/CMakeLists.txt +48 -0
- package/android/build.gradle +151 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/JHybridUiListModule.cpp +192 -0
- package/android/src/main/cpp/JHybridUiListModule.h +50 -0
- package/android/src/main/cpp/cpp-adapter.cpp +12 -0
- package/android/src/main/java/com/hannojg/reactnativelist/ReactNativeListPackage.kt +27 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridNativeListDataSource.kt +146 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridNativeListLayout.kt +86 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridUiListModule.kt +116 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridUiListView.kt +410 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridViewHolder.kt +9 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/NativeListAdapter.kt +217 -0
- package/ios/DataSource/HybridNativeListDataSource.swift +213 -0
- package/ios/HybridObjects/HybridUiListModule.swift +49 -0
- package/ios/HybridObjects/HybridViewHolder.swift +16 -0
- package/ios/Layout/HybridNativeListLayout.swift +128 -0
- package/ios/Utils/ErrorUtils.h +26 -0
- package/ios/Utils/HybridIOSWorkletsModuleProxyHolder.swift +10 -0
- package/ios/Utils/SurfaceHelper.h +20 -0
- package/ios/Utils/SurfaceHelper.mm +144 -0
- package/ios/Utils/SurfacePresenterRegistry.h +17 -0
- package/ios/Utils/SurfacePresenterRegistry.m +31 -0
- package/ios/Utils/TurboModuleInstaller.h +18 -0
- package/ios/Utils/TurboModuleInstaller.mm +267 -0
- package/ios/Views/HostCell.swift +216 -0
- package/ios/Views/HybridUiListView.swift +695 -0
- package/metro/RendererProxyThreadSwitch.js +66 -0
- package/metro-config.d.ts +1 -0
- package/metro-config.js +52 -0
- package/nitro.json +47 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/ReactNativeList+autolinking.cmake +99 -0
- package/nitrogen/generated/android/ReactNativeList+autolinking.gradle +27 -0
- package/nitrogen/generated/android/ReactNativeListOnLoad.cpp +156 -0
- package/nitrogen/generated/android/ReactNativeListOnLoad.hpp +34 -0
- package/nitrogen/generated/android/c++/JFunc_bool_NativeListItem_NativeListItem.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_bool_double_NativeListItem_double.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_double_std__string.hpp +78 -0
- package/nitrogen/generated/android/c++/JHybridIOSWorkletsModuleProxyHolderSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridIOSWorkletsModuleProxyHolderSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridNativeLinearListLayoutSpec.cpp +63 -0
- package/nitrogen/generated/android/c++/JHybridNativeLinearListLayoutSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridNativeListDataSourceSpec.cpp +101 -0
- package/nitrogen/generated/android/c++/JHybridNativeListDataSourceSpec.hpp +70 -0
- package/nitrogen/generated/android/c++/JHybridNativeListLayoutSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridNativeListLayoutSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridUiListModuleSpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridUiListModuleSpec.hpp +64 -0
- package/nitrogen/generated/android/c++/JHybridUiListViewSpec.cpp +92 -0
- package/nitrogen/generated/android/c++/JHybridUiListViewSpec.hpp +67 -0
- package/nitrogen/generated/android/c++/JHybridViewHolderSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridViewHolderSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JNativeItemSizeEstimate.hpp +61 -0
- package/nitrogen/generated/android/c++/JNativeLinearListLayoutConfig.hpp +81 -0
- package/nitrogen/generated/android/c++/JNativeLinearListLayoutIOSConfig.hpp +59 -0
- package/nitrogen/generated/android/c++/JNativeListItem.hpp +76 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.hpp +72 -0
- package/nitrogen/generated/android/c++/views/JHybridUiListViewStateUpdater.cpp +53 -0
- package/nitrogen/generated/android/c++/views/JHybridUiListViewStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/c++/views/JHybridViewHolderStateUpdater.cpp +53 -0
- package/nitrogen/generated/android/c++/views/JHybridViewHolderStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_bool_NativeListItem_NativeListItem.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_bool_double_NativeListItem_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_double_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridIOSWorkletsModuleProxyHolderSpec.kt +52 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeLinearListLayoutSpec.kt +54 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeListDataSourceSpec.kt +87 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeListLayoutSpec.kt +52 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridUiListModuleSpec.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridUiListViewSpec.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridViewHolderSpec.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeItemSizeEstimate.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeLinearListLayoutConfig.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeLinearListLayoutIOSConfig.kt +51 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeListItem.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/ReactNativeListOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Variant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridUiListViewManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridUiListViewStateUpdater.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridViewHolderManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridViewHolderStateUpdater.kt +23 -0
- package/nitrogen/generated/ios/ReactNativeList+autolinking.rb +62 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Bridge.cpp +162 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Bridge.hpp +368 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Umbrella.hpp +92 -0
- package/nitrogen/generated/ios/ReactNativeListAutolinking.mm +83 -0
- package/nitrogen/generated/ios/ReactNativeListAutolinking.swift +86 -0
- package/nitrogen/generated/ios/c++/HybridIOSWorkletsModuleProxyHolderSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridIOSWorkletsModuleProxyHolderSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/HybridNativeLinearListLayoutSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeLinearListLayoutSpecSwift.hpp +92 -0
- package/nitrogen/generated/ios/c++/HybridNativeListDataSourceSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeListDataSourceSpecSwift.hpp +132 -0
- package/nitrogen/generated/ios/c++/HybridNativeListLayoutSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeListLayoutSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/HybridUiListModuleSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUiListModuleSpecSwift.hpp +93 -0
- package/nitrogen/generated/ios/c++/HybridUiListViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUiListViewSpecSwift.hpp +121 -0
- package/nitrogen/generated/ios/c++/HybridViewHolderSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewHolderSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/views/HybridUiListViewComponent.mm +118 -0
- package/nitrogen/generated/ios/c++/views/HybridViewHolderComponent.mm +118 -0
- package/nitrogen/generated/ios/swift/Func_bool_NativeListItem_NativeListItem.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_bool_double_NativeListItem_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_double_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridIOSWorkletsModuleProxyHolderSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridIOSWorkletsModuleProxyHolderSpec_cxx.swift +128 -0
- package/nitrogen/generated/ios/swift/HybridNativeLinearListLayoutSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridNativeLinearListLayoutSpec_cxx.swift +140 -0
- package/nitrogen/generated/ios/swift/HybridNativeListDataSourceSpec.swift +62 -0
- package/nitrogen/generated/ios/swift/HybridNativeListDataSourceSpec_cxx.swift +222 -0
- package/nitrogen/generated/ios/swift/HybridNativeListLayoutSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridNativeListLayoutSpec_cxx.swift +128 -0
- package/nitrogen/generated/ios/swift/HybridUiListModuleSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridUiListModuleSpec_cxx.swift +175 -0
- package/nitrogen/generated/ios/swift/HybridUiListViewSpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridUiListViewSpec_cxx.swift +227 -0
- package/nitrogen/generated/ios/swift/HybridViewHolderSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridViewHolderSpec_cxx.swift +147 -0
- package/nitrogen/generated/ios/swift/NativeItemSizeEstimate.swift +60 -0
- package/nitrogen/generated/ios/swift/NativeLinearListLayoutConfig.swift +60 -0
- package/nitrogen/generated/ios/swift/NativeLinearListLayoutIOSConfig.swift +35 -0
- package/nitrogen/generated/ios/swift/NativeListItem.swift +75 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__any_HybridIOSWorkletsModuleProxyHolderSpec_.swift +30 -0
- package/nitrogen/generated/shared/c++/HybridIOSWorkletsModuleProxyHolderSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridIOSWorkletsModuleProxyHolderSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridNativeLinearListLayoutSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridNativeLinearListLayoutSpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridNativeListDataSourceSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridNativeListDataSourceSpec.hpp +72 -0
- package/nitrogen/generated/shared/c++/HybridNativeListLayoutSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridNativeListLayoutSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridUiListModuleSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridUiListModuleSpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridUiListViewSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridUiListViewSpec.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridUiManagerHelperSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridUiManagerHelperSpec.hpp +65 -0
- package/nitrogen/generated/shared/c++/HybridViewHolderSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridViewHolderSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/NativeItemSizeEstimate.hpp +87 -0
- package/nitrogen/generated/shared/c++/NativeLinearListLayoutConfig.hpp +105 -0
- package/nitrogen/generated/shared/c++/NativeLinearListLayoutIOSConfig.hpp +85 -0
- package/nitrogen/generated/shared/c++/NativeListItem.hpp +101 -0
- package/nitrogen/generated/shared/c++/views/HybridUiListViewComponent.cpp +72 -0
- package/nitrogen/generated/shared/c++/views/HybridUiListViewComponent.hpp +109 -0
- package/nitrogen/generated/shared/c++/views/HybridViewHolderComponent.cpp +72 -0
- package/nitrogen/generated/shared/c++/views/HybridViewHolderComponent.hpp +109 -0
- package/nitrogen/generated/shared/json/UiListViewConfig.json +9 -0
- package/nitrogen/generated/shared/json/ViewHolderConfig.json +9 -0
- package/package.json +152 -5
- package/react-native.config.js +16 -0
- package/src/ListDataSource.ts +232 -0
- package/src/ListLayout.ts +95 -0
- package/src/UiListModule.ts +5 -0
- package/src/hooks/useChangeEffect.ts +50 -0
- package/src/index.tsx +49 -0
- package/src/privateGlobals.ts +20 -0
- package/src/renderer/fabric/RenderHelper.ts +29 -0
- package/src/renderer/fabric/UiManagerHelper.ts +5 -0
- package/src/renderer/react/ReactFabricMirror.bundle.js +1984 -0
- package/src/renderer/react/ReactFabricMirror.ts +766 -0
- package/src/renderer/react/ReactFabricRenderer.ts +11 -0
- package/src/specs/IOSWorkletsModuleProxyHolder.nitro.ts +6 -0
- package/src/specs/NativeLinearListLayout.nitro.ts +23 -0
- package/src/specs/NativeListDataSource.nitro.ts +28 -0
- package/src/specs/NativeListLayout.nitro.ts +6 -0
- package/src/specs/UIListModule.nitro.ts +13 -0
- package/src/specs/UIManagerHelper.nitro.ts +34 -0
- package/src/specs/UiListView.nitro.ts +31 -0
- package/src/specs/ViewHolder.nitro.ts +11 -0
- package/src/views/List.tsx +525 -0
- package/src/views/UiListHostComponent.ts +8 -0
- package/FillRateHelper.js +0 -179
- package/FlatList.js +0 -494
- package/LICENSE.md +0 -31
- package/MetroListView.js +0 -166
- package/SectionList.js +0 -291
- package/ViewabilityHelper.js +0 -260
- package/VirtualizeUtils.js +0 -163
- package/VirtualizedList.js +0 -861
- package/VirtualizedSectionList.js +0 -397
- package/index.js +0 -5
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridIOSWorkletsModuleProxyHolderSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridIOSWorkletsModuleProxyHolderSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace ReactNativeList { class HybridIOSWorkletsModuleProxyHolderSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
#include "ReactNativeList-Swift-Cxx-Umbrella.hpp"
|
|
20
|
+
|
|
21
|
+
namespace margelo::nitro::reactnativelist {
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The C++ part of HybridIOSWorkletsModuleProxyHolderSpec_cxx.swift.
|
|
25
|
+
*
|
|
26
|
+
* HybridIOSWorkletsModuleProxyHolderSpecSwift (C++) accesses HybridIOSWorkletsModuleProxyHolderSpec_cxx (Swift), and might
|
|
27
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
28
|
+
*
|
|
29
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
30
|
+
* the future, HybridIOSWorkletsModuleProxyHolderSpec_cxx can directly inherit from the C++ class HybridIOSWorkletsModuleProxyHolderSpec
|
|
31
|
+
* to simplify the whole structure and memory management.
|
|
32
|
+
*/
|
|
33
|
+
class HybridIOSWorkletsModuleProxyHolderSpecSwift: public virtual HybridIOSWorkletsModuleProxyHolderSpec {
|
|
34
|
+
public:
|
|
35
|
+
// Constructor from a Swift instance
|
|
36
|
+
explicit HybridIOSWorkletsModuleProxyHolderSpecSwift(const ReactNativeList::HybridIOSWorkletsModuleProxyHolderSpec_cxx& swiftPart):
|
|
37
|
+
HybridObject(HybridIOSWorkletsModuleProxyHolderSpec::TAG),
|
|
38
|
+
_swiftPart(swiftPart) { }
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
// Get the Swift part
|
|
42
|
+
inline ReactNativeList::HybridIOSWorkletsModuleProxyHolderSpec_cxx& getSwiftPart() noexcept {
|
|
43
|
+
return _swiftPart;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
48
|
+
return _swiftPart.getMemorySize();
|
|
49
|
+
}
|
|
50
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
51
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridIOSWorkletsModuleProxyHolderSpecSwift>(other)) {
|
|
52
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
void dispose() noexcept override {
|
|
57
|
+
_swiftPart.dispose();
|
|
58
|
+
}
|
|
59
|
+
std::string toString() override {
|
|
60
|
+
return _swiftPart.toString();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
// Properties
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
public:
|
|
68
|
+
// Methods
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
private:
|
|
72
|
+
ReactNativeList::HybridIOSWorkletsModuleProxyHolderSpec_cxx _swiftPart;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeLinearListLayoutSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridNativeLinearListLayoutSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::reactnativelist {
|
|
11
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeLinearListLayoutSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridNativeLinearListLayoutSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridNativeLinearListLayoutSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace ReactNativeList { class HybridNativeLinearListLayoutSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
// Forward declaration of `NativeLinearListLayoutConfig` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::reactnativelist { struct NativeLinearListLayoutConfig; }
|
|
17
|
+
// Forward declaration of `NativeLinearListLayoutIOSConfig` to properly resolve imports.
|
|
18
|
+
namespace margelo::nitro::reactnativelist { struct NativeLinearListLayoutIOSConfig; }
|
|
19
|
+
// Forward declaration of `NativeItemSizeEstimate` to properly resolve imports.
|
|
20
|
+
namespace margelo::nitro::reactnativelist { struct NativeItemSizeEstimate; }
|
|
21
|
+
// Forward declaration of `HybridNativeListLayoutSpecSwift` to properly resolve imports.
|
|
22
|
+
namespace margelo::nitro::reactnativelist { class HybridNativeListLayoutSpecSwift; }
|
|
23
|
+
|
|
24
|
+
#include "NativeLinearListLayoutConfig.hpp"
|
|
25
|
+
#include "NativeLinearListLayoutIOSConfig.hpp"
|
|
26
|
+
#include <optional>
|
|
27
|
+
#include "NativeItemSizeEstimate.hpp"
|
|
28
|
+
#include "HybridNativeListLayoutSpecSwift.hpp"
|
|
29
|
+
|
|
30
|
+
#include "ReactNativeList-Swift-Cxx-Umbrella.hpp"
|
|
31
|
+
|
|
32
|
+
namespace margelo::nitro::reactnativelist {
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The C++ part of HybridNativeLinearListLayoutSpec_cxx.swift.
|
|
36
|
+
*
|
|
37
|
+
* HybridNativeLinearListLayoutSpecSwift (C++) accesses HybridNativeLinearListLayoutSpec_cxx (Swift), and might
|
|
38
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
39
|
+
*
|
|
40
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
41
|
+
* the future, HybridNativeLinearListLayoutSpec_cxx can directly inherit from the C++ class HybridNativeLinearListLayoutSpec
|
|
42
|
+
* to simplify the whole structure and memory management.
|
|
43
|
+
*/
|
|
44
|
+
class HybridNativeLinearListLayoutSpecSwift: public virtual HybridNativeLinearListLayoutSpec, public virtual HybridNativeListLayoutSpecSwift {
|
|
45
|
+
public:
|
|
46
|
+
// Constructor from a Swift instance
|
|
47
|
+
explicit HybridNativeLinearListLayoutSpecSwift(const ReactNativeList::HybridNativeLinearListLayoutSpec_cxx& swiftPart):
|
|
48
|
+
HybridObject(HybridNativeLinearListLayoutSpec::TAG),
|
|
49
|
+
HybridNativeListLayoutSpecSwift(swiftPart),
|
|
50
|
+
_swiftPart(swiftPart) { }
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
// Get the Swift part
|
|
54
|
+
inline ReactNativeList::HybridNativeLinearListLayoutSpec_cxx& getSwiftPart() noexcept {
|
|
55
|
+
return _swiftPart;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public:
|
|
59
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
60
|
+
return _swiftPart.getMemorySize();
|
|
61
|
+
}
|
|
62
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
63
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridNativeLinearListLayoutSpecSwift>(other)) {
|
|
64
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
void dispose() noexcept override {
|
|
69
|
+
_swiftPart.dispose();
|
|
70
|
+
}
|
|
71
|
+
std::string toString() override {
|
|
72
|
+
return _swiftPart.toString();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public:
|
|
76
|
+
// Properties
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
public:
|
|
80
|
+
// Methods
|
|
81
|
+
inline void setConfig(const NativeLinearListLayoutConfig& config) override {
|
|
82
|
+
auto __result = _swiftPart.setConfig(std::forward<decltype(config)>(config));
|
|
83
|
+
if (__result.hasError()) [[unlikely]] {
|
|
84
|
+
std::rethrow_exception(__result.error());
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
private:
|
|
89
|
+
ReactNativeList::HybridNativeLinearListLayoutSpec_cxx _swiftPart;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeListDataSourceSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridNativeListDataSourceSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::reactnativelist {
|
|
11
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeListDataSourceSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridNativeListDataSourceSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridNativeListDataSourceSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace ReactNativeList { class HybridNativeListDataSourceSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
// Forward declaration of `NativeListItem` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::reactnativelist { struct NativeListItem; }
|
|
17
|
+
|
|
18
|
+
#include "NativeListItem.hpp"
|
|
19
|
+
#include <functional>
|
|
20
|
+
#include <string>
|
|
21
|
+
#include <optional>
|
|
22
|
+
#include <NitroModules/AnyMap.hpp>
|
|
23
|
+
#include <vector>
|
|
24
|
+
|
|
25
|
+
#include "ReactNativeList-Swift-Cxx-Umbrella.hpp"
|
|
26
|
+
|
|
27
|
+
namespace margelo::nitro::reactnativelist {
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The C++ part of HybridNativeListDataSourceSpec_cxx.swift.
|
|
31
|
+
*
|
|
32
|
+
* HybridNativeListDataSourceSpecSwift (C++) accesses HybridNativeListDataSourceSpec_cxx (Swift), and might
|
|
33
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
34
|
+
*
|
|
35
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
36
|
+
* the future, HybridNativeListDataSourceSpec_cxx can directly inherit from the C++ class HybridNativeListDataSourceSpec
|
|
37
|
+
* to simplify the whole structure and memory management.
|
|
38
|
+
*/
|
|
39
|
+
class HybridNativeListDataSourceSpecSwift: public virtual HybridNativeListDataSourceSpec {
|
|
40
|
+
public:
|
|
41
|
+
// Constructor from a Swift instance
|
|
42
|
+
explicit HybridNativeListDataSourceSpecSwift(const ReactNativeList::HybridNativeListDataSourceSpec_cxx& swiftPart):
|
|
43
|
+
HybridObject(HybridNativeListDataSourceSpec::TAG),
|
|
44
|
+
_swiftPart(swiftPart) { }
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
// Get the Swift part
|
|
48
|
+
inline ReactNativeList::HybridNativeListDataSourceSpec_cxx& getSwiftPart() noexcept {
|
|
49
|
+
return _swiftPart;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
54
|
+
return _swiftPart.getMemorySize();
|
|
55
|
+
}
|
|
56
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
57
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridNativeListDataSourceSpecSwift>(other)) {
|
|
58
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
void dispose() noexcept override {
|
|
63
|
+
_swiftPart.dispose();
|
|
64
|
+
}
|
|
65
|
+
std::string toString() override {
|
|
66
|
+
return _swiftPart.toString();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
public:
|
|
70
|
+
// Properties
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
public:
|
|
74
|
+
// Methods
|
|
75
|
+
inline void setContentEqualCallback(const std::function<bool(const NativeListItem& /* oldItem */, const NativeListItem& /* newItem */)>& isContentEqual) override {
|
|
76
|
+
auto __result = _swiftPart.setContentEqualCallback(isContentEqual);
|
|
77
|
+
if (__result.hasError()) [[unlikely]] {
|
|
78
|
+
std::rethrow_exception(__result.error());
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
inline void replaceData(const std::vector<NativeListItem>& items, bool animated) override {
|
|
82
|
+
auto __result = _swiftPart.replaceData(items, std::forward<decltype(animated)>(animated));
|
|
83
|
+
if (__result.hasError()) [[unlikely]] {
|
|
84
|
+
std::rethrow_exception(__result.error());
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
inline void insertItem(double index, const NativeListItem& item) override {
|
|
88
|
+
auto __result = _swiftPart.insertItem(std::forward<decltype(index)>(index), std::forward<decltype(item)>(item));
|
|
89
|
+
if (__result.hasError()) [[unlikely]] {
|
|
90
|
+
std::rethrow_exception(__result.error());
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
inline void updateItem(double index, const NativeListItem& item) override {
|
|
94
|
+
auto __result = _swiftPart.updateItem(std::forward<decltype(index)>(index), std::forward<decltype(item)>(item));
|
|
95
|
+
if (__result.hasError()) [[unlikely]] {
|
|
96
|
+
std::rethrow_exception(__result.error());
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
inline void removeItem(double index) override {
|
|
100
|
+
auto __result = _swiftPart.removeItem(std::forward<decltype(index)>(index));
|
|
101
|
+
if (__result.hasError()) [[unlikely]] {
|
|
102
|
+
std::rethrow_exception(__result.error());
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
inline void moveItem(double fromIndex, double toIndex) override {
|
|
106
|
+
auto __result = _swiftPart.moveItem(std::forward<decltype(fromIndex)>(fromIndex), std::forward<decltype(toIndex)>(toIndex));
|
|
107
|
+
if (__result.hasError()) [[unlikely]] {
|
|
108
|
+
std::rethrow_exception(__result.error());
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
inline double getCount() override {
|
|
112
|
+
auto __result = _swiftPart.getCount();
|
|
113
|
+
if (__result.hasError()) [[unlikely]] {
|
|
114
|
+
std::rethrow_exception(__result.error());
|
|
115
|
+
}
|
|
116
|
+
auto __value = std::move(__result.value());
|
|
117
|
+
return __value;
|
|
118
|
+
}
|
|
119
|
+
inline NativeListItem getItem(double index) override {
|
|
120
|
+
auto __result = _swiftPart.getItem(std::forward<decltype(index)>(index));
|
|
121
|
+
if (__result.hasError()) [[unlikely]] {
|
|
122
|
+
std::rethrow_exception(__result.error());
|
|
123
|
+
}
|
|
124
|
+
auto __value = std::move(__result.value());
|
|
125
|
+
return __value;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
private:
|
|
129
|
+
ReactNativeList::HybridNativeListDataSourceSpec_cxx _swiftPart;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeListLayoutSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridNativeListLayoutSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::reactnativelist {
|
|
11
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeListLayoutSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridNativeListLayoutSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridNativeListLayoutSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace ReactNativeList { class HybridNativeListLayoutSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
#include "ReactNativeList-Swift-Cxx-Umbrella.hpp"
|
|
20
|
+
|
|
21
|
+
namespace margelo::nitro::reactnativelist {
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The C++ part of HybridNativeListLayoutSpec_cxx.swift.
|
|
25
|
+
*
|
|
26
|
+
* HybridNativeListLayoutSpecSwift (C++) accesses HybridNativeListLayoutSpec_cxx (Swift), and might
|
|
27
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
28
|
+
*
|
|
29
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
30
|
+
* the future, HybridNativeListLayoutSpec_cxx can directly inherit from the C++ class HybridNativeListLayoutSpec
|
|
31
|
+
* to simplify the whole structure and memory management.
|
|
32
|
+
*/
|
|
33
|
+
class HybridNativeListLayoutSpecSwift: public virtual HybridNativeListLayoutSpec {
|
|
34
|
+
public:
|
|
35
|
+
// Constructor from a Swift instance
|
|
36
|
+
explicit HybridNativeListLayoutSpecSwift(const ReactNativeList::HybridNativeListLayoutSpec_cxx& swiftPart):
|
|
37
|
+
HybridObject(HybridNativeListLayoutSpec::TAG),
|
|
38
|
+
_swiftPart(swiftPart) { }
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
// Get the Swift part
|
|
42
|
+
inline ReactNativeList::HybridNativeListLayoutSpec_cxx& getSwiftPart() noexcept {
|
|
43
|
+
return _swiftPart;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
48
|
+
return _swiftPart.getMemorySize();
|
|
49
|
+
}
|
|
50
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
51
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridNativeListLayoutSpecSwift>(other)) {
|
|
52
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
void dispose() noexcept override {
|
|
57
|
+
_swiftPart.dispose();
|
|
58
|
+
}
|
|
59
|
+
std::string toString() override {
|
|
60
|
+
return _swiftPart.toString();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
// Properties
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
public:
|
|
68
|
+
// Methods
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
private:
|
|
72
|
+
ReactNativeList::HybridNativeListLayoutSpec_cxx _swiftPart;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUiListModuleSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridUiListModuleSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::reactnativelist {
|
|
11
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUiListModuleSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridUiListModuleSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridUiListModuleSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace ReactNativeList { class HybridUiListModuleSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
// Forward declaration of `HybridIOSWorkletsModuleProxyHolderSpec` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::reactnativelist { class HybridIOSWorkletsModuleProxyHolderSpec; }
|
|
17
|
+
|
|
18
|
+
#include <memory>
|
|
19
|
+
#include "HybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
20
|
+
#include <NitroModules/Null.hpp>
|
|
21
|
+
#include <variant>
|
|
22
|
+
#include <optional>
|
|
23
|
+
|
|
24
|
+
#include "ReactNativeList-Swift-Cxx-Umbrella.hpp"
|
|
25
|
+
|
|
26
|
+
namespace margelo::nitro::reactnativelist {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The C++ part of HybridUiListModuleSpec_cxx.swift.
|
|
30
|
+
*
|
|
31
|
+
* HybridUiListModuleSpecSwift (C++) accesses HybridUiListModuleSpec_cxx (Swift), and might
|
|
32
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
33
|
+
*
|
|
34
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
35
|
+
* the future, HybridUiListModuleSpec_cxx can directly inherit from the C++ class HybridUiListModuleSpec
|
|
36
|
+
* to simplify the whole structure and memory management.
|
|
37
|
+
*/
|
|
38
|
+
class HybridUiListModuleSpecSwift: public virtual HybridUiListModuleSpec {
|
|
39
|
+
public:
|
|
40
|
+
// Constructor from a Swift instance
|
|
41
|
+
explicit HybridUiListModuleSpecSwift(const ReactNativeList::HybridUiListModuleSpec_cxx& swiftPart):
|
|
42
|
+
HybridObject(HybridUiListModuleSpec::TAG),
|
|
43
|
+
_swiftPart(swiftPart) { }
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
// Get the Swift part
|
|
47
|
+
inline ReactNativeList::HybridUiListModuleSpec_cxx& getSwiftPart() noexcept {
|
|
48
|
+
return _swiftPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
53
|
+
return _swiftPart.getMemorySize();
|
|
54
|
+
}
|
|
55
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
56
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridUiListModuleSpecSwift>(other)) {
|
|
57
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
void dispose() noexcept override {
|
|
62
|
+
_swiftPart.dispose();
|
|
63
|
+
}
|
|
64
|
+
std::string toString() override {
|
|
65
|
+
return _swiftPart.toString();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public:
|
|
69
|
+
// Properties
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
public:
|
|
73
|
+
// Methods
|
|
74
|
+
inline std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec> iosGetWorkletsModule() override {
|
|
75
|
+
auto __result = _swiftPart.iosGetWorkletsModule();
|
|
76
|
+
if (__result.hasError()) [[unlikely]] {
|
|
77
|
+
std::rethrow_exception(__result.error());
|
|
78
|
+
}
|
|
79
|
+
auto __value = std::move(__result.value());
|
|
80
|
+
return __value;
|
|
81
|
+
}
|
|
82
|
+
inline void setupRuntime(const std::optional<std::variant<nitro::NullType, std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>>>& workletsModuleHolder) override {
|
|
83
|
+
auto __result = _swiftPart.setupRuntime(workletsModuleHolder);
|
|
84
|
+
if (__result.hasError()) [[unlikely]] {
|
|
85
|
+
std::rethrow_exception(__result.error());
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private:
|
|
90
|
+
ReactNativeList::HybridUiListModuleSpec_cxx _swiftPart;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUiListViewSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridUiListViewSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::reactnativelist {
|
|
11
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUiListViewSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridUiListViewSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridUiListViewSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace ReactNativeList { class HybridUiListViewSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
// Forward declaration of `HybridUiListModuleSpec` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::reactnativelist { class HybridUiListModuleSpec; }
|
|
17
|
+
// Forward declaration of `NativeListItem` to properly resolve imports.
|
|
18
|
+
namespace margelo::nitro::reactnativelist { struct NativeListItem; }
|
|
19
|
+
// Forward declaration of `HybridNativeListDataSourceSpec` to properly resolve imports.
|
|
20
|
+
namespace margelo::nitro::reactnativelist { class HybridNativeListDataSourceSpec; }
|
|
21
|
+
// Forward declaration of `HybridNativeListLayoutSpec` to properly resolve imports.
|
|
22
|
+
namespace margelo::nitro::reactnativelist { class HybridNativeListLayoutSpec; }
|
|
23
|
+
|
|
24
|
+
#include <memory>
|
|
25
|
+
#include "HybridUiListModuleSpec.hpp"
|
|
26
|
+
#include <string>
|
|
27
|
+
#include <functional>
|
|
28
|
+
#include "NativeListItem.hpp"
|
|
29
|
+
#include <optional>
|
|
30
|
+
#include <NitroModules/AnyMap.hpp>
|
|
31
|
+
#include "HybridNativeListDataSourceSpec.hpp"
|
|
32
|
+
#include "HybridNativeListLayoutSpec.hpp"
|
|
33
|
+
|
|
34
|
+
#include "ReactNativeList-Swift-Cxx-Umbrella.hpp"
|
|
35
|
+
|
|
36
|
+
namespace margelo::nitro::reactnativelist {
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The C++ part of HybridUiListViewSpec_cxx.swift.
|
|
40
|
+
*
|
|
41
|
+
* HybridUiListViewSpecSwift (C++) accesses HybridUiListViewSpec_cxx (Swift), and might
|
|
42
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
43
|
+
*
|
|
44
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
45
|
+
* the future, HybridUiListViewSpec_cxx can directly inherit from the C++ class HybridUiListViewSpec
|
|
46
|
+
* to simplify the whole structure and memory management.
|
|
47
|
+
*/
|
|
48
|
+
class HybridUiListViewSpecSwift: public virtual HybridUiListViewSpec {
|
|
49
|
+
public:
|
|
50
|
+
// Constructor from a Swift instance
|
|
51
|
+
explicit HybridUiListViewSpecSwift(const ReactNativeList::HybridUiListViewSpec_cxx& swiftPart):
|
|
52
|
+
HybridObject(HybridUiListViewSpec::TAG),
|
|
53
|
+
_swiftPart(swiftPart) { }
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Get the Swift part
|
|
57
|
+
inline ReactNativeList::HybridUiListViewSpec_cxx& getSwiftPart() noexcept {
|
|
58
|
+
return _swiftPart;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public:
|
|
62
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
63
|
+
return _swiftPart.getMemorySize();
|
|
64
|
+
}
|
|
65
|
+
bool equals(const std::shared_ptr<HybridObject>& other) override {
|
|
66
|
+
if (auto otherCast = std::dynamic_pointer_cast<HybridUiListViewSpecSwift>(other)) {
|
|
67
|
+
return _swiftPart.equals(otherCast->_swiftPart);
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
void dispose() noexcept override {
|
|
72
|
+
_swiftPart.dispose();
|
|
73
|
+
}
|
|
74
|
+
std::string toString() override {
|
|
75
|
+
return _swiftPart.toString();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
public:
|
|
79
|
+
// Properties
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
public:
|
|
83
|
+
// Methods
|
|
84
|
+
inline void setListCallbacks(const std::shared_ptr<HybridUiListModuleSpec>& uiListModule, const std::function<double(const std::string& /* type */)>& createView, const std::function<bool(double /* reactTag */, const NativeListItem& /* item */, double /* index */)>& updateView) override {
|
|
85
|
+
auto __result = _swiftPart.setListCallbacks(uiListModule, createView, updateView);
|
|
86
|
+
if (__result.hasError()) [[unlikely]] {
|
|
87
|
+
std::rethrow_exception(__result.error());
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
inline void setDataSource(const std::shared_ptr<HybridNativeListDataSourceSpec>& dataSource) override {
|
|
91
|
+
auto __result = _swiftPart.setDataSource(dataSource);
|
|
92
|
+
if (__result.hasError()) [[unlikely]] {
|
|
93
|
+
std::rethrow_exception(__result.error());
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
inline void setLayout(const std::shared_ptr<HybridNativeListLayoutSpec>& layout) override {
|
|
97
|
+
auto __result = _swiftPart.setLayout(layout);
|
|
98
|
+
if (__result.hasError()) [[unlikely]] {
|
|
99
|
+
std::rethrow_exception(__result.error());
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
inline double getSurfaceId() override {
|
|
103
|
+
auto __result = _swiftPart.getSurfaceId();
|
|
104
|
+
if (__result.hasError()) [[unlikely]] {
|
|
105
|
+
std::rethrow_exception(__result.error());
|
|
106
|
+
}
|
|
107
|
+
auto __value = std::move(__result.value());
|
|
108
|
+
return __value;
|
|
109
|
+
}
|
|
110
|
+
inline void disposeRendererSurface() override {
|
|
111
|
+
auto __result = _swiftPart.disposeRendererSurface();
|
|
112
|
+
if (__result.hasError()) [[unlikely]] {
|
|
113
|
+
std::rethrow_exception(__result.error());
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
private:
|
|
118
|
+
ReactNativeList::HybridUiListViewSpec_cxx _swiftPart;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridViewHolderSpecSwift.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "HybridViewHolderSpecSwift.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::reactnativelist {
|
|
11
|
+
} // namespace margelo::nitro::reactnativelist
|