react-native-audio-browser 0.2.0-next.12 → 0.2.0-next.14

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 (185) hide show
  1. package/README.md +10 -0
  2. package/android/build.gradle +20 -1
  3. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +8 -1
  4. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +52 -0
  5. package/android/src/main/java/com/audiobrowser/browser/InertStyleDiagnostic.kt +267 -0
  6. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +27 -11
  7. package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +1 -1
  8. package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +11 -0
  9. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +11 -1
  10. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +1 -1
  11. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +21 -22
  12. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +17 -2
  13. package/android/src/main/java/com/audiobrowser/player/Player.kt +3 -0
  14. package/android/src/main/java/com/audiobrowser/player/ShuffleOrderLedBy.kt +30 -0
  15. package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +73 -0
  16. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +16 -6
  17. package/android/src/main/res/values/strings.xml +37 -2
  18. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +50 -5
  19. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +9 -0
  20. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +3 -2
  21. package/android/src/test/java/com/audiobrowser/browser/InertStyleDiagnosticTest.kt +277 -0
  22. package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +56 -0
  23. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +4 -4
  24. package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +77 -10
  25. package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +2 -2
  26. package/android/src/test/java/com/audiobrowser/player/ShuffleOrderLedByTest.kt +79 -0
  27. package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +10 -9
  28. package/ios/Browser/BrowserManager.swift +106 -45
  29. package/ios/Browser/InertStyleDiagnostic.swift +279 -0
  30. package/ios/Browser/JsonModels.swift +81 -15
  31. package/ios/Browser/SectionPresentation.swift +30 -0
  32. package/ios/Browser/StyleResolver.swift +11 -0
  33. package/ios/Browser/TabBarEntries.swift +7 -1
  34. package/ios/CarPlay/CarPlayController.swift +139 -35
  35. package/ios/CarPlay/CarPlayListItemFactory.swift +99 -27
  36. package/ios/Extension/Section+Copying.swift +1 -3
  37. package/ios/Extension/UIApplication+ActiveScene.swift +27 -0
  38. package/ios/Http/HttpClient.swift +8 -2
  39. package/ios/HybridAudioBrowser.swift +56 -12
  40. package/ios/Model/NitroTypeStubs.swift +60 -1
  41. package/ios/Player/MediaIntentCriteria.swift +13 -5
  42. package/ios/Player/MediaLoader.swift +33 -9
  43. package/ios/Player/NowPlayingUpdater.swift +53 -5
  44. package/ios/Player/PlaybackCoordinator.swift +11 -4
  45. package/ios/Player/PlaybackTimer.swift +8 -2
  46. package/ios/Player/QueueManager.swift +36 -10
  47. package/ios/Player/ShuffleOrder.swift +23 -0
  48. package/ios/Player/SleepTimerHandling.swift +13 -0
  49. package/ios/RemoteCommand/RemoteCommandController.swift +53 -18
  50. package/ios/Tests/InertStyleDiagnosticTests.swift +200 -0
  51. package/ios/Tests/JsonModelsTests.swift +76 -1
  52. package/ios/Tests/QueueManagerTests.swift +72 -6
  53. package/ios/Tests/RemoteCommandControllerTests.swift +16 -0
  54. package/ios/Tests/ResolvedTrackCopyingTests.swift +2 -2
  55. package/ios/Tests/SectionPresentationTests.swift +29 -0
  56. package/ios/Tests/StyleResolverTests.swift +60 -0
  57. package/ios/Tests/Support/TestTypes.swift +7 -0
  58. package/ios/TrackPlayer.swift +57 -34
  59. package/ios/Util/NetworkMonitor.swift +43 -26
  60. package/ios/Util/SFSymbolRenderer.swift +24 -2
  61. package/ios/Util/SVGProcessor.swift +9 -2
  62. package/lib/commonjs/features/browser-config.js +1 -0
  63. package/lib/commonjs/features/browser-config.js.map +1 -1
  64. package/lib/commonjs/features/playback/progress.js +2 -1
  65. package/lib/commonjs/features/playback/progress.js.map +1 -1
  66. package/lib/commonjs/features/playback/rate.js +8 -1
  67. package/lib/commonjs/features/playback/rate.js.map +1 -1
  68. package/lib/commonjs/web/TrackPlayer/QueueManager.js +14 -0
  69. package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -1
  70. package/lib/module/features/browser-config.js +1 -0
  71. package/lib/module/features/browser-config.js.map +1 -1
  72. package/lib/module/features/playback/progress.js +2 -1
  73. package/lib/module/features/playback/progress.js.map +1 -1
  74. package/lib/module/features/playback/rate.js +8 -1
  75. package/lib/module/features/playback/rate.js.map +1 -1
  76. package/lib/module/web/TrackPlayer/QueueManager.js +14 -0
  77. package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -1
  78. package/lib/typescript/src/features/browser-config.d.ts.map +1 -1
  79. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
  80. package/lib/typescript/src/features/playback/rate.d.ts +8 -1
  81. package/lib/typescript/src/features/playback/rate.d.ts.map +1 -1
  82. package/lib/typescript/src/types/browser-native.d.ts +2 -1
  83. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  84. package/lib/typescript/src/types/browser-nodes.d.ts +116 -9
  85. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  86. package/lib/typescript/src/types/browser.d.ts +36 -0
  87. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  88. package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +2 -0
  89. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +4 -0
  90. package/nitrogen/generated/android/c++/JBrowseResult.hpp +6 -0
  91. package/nitrogen/generated/android/c++/JCardImage.hpp +58 -0
  92. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +4 -0
  93. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +4 -0
  94. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +4 -0
  95. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +4 -0
  96. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +4 -0
  97. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +4 -0
  98. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +4 -0
  99. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +4 -0
  100. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__string__.hpp +102 -0
  101. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +6 -0
  102. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +4 -0
  103. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +4 -0
  104. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +6 -0
  105. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +4 -0
  106. package/nitrogen/generated/android/c++/JGridTile.hpp +61 -0
  107. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +13 -0
  108. package/nitrogen/generated/android/c++/JImageShape.hpp +58 -0
  109. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +4 -0
  110. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +20 -1
  111. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +6 -0
  112. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +4 -0
  113. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +4 -0
  114. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +6 -0
  115. package/nitrogen/generated/android/c++/JSection.hpp +7 -5
  116. package/nitrogen/generated/android/c++/JSectionStyle.hpp +30 -3
  117. package/nitrogen/generated/android/c++/JTrack.hpp +4 -0
  118. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +4 -0
  119. package/nitrogen/generated/android/c++/JTrackStyle.hpp +24 -3
  120. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +6 -0
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CardImage.kt +23 -0
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__string__.kt +80 -0
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GridTile.kt +24 -0
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageShape.kt +23 -0
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +7 -4
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Section.kt +2 -5
  127. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SectionStyle.kt +18 -3
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +15 -3
  129. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +9 -0
  130. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +104 -0
  131. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +9 -0
  132. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +9 -0
  133. package/nitrogen/generated/ios/swift/CardImage.swift +40 -0
  134. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__string__.swift +54 -0
  135. package/nitrogen/generated/ios/swift/GridTile.swift +44 -0
  136. package/nitrogen/generated/ios/swift/ImageShape.swift +40 -0
  137. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +48 -1
  138. package/nitrogen/generated/ios/swift/Section.swift +1 -19
  139. package/nitrogen/generated/ios/swift/SectionStyle.swift +70 -1
  140. package/nitrogen/generated/ios/swift/TrackStyle.swift +59 -1
  141. package/nitrogen/generated/shared/c++/CardImage.hpp +76 -0
  142. package/nitrogen/generated/shared/c++/GridTile.hpp +80 -0
  143. package/nitrogen/generated/shared/c++/ImageShape.hpp +76 -0
  144. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +6 -2
  145. package/nitrogen/generated/shared/c++/Section.hpp +1 -5
  146. package/nitrogen/generated/shared/c++/SectionStyle.hpp +32 -2
  147. package/nitrogen/generated/shared/c++/TrackStyle.hpp +25 -2
  148. package/package.json +7 -2
  149. package/src/features/browser-config.ts +1 -0
  150. package/src/features/playback/progress.ts +2 -1
  151. package/src/features/playback/rate.ts +8 -1
  152. package/src/style-resolution.test.ts +72 -1
  153. package/src/types/browser-native.ts +5 -1
  154. package/src/types/browser-nodes.ts +124 -9
  155. package/src/types/browser.ts +38 -0
  156. package/src/web/TrackPlayer/QueueManager.test.ts +29 -0
  157. package/src/web/TrackPlayer/QueueManager.ts +14 -0
  158. package/website/guide/android-auto.md +114 -0
  159. package/website/guide/android-certificates.md +409 -0
  160. package/website/guide/artwork.md +255 -0
  161. package/website/guide/audio-output.md +135 -0
  162. package/website/guide/automotive.md +86 -0
  163. package/website/guide/basic-usage.md +151 -0
  164. package/website/guide/battery.md +115 -0
  165. package/website/guide/browser.md +581 -0
  166. package/website/guide/carplay.md +620 -0
  167. package/website/guide/configuration.md +173 -0
  168. package/website/guide/equalizer.md +231 -0
  169. package/website/guide/errors.md +310 -0
  170. package/website/guide/favorites.md +154 -0
  171. package/website/guide/gate.md +143 -0
  172. package/website/guide/getting-started.md +46 -0
  173. package/website/guide/hooks.md +238 -0
  174. package/website/guide/live-streams.md +125 -0
  175. package/website/guide/metadata.md +239 -0
  176. package/website/guide/migrating-from-track-player.md +244 -0
  177. package/website/guide/native-callback-fetch.md +127 -0
  178. package/website/guide/network.md +86 -0
  179. package/website/guide/now-playing.md +175 -0
  180. package/website/guide/playback.md +328 -0
  181. package/website/guide/queue.md +300 -0
  182. package/website/guide/remote-controls.md +256 -0
  183. package/website/guide/search.md +255 -0
  184. package/website/guide/sleep-timer.md +268 -0
  185. package/website/guide/track.md +246 -0
@@ -22,10 +22,25 @@ data class SectionStyle(
22
22
  val gridWrap: Boolean?,
23
23
  @DoNotStrip
24
24
  @Keep
25
+ val gridTile: GridTile?,
26
+ @DoNotStrip
27
+ @Keep
25
28
  val display: StyleDisplay?,
26
29
  @DoNotStrip
27
30
  @Keep
28
- val artworkRendering: ArtworkRendering?
31
+ val artworkRendering: ArtworkRendering?,
32
+ @DoNotStrip
33
+ @Keep
34
+ val imageShape: ImageShape?,
35
+ @DoNotStrip
36
+ @Keep
37
+ val accessorySymbol: String?,
38
+ @DoNotStrip
39
+ @Keep
40
+ val cardTint: String?,
41
+ @DoNotStrip
42
+ @Keep
43
+ val cardImage: CardImage?
29
44
  ) {
30
45
  /* primary constructor */
31
46
 
@@ -37,8 +52,8 @@ data class SectionStyle(
37
52
  @Keep
38
53
  @Suppress("unused")
39
54
  @JvmStatic
40
- private fun fromCpp(gridWrap: Boolean?, display: StyleDisplay?, artworkRendering: ArtworkRendering?): SectionStyle {
41
- return SectionStyle(gridWrap, display, artworkRendering)
55
+ private fun fromCpp(gridWrap: Boolean?, gridTile: GridTile?, display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?): SectionStyle {
56
+ return SectionStyle(gridWrap, gridTile, display, artworkRendering, imageShape, accessorySymbol, cardTint, cardImage)
42
57
  }
43
58
  }
44
59
  }
@@ -22,7 +22,19 @@ data class TrackStyle(
22
22
  val display: StyleDisplay?,
23
23
  @DoNotStrip
24
24
  @Keep
25
- val artworkRendering: ArtworkRendering?
25
+ val artworkRendering: ArtworkRendering?,
26
+ @DoNotStrip
27
+ @Keep
28
+ val imageShape: ImageShape?,
29
+ @DoNotStrip
30
+ @Keep
31
+ val accessorySymbol: String?,
32
+ @DoNotStrip
33
+ @Keep
34
+ val cardTint: String?,
35
+ @DoNotStrip
36
+ @Keep
37
+ val cardImage: CardImage?
26
38
  ) {
27
39
  /* primary constructor */
28
40
 
@@ -34,8 +46,8 @@ data class TrackStyle(
34
46
  @Keep
35
47
  @Suppress("unused")
36
48
  @JvmStatic
37
- private fun fromCpp(display: StyleDisplay?, artworkRendering: ArtworkRendering?): TrackStyle {
38
- return TrackStyle(display, artworkRendering)
49
+ private fun fromCpp(display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?): TrackStyle {
50
+ return TrackStyle(display, artworkRendering, imageShape, accessorySymbol, cardTint, cardImage)
39
51
  }
40
52
  }
41
53
  }
@@ -224,6 +224,15 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
224
224
  };
225
225
  }
226
226
 
227
+ // pragma MARK: std::function<std::shared_ptr<Promise<std::string>>()>
228
+ Func_std__shared_ptr_Promise_std__string__ create_Func_std__shared_ptr_Promise_std__string__(void* NON_NULL swiftClosureWrapper) noexcept {
229
+ auto swiftClosure = AudioBrowser::Func_std__shared_ptr_Promise_std__string__::fromUnsafe(swiftClosureWrapper);
230
+ return [swiftClosure = std::move(swiftClosure)]() mutable -> std::shared_ptr<Promise<std::string>> {
231
+ auto __result = swiftClosure.call();
232
+ return __result;
233
+ };
234
+ }
235
+
227
236
  // pragma MARK: std::function<std::shared_ptr<Promise<std::optional<std::string>>>(const Track& /* track */)>
228
237
  Func_std__shared_ptr_Promise_std__optional_std__string____Track create_Func_std__shared_ptr_Promise_std__optional_std__string____Track(void* NON_NULL swiftClosureWrapper) noexcept {
229
238
  auto swiftClosure = AudioBrowser::Func_std__shared_ptr_Promise_std__optional_std__string____Track::fromUnsafe(swiftClosureWrapper);
@@ -40,6 +40,8 @@ namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
40
40
  namespace margelo::nitro::audiobrowser { enum class CarPlayPlayingIndicatorLocation; }
41
41
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
42
42
  namespace margelo::nitro::audiobrowser { enum class CarPlaySiriListButtonPosition; }
43
+ // Forward declaration of `CardImage` to properly resolve imports.
44
+ namespace margelo::nitro::audiobrowser { enum class CardImage; }
43
45
  // Forward declaration of `ChapterMetadata` to properly resolve imports.
44
46
  namespace margelo::nitro::audiobrowser { struct ChapterMetadata; }
45
47
  // Forward declaration of `EqualizerSettings` to properly resolve imports.
@@ -60,6 +62,8 @@ namespace margelo::nitro::audiobrowser { struct GateEvent; }
60
62
  namespace margelo::nitro::audiobrowser { enum class GateReason; }
61
63
  // Forward declaration of `Gate` to properly resolve imports.
62
64
  namespace margelo::nitro::audiobrowser { struct Gate; }
65
+ // Forward declaration of `GridTile` to properly resolve imports.
66
+ namespace margelo::nitro::audiobrowser { enum class GridTile; }
63
67
  // Forward declaration of `HttpMethod` to properly resolve imports.
64
68
  namespace margelo::nitro::audiobrowser { enum class HttpMethod; }
65
69
  // Forward declaration of `HybridAudioBrowserSpec` to properly resolve imports.
@@ -78,6 +82,8 @@ namespace margelo::nitro::audiobrowser { struct IOSOptions; }
78
82
  namespace margelo::nitro::audiobrowser { struct ImageContext; }
79
83
  // Forward declaration of `ImageQueryParams` to properly resolve imports.
80
84
  namespace margelo::nitro::audiobrowser { struct ImageQueryParams; }
85
+ // Forward declaration of `ImageShape` to properly resolve imports.
86
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
81
87
  // Forward declaration of `ImageSource` to properly resolve imports.
82
88
  namespace margelo::nitro::audiobrowser { struct ImageSource; }
83
89
  // Forward declaration of `MediaReference` to properly resolve imports.
@@ -218,6 +224,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
218
224
  #include "CarPlayNowPlayingButton.hpp"
219
225
  #include "CarPlayPlayingIndicatorLocation.hpp"
220
226
  #include "CarPlaySiriListButtonPosition.hpp"
227
+ #include "CardImage.hpp"
221
228
  #include "ChapterMetadata.hpp"
222
229
  #include "EqualizerSettings.hpp"
223
230
  #include "FavoriteChangedEvent.hpp"
@@ -228,6 +235,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
228
235
  #include "GateDecision.hpp"
229
236
  #include "GateEvent.hpp"
230
237
  #include "GateReason.hpp"
238
+ #include "GridTile.hpp"
231
239
  #include "HttpMethod.hpp"
232
240
  #include "HybridAudioBrowserSpec.hpp"
233
241
  #include "IOSCategory.hpp"
@@ -237,6 +245,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
237
245
  #include "IOSOptions.hpp"
238
246
  #include "ImageContext.hpp"
239
247
  #include "ImageQueryParams.hpp"
248
+ #include "ImageShape.hpp"
240
249
  #include "ImageSource.hpp"
241
250
  #include "MediaReference.hpp"
242
251
  #include "MediaRequestConfig.hpp"
@@ -519,6 +528,36 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
519
528
  return optional.value();
520
529
  }
521
530
 
531
+ // pragma MARK: std::optional<ImageShape>
532
+ /**
533
+ * Specialized version of `std::optional<ImageShape>`.
534
+ */
535
+ using std__optional_ImageShape_ = std::optional<ImageShape>;
536
+ inline std::optional<ImageShape> create_std__optional_ImageShape_(const ImageShape& value) noexcept {
537
+ return std::optional<ImageShape>(value);
538
+ }
539
+ inline bool has_value_std__optional_ImageShape_(const std::optional<ImageShape>& optional) noexcept {
540
+ return optional.has_value();
541
+ }
542
+ inline ImageShape get_std__optional_ImageShape_(const std::optional<ImageShape>& optional) noexcept {
543
+ return optional.value();
544
+ }
545
+
546
+ // pragma MARK: std::optional<CardImage>
547
+ /**
548
+ * Specialized version of `std::optional<CardImage>`.
549
+ */
550
+ using std__optional_CardImage_ = std::optional<CardImage>;
551
+ inline std::optional<CardImage> create_std__optional_CardImage_(const CardImage& value) noexcept {
552
+ return std::optional<CardImage>(value);
553
+ }
554
+ inline bool has_value_std__optional_CardImage_(const std::optional<CardImage>& optional) noexcept {
555
+ return optional.has_value();
556
+ }
557
+ inline CardImage get_std__optional_CardImage_(const std::optional<CardImage>& optional) noexcept {
558
+ return optional.value();
559
+ }
560
+
522
561
  // pragma MARK: std::optional<bool>
523
562
  /**
524
563
  * Specialized version of `std::optional<bool>`.
@@ -631,6 +670,21 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
631
670
  return optional.value();
632
671
  }
633
672
 
673
+ // pragma MARK: std::optional<GridTile>
674
+ /**
675
+ * Specialized version of `std::optional<GridTile>`.
676
+ */
677
+ using std__optional_GridTile_ = std::optional<GridTile>;
678
+ inline std::optional<GridTile> create_std__optional_GridTile_(const GridTile& value) noexcept {
679
+ return std::optional<GridTile>(value);
680
+ }
681
+ inline bool has_value_std__optional_GridTile_(const std::optional<GridTile>& optional) noexcept {
682
+ return optional.has_value();
683
+ }
684
+ inline GridTile get_std__optional_GridTile_(const std::optional<GridTile>& optional) noexcept {
685
+ return optional.value();
686
+ }
687
+
634
688
  // pragma MARK: std::optional<std::vector<Section>>
635
689
  /**
636
690
  * Specialized version of `std::optional<std::vector<Section>>`.
@@ -1682,6 +1736,56 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
1682
1736
  return Func_void_Wrapper(std::move(value));
1683
1737
  }
1684
1738
 
1739
+ // pragma MARK: std::optional<std::function<std::shared_ptr<Promise<std::string>>()>>
1740
+ /**
1741
+ * Specialized version of `std::optional<std::function<std::shared_ptr<Promise<std::string>>()>>`.
1742
+ */
1743
+ using std__optional_std__function_std__shared_ptr_Promise_std__string______ = std::optional<std::function<std::shared_ptr<Promise<std::string>>()>>;
1744
+ inline std::optional<std::function<std::shared_ptr<Promise<std::string>>()>> create_std__optional_std__function_std__shared_ptr_Promise_std__string______(const std::function<std::shared_ptr<Promise<std::string>>()>& value) noexcept {
1745
+ return std::optional<std::function<std::shared_ptr<Promise<std::string>>()>>(value);
1746
+ }
1747
+ inline bool has_value_std__optional_std__function_std__shared_ptr_Promise_std__string______(const std::optional<std::function<std::shared_ptr<Promise<std::string>>()>>& optional) noexcept {
1748
+ return optional.has_value();
1749
+ }
1750
+ inline std::function<std::shared_ptr<Promise<std::string>>()> get_std__optional_std__function_std__shared_ptr_Promise_std__string______(const std::optional<std::function<std::shared_ptr<Promise<std::string>>()>>& optional) noexcept {
1751
+ return optional.value();
1752
+ }
1753
+
1754
+ // pragma MARK: std::function<std::shared_ptr<Promise<std::string>>()>
1755
+ /**
1756
+ * Specialized version of `std::function<std::shared_ptr<Promise<std::string>>()>`.
1757
+ */
1758
+ using Func_std__shared_ptr_Promise_std__string__ = std::function<std::shared_ptr<Promise<std::string>>()>;
1759
+ /**
1760
+ * Wrapper class for a `std::function<std::shared_ptr<Promise<std::string>>()>`, this can be used from Swift.
1761
+ */
1762
+ class Func_std__shared_ptr_Promise_std__string___Wrapper final {
1763
+ public:
1764
+ explicit Func_std__shared_ptr_Promise_std__string___Wrapper(std::function<std::shared_ptr<Promise<std::string>>()>&& func): _function(std::make_unique<std::function<std::shared_ptr<Promise<std::string>>()>>(std::move(func))) {}
1765
+ inline std::shared_ptr<Promise<std::string>> call() const noexcept {
1766
+ auto __result = _function->operator()();
1767
+ return __result;
1768
+ }
1769
+ private:
1770
+ std::unique_ptr<std::function<std::shared_ptr<Promise<std::string>>()>> _function;
1771
+ } SWIFT_NONCOPYABLE;
1772
+ Func_std__shared_ptr_Promise_std__string__ create_Func_std__shared_ptr_Promise_std__string__(void* NON_NULL swiftClosureWrapper) noexcept;
1773
+ inline Func_std__shared_ptr_Promise_std__string___Wrapper wrap_Func_std__shared_ptr_Promise_std__string__(Func_std__shared_ptr_Promise_std__string__ value) noexcept {
1774
+ return Func_std__shared_ptr_Promise_std__string___Wrapper(std::move(value));
1775
+ }
1776
+
1777
+ // pragma MARK: std::shared_ptr<Promise<std::string>>
1778
+ /**
1779
+ * Specialized version of `std::shared_ptr<Promise<std::string>>`.
1780
+ */
1781
+ using std__shared_ptr_Promise_std__string__ = std::shared_ptr<Promise<std::string>>;
1782
+ inline std::shared_ptr<Promise<std::string>> create_std__shared_ptr_Promise_std__string__() noexcept {
1783
+ return Promise<std::string>::create();
1784
+ }
1785
+ inline PromiseHolder<std::string> wrap_std__shared_ptr_Promise_std__string__(std::shared_ptr<Promise<std::string>> promise) noexcept {
1786
+ return PromiseHolder<std::string>(std::move(promise));
1787
+ }
1788
+
1685
1789
  // pragma MARK: std::optional<std::function<std::shared_ptr<Promise<std::optional<std::string>>>(const Track& /* track */)>>
1686
1790
  /**
1687
1791
  * Specialized version of `std::optional<std::function<std::shared_ptr<Promise<std::optional<std::string>>>(const Track& / * track * /)>>`.
@@ -40,6 +40,8 @@ namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
40
40
  namespace margelo::nitro::audiobrowser { enum class CarPlayPlayingIndicatorLocation; }
41
41
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
42
42
  namespace margelo::nitro::audiobrowser { enum class CarPlaySiriListButtonPosition; }
43
+ // Forward declaration of `CardImage` to properly resolve imports.
44
+ namespace margelo::nitro::audiobrowser { enum class CardImage; }
43
45
  // Forward declaration of `ChapterMetadata` to properly resolve imports.
44
46
  namespace margelo::nitro::audiobrowser { struct ChapterMetadata; }
45
47
  // Forward declaration of `EqualizerSettings` to properly resolve imports.
@@ -60,6 +62,8 @@ namespace margelo::nitro::audiobrowser { struct GateEvent; }
60
62
  namespace margelo::nitro::audiobrowser { enum class GateReason; }
61
63
  // Forward declaration of `Gate` to properly resolve imports.
62
64
  namespace margelo::nitro::audiobrowser { struct Gate; }
65
+ // Forward declaration of `GridTile` to properly resolve imports.
66
+ namespace margelo::nitro::audiobrowser { enum class GridTile; }
63
67
  // Forward declaration of `HttpMethod` to properly resolve imports.
64
68
  namespace margelo::nitro::audiobrowser { enum class HttpMethod; }
65
69
  // Forward declaration of `HybridAudioBrowserSpec` to properly resolve imports.
@@ -78,6 +82,8 @@ namespace margelo::nitro::audiobrowser { struct IOSOptions; }
78
82
  namespace margelo::nitro::audiobrowser { struct ImageContext; }
79
83
  // Forward declaration of `ImageQueryParams` to properly resolve imports.
80
84
  namespace margelo::nitro::audiobrowser { struct ImageQueryParams; }
85
+ // Forward declaration of `ImageShape` to properly resolve imports.
86
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
81
87
  // Forward declaration of `ImageSource` to properly resolve imports.
82
88
  namespace margelo::nitro::audiobrowser { struct ImageSource; }
83
89
  // Forward declaration of `MediaReference` to properly resolve imports.
@@ -218,6 +224,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
218
224
  #include "CarPlayNowPlayingButton.hpp"
219
225
  #include "CarPlayPlayingIndicatorLocation.hpp"
220
226
  #include "CarPlaySiriListButtonPosition.hpp"
227
+ #include "CardImage.hpp"
221
228
  #include "ChapterMetadata.hpp"
222
229
  #include "EqualizerSettings.hpp"
223
230
  #include "FavoriteChangedEvent.hpp"
@@ -228,6 +235,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
228
235
  #include "GateDecision.hpp"
229
236
  #include "GateEvent.hpp"
230
237
  #include "GateReason.hpp"
238
+ #include "GridTile.hpp"
231
239
  #include "HttpMethod.hpp"
232
240
  #include "HybridAudioBrowserSpec.hpp"
233
241
  #include "IOSCategory.hpp"
@@ -237,6 +245,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
237
245
  #include "IOSOptions.hpp"
238
246
  #include "ImageContext.hpp"
239
247
  #include "ImageQueryParams.hpp"
248
+ #include "ImageShape.hpp"
240
249
  #include "ImageSource.hpp"
241
250
  #include "MediaReference.hpp"
242
251
  #include "MediaRequestConfig.hpp"
@@ -28,10 +28,16 @@ namespace margelo::nitro::audiobrowser { struct TrackStyle; }
28
28
  namespace margelo::nitro::audiobrowser { enum class StyleDisplay; }
29
29
  // Forward declaration of `ArtworkRendering` to properly resolve imports.
30
30
  namespace margelo::nitro::audiobrowser { enum class ArtworkRendering; }
31
+ // Forward declaration of `ImageShape` to properly resolve imports.
32
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
33
+ // Forward declaration of `CardImage` to properly resolve imports.
34
+ namespace margelo::nitro::audiobrowser { enum class CardImage; }
31
35
  // Forward declaration of `ResolvedTrack` to properly resolve imports.
32
36
  namespace margelo::nitro::audiobrowser { struct ResolvedTrack; }
33
37
  // Forward declaration of `SectionStyle` to properly resolve imports.
34
38
  namespace margelo::nitro::audiobrowser { struct SectionStyle; }
39
+ // Forward declaration of `GridTile` to properly resolve imports.
40
+ namespace margelo::nitro::audiobrowser { enum class GridTile; }
35
41
  // Forward declaration of `Section` to properly resolve imports.
36
42
  namespace margelo::nitro::audiobrowser { struct Section; }
37
43
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
@@ -216,9 +222,12 @@ namespace margelo::nitro::audiobrowser { struct Progress; }
216
222
  #include "TrackStyle.hpp"
217
223
  #include "StyleDisplay.hpp"
218
224
  #include "ArtworkRendering.hpp"
225
+ #include "ImageShape.hpp"
226
+ #include "CardImage.hpp"
219
227
  #include <functional>
220
228
  #include "ResolvedTrack.hpp"
221
229
  #include "SectionStyle.hpp"
230
+ #include "GridTile.hpp"
222
231
  #include "Section.hpp"
223
232
  #include "CarPlaySiriListButtonPosition.hpp"
224
233
  #include "NavigationErrorEvent.hpp"
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// CardImage.swift
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
+ /**
9
+ * Represents the JS union `CardImage`, backed by a C++ enum.
10
+ */
11
+ public typealias CardImage = margelo.nitro.audiobrowser.CardImage
12
+
13
+ public extension CardImage {
14
+ /**
15
+ * Get a CardImage for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "normal":
21
+ self = .normal
22
+ case "background":
23
+ self = .background
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this CardImage represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .normal:
35
+ return "normal"
36
+ case .background:
37
+ return "background"
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,54 @@
1
+ ///
2
+ /// Func_std__shared_ptr_Promise_std__string__.swift
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
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `() -> Promise<String>` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_std__shared_ptr_Promise_std__string__ {
15
+ public typealias bridge = margelo.nitro.audiobrowser.bridge.swift
16
+
17
+ private let closure: () -> Promise<String>
18
+
19
+ public init(_ closure: @escaping () -> Promise<String>) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call() -> bridge.std__shared_ptr_Promise_std__string__ {
25
+ let __result: Promise<String> = self.closure()
26
+ return { () -> bridge.std__shared_ptr_Promise_std__string__ in
27
+ let __promise = bridge.create_std__shared_ptr_Promise_std__string__()
28
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__string__(__promise)
29
+ __result
30
+ .then({ __result in __promiseHolder.resolve(std.string(__result)) })
31
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
32
+ return __promise
33
+ }()
34
+ }
35
+
36
+ /**
37
+ * Casts this instance to a retained unsafe raw pointer.
38
+ * This acquires one additional strong reference on the object!
39
+ */
40
+ @inline(__always)
41
+ public func toUnsafe() -> UnsafeMutableRawPointer {
42
+ return Unmanaged.passRetained(self).toOpaque()
43
+ }
44
+
45
+ /**
46
+ * Casts an unsafe pointer to a `Func_std__shared_ptr_Promise_std__string__`.
47
+ * The pointer has to be a retained opaque `Unmanaged<Func_std__shared_ptr_Promise_std__string__>`.
48
+ * This removes one strong reference from the object!
49
+ */
50
+ @inline(__always)
51
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_std__shared_ptr_Promise_std__string__ {
52
+ return Unmanaged<Func_std__shared_ptr_Promise_std__string__>.fromOpaque(pointer).takeRetainedValue()
53
+ }
54
+ }
@@ -0,0 +1,44 @@
1
+ ///
2
+ /// GridTile.swift
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
+ /**
9
+ * Represents the JS union `GridTile`, backed by a C++ enum.
10
+ */
11
+ public typealias GridTile = margelo.nitro.audiobrowser.GridTile
12
+
13
+ public extension GridTile {
14
+ /**
15
+ * Get a GridTile for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "plain":
21
+ self = .plain
22
+ case "card":
23
+ self = .card
24
+ case "condensed":
25
+ self = .condensed
26
+ default:
27
+ return nil
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Get the String value this GridTile represents.
33
+ */
34
+ var stringValue: String {
35
+ switch self {
36
+ case .plain:
37
+ return "plain"
38
+ case .card:
39
+ return "card"
40
+ case .condensed:
41
+ return "condensed"
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// ImageShape.swift
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
+ /**
9
+ * Represents the JS union `ImageShape`, backed by a C++ enum.
10
+ */
11
+ public typealias ImageShape = margelo.nitro.audiobrowser.ImageShape
12
+
13
+ public extension ImageShape {
14
+ /**
15
+ * Get a ImageShape for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "circular":
21
+ self = .circular
22
+ case "rounded-rectangle":
23
+ self = .roundedRectangle
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this ImageShape represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .circular:
35
+ return "circular"
36
+ case .roundedRectangle:
37
+ return "rounded-rectangle"
38
+ }
39
+ }
40
+ }
@@ -18,7 +18,7 @@ public extension NativeBrowserConfiguration {
18
18
  /**
19
19
  * Create a new instance of `NativeBrowserConfiguration`.
20
20
  */
21
- init(path: String?, request: TransformableRequestConfig?, requestResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, browse: TransformableRequestConfig?, browseResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, media: MediaRequestConfig?, artwork: ArtworkRequestConfig?, nowPlayingArtwork: ArtworkRequestConfig?, routes: [NativeRouteEntry]?, singleTrack: Bool?, handleTrackLoad: ((_ event: TrackLoadEvent) -> Promise<Promise<Void>>)?, androidControllerOfflineError: Bool?, carPlayLoadingTitle: String?, resolveAlbumPath: ((_ track: Track) -> Promise<String?>)?, formatNavigationError: ((_ params: FormatNavigationErrorParams) -> Promise<FormattedNavigationError?>)?) {
21
+ init(path: String?, request: TransformableRequestConfig?, requestResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, browse: TransformableRequestConfig?, browseResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, media: MediaRequestConfig?, artwork: ArtworkRequestConfig?, nowPlayingArtwork: ArtworkRequestConfig?, routes: [NativeRouteEntry]?, singleTrack: Bool?, handleTrackLoad: ((_ event: TrackLoadEvent) -> Promise<Promise<Void>>)?, androidControllerOfflineError: Bool?, viewMoreTitle: (() -> Promise<String>)?, carPlayLoadingTitle: String?, resolveAlbumPath: ((_ track: Track) -> Promise<String?>)?, formatNavigationError: ((_ params: FormatNavigationErrorParams) -> Promise<FormattedNavigationError?>)?) {
22
22
  self.init({ () -> bridge.std__optional_std__string_ in
23
23
  if let __unwrappedValue = path {
24
24
  return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
@@ -106,6 +106,15 @@ public extension NativeBrowserConfiguration {
106
106
  } else {
107
107
  return .init()
108
108
  }
109
+ }(), { () -> bridge.std__optional_std__function_std__shared_ptr_Promise_std__string______ in
110
+ if let __unwrappedValue = viewMoreTitle {
111
+ return bridge.create_std__optional_std__function_std__shared_ptr_Promise_std__string______({ () -> bridge.Func_std__shared_ptr_Promise_std__string__ in
112
+ let __closureWrapper = Func_std__shared_ptr_Promise_std__string__(__unwrappedValue)
113
+ return bridge.create_Func_std__shared_ptr_Promise_std__string__(__closureWrapper.toUnsafe())
114
+ }())
115
+ } else {
116
+ return .init()
117
+ }
109
118
  }(), { () -> bridge.std__optional_std__string_ in
110
119
  if let __unwrappedValue = carPlayLoadingTitle {
111
120
  return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
@@ -320,6 +329,44 @@ public extension NativeBrowserConfiguration {
320
329
  }()
321
330
  }
322
331
 
332
+ @inline(__always)
333
+ var viewMoreTitle: (() -> Promise<String>)? {
334
+ return { () -> (() -> Promise<String>)? in
335
+ if bridge.has_value_std__optional_std__function_std__shared_ptr_Promise_std__string______(self.__viewMoreTitle) {
336
+ let __unwrapped = bridge.get_std__optional_std__function_std__shared_ptr_Promise_std__string______(self.__viewMoreTitle)
337
+ return { () -> () -> Promise<String> in
338
+ let __wrappedFunction = bridge.wrap_Func_std__shared_ptr_Promise_std__string__(__unwrapped)
339
+ return { () -> Promise<String> in
340
+ let __result = __wrappedFunction.call()
341
+ return { () -> Promise<String> in
342
+ let __promise = Promise<String>()
343
+ let __resolver = { (__result: String) in
344
+ __promise.resolve(withResult: __result)
345
+ }
346
+ let __rejecter = { (__error: Error) in
347
+ __promise.reject(withError: __error)
348
+ }
349
+ let __resolverCpp = { () -> bridge.Func_void_std__string in
350
+ let __closureWrapper = Func_void_std__string(__resolver)
351
+ return bridge.create_Func_void_std__string(__closureWrapper.toUnsafe())
352
+ }()
353
+ let __rejecterCpp = { () -> bridge.Func_void_std__exception_ptr in
354
+ let __closureWrapper = Func_void_std__exception_ptr(__rejecter)
355
+ return bridge.create_Func_void_std__exception_ptr(__closureWrapper.toUnsafe())
356
+ }()
357
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__string__(__result)
358
+ __promiseHolder.addOnResolvedListener(__resolverCpp)
359
+ __promiseHolder.addOnRejectedListener(__rejecterCpp)
360
+ return __promise
361
+ }()
362
+ }
363
+ }()
364
+ } else {
365
+ return nil
366
+ }
367
+ }()
368
+ }
369
+
323
370
  @inline(__always)
324
371
  var carPlayLoadingTitle: String? {
325
372
  return { () -> String? in
@@ -18,19 +18,13 @@ public extension Section {
18
18
  /**
19
19
  * Create a new instance of `Section`.
20
20
  */
21
- init(title: String?, subtitle: String?, style: SectionStyle?, path: String?, children: [Track]) {
21
+ init(title: String?, style: SectionStyle?, path: String?, children: [Track]) {
22
22
  self.init({ () -> bridge.std__optional_std__string_ in
23
23
  if let __unwrappedValue = title {
24
24
  return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
25
25
  } else {
26
26
  return .init()
27
27
  }
28
- }(), { () -> bridge.std__optional_std__string_ in
29
- if let __unwrappedValue = subtitle {
30
- return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
31
- } else {
32
- return .init()
33
- }
34
28
  }(), { () -> bridge.std__optional_SectionStyle_ in
35
29
  if let __unwrappedValue = style {
36
30
  return bridge.create_std__optional_SectionStyle_(__unwrappedValue)
@@ -64,18 +58,6 @@ public extension Section {
64
58
  }()
65
59
  }
66
60
 
67
- @inline(__always)
68
- var subtitle: String? {
69
- return { () -> String? in
70
- if bridge.has_value_std__optional_std__string_(self.__subtitle) {
71
- let __unwrapped = bridge.get_std__optional_std__string_(self.__subtitle)
72
- return String(__unwrapped)
73
- } else {
74
- return nil
75
- }
76
- }()
77
- }
78
-
79
61
  @inline(__always)
80
62
  var style: SectionStyle? {
81
63
  return self.__style.value