@swiftbrowser/swift 0.0.0-stage → 0.2.0
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/Package.swift +214 -0
- package/README.md +10 -2
- package/Sources/AVFoundation/AVFoundation.swift +131 -0
- package/Sources/AVFoundation/Asset.swift +487 -0
- package/Sources/AVFoundation/AudioSession.swift +144 -0
- package/Sources/AVFoundation/CMTime.swift +303 -0
- package/Sources/AVFoundation/Capture.swift +688 -0
- package/Sources/AVFoundation/Player.swift +749 -0
- package/Sources/AVFoundation/PlayerView.swift +117 -0
- package/Sources/AVKit/AVKit.swift +132 -0
- package/Sources/Accelerate/Accelerate.swift +122 -0
- package/Sources/AppIntents/AppIntents.swift +144 -0
- package/Sources/AppIntents/Parameters.swift +220 -0
- package/Sources/AppIntents/Shortcuts.swift +159 -0
- package/Sources/AudioToolbox/AudioToolbox.swift +55 -0
- package/Sources/AuthenticationServices/AuthenticationServices.swift +257 -0
- package/Sources/AuthenticationServices/Authorization.swift +251 -0
- package/Sources/Charts/Charts.swift +61 -0
- package/Sources/Combine/AnyCancellable.swift +65 -0
- package/Sources/Combine/AnyPublisher.swift +148 -0
- package/Sources/Combine/AnySubscriber.swift +230 -0
- package/Sources/Combine/Cancellable.swift +35 -0
- package/Sources/Combine/Codable.swift +29 -0
- package/Sources/Combine/CombineIdentifier.swift +45 -0
- package/Sources/Combine/Concurrency/ConcurrencyHelpers.swift +24 -0
- package/Sources/Combine/Concurrency/Future+Concurrency.swift +136 -0
- package/Sources/Combine/Concurrency/GENERATED-Publisher+Concurrency.swift +397 -0
- package/Sources/Combine/CurrentValueSubject.swift +252 -0
- package/Sources/Combine/CustomCombineIdentifierConvertible.swift +28 -0
- package/Sources/Combine/Future.swift +228 -0
- package/Sources/Combine/GENERATED-RootProtocols.swift +426 -0
- package/Sources/Combine/Helpers/ConduitBase.swift +40 -0
- package/Sources/Combine/Helpers/ConduitList.swift +59 -0
- package/Sources/Combine/Helpers/DebugHook.swift +177 -0
- package/Sources/Combine/Helpers/FilterProducer.swift +174 -0
- package/Sources/Combine/Helpers/Locking.swift +30 -0
- package/Sources/Combine/Helpers/PartialCompletion.swift +26 -0
- package/Sources/Combine/Helpers/ReduceProducer.swift +249 -0
- package/Sources/Combine/Helpers/SubjectSubscriber.swift +96 -0
- package/Sources/Combine/Helpers/SubscriberTap.swift +69 -0
- package/Sources/Combine/Helpers/SubscriptionStatus.swift +33 -0
- package/Sources/Combine/Helpers/SubscriptionTap.swift +33 -0
- package/Sources/Combine/Helpers/Utils.swift +30 -0
- package/Sources/Combine/Helpers/Violations.swift +33 -0
- package/Sources/Combine/ImmediateScheduler.swift +178 -0
- package/Sources/Combine/LICENSE +21 -0
- package/Sources/Combine/NotificationPublisher.swift +48 -0
- package/Sources/Combine/ObjectWillChange.swift +46 -0
- package/Sources/Combine/PassthroughSubject.swift +222 -0
- package/Sources/Combine/Publisher+Subscribe.swift +53 -0
- package/Sources/Combine/Publishers/Deferred.swift +48 -0
- package/Sources/Combine/Publishers/Empty.swift +54 -0
- package/Sources/Combine/Publishers/Fail.swift +42 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.Catch.swift +673 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.Encode.swift +388 -0
- package/Sources/Combine/Publishers/GENERATED-Publishers.MapKeyPath.swift +384 -0
- package/Sources/Combine/Publishers/Just.swift +313 -0
- package/Sources/Combine/Publishers/Optional.Publisher.swift +315 -0
- package/Sources/Combine/Publishers/Publishers.AllSatisfy.swift +217 -0
- package/Sources/Combine/Publishers/Publishers.AssertNoFailure.swift +158 -0
- package/Sources/Combine/Publishers/Publishers.Autoconnect.swift +193 -0
- package/Sources/Combine/Publishers/Publishers.Breakpoint.swift +231 -0
- package/Sources/Combine/Publishers/Publishers.Buffer.swift +356 -0
- package/Sources/Combine/Publishers/Publishers.Collect.swift +102 -0
- package/Sources/Combine/Publishers/Publishers.CollectByCount.swift +195 -0
- package/Sources/Combine/Publishers/Publishers.CompactMap.swift +241 -0
- package/Sources/Combine/Publishers/Publishers.Comparison.swift +371 -0
- package/Sources/Combine/Publishers/Publishers.Concatenate.swift +474 -0
- package/Sources/Combine/Publishers/Publishers.Contains.swift +293 -0
- package/Sources/Combine/Publishers/Publishers.Count.swift +87 -0
- package/Sources/Combine/Publishers/Publishers.Debounce.swift +332 -0
- package/Sources/Combine/Publishers/Publishers.Delay.swift +269 -0
- package/Sources/Combine/Publishers/Publishers.Drop.swift +155 -0
- package/Sources/Combine/Publishers/Publishers.DropUntilOutput.swift +283 -0
- package/Sources/Combine/Publishers/Publishers.DropWhile.swift +378 -0
- package/Sources/Combine/Publishers/Publishers.Filter.swift +248 -0
- package/Sources/Combine/Publishers/Publishers.First.swift +261 -0
- package/Sources/Combine/Publishers/Publishers.FlatMap.swift +533 -0
- package/Sources/Combine/Publishers/Publishers.HandleEvents.swift +260 -0
- package/Sources/Combine/Publishers/Publishers.IgnoreOutput.swift +109 -0
- package/Sources/Combine/Publishers/Publishers.Last.swift +252 -0
- package/Sources/Combine/Publishers/Publishers.MakeConnectable.swift +82 -0
- package/Sources/Combine/Publishers/Publishers.Map.swift +351 -0
- package/Sources/Combine/Publishers/Publishers.MapError.swift +140 -0
- package/Sources/Combine/Publishers/Publishers.MeasureInterval.swift +187 -0
- package/Sources/Combine/Publishers/Publishers.Multicast.swift +284 -0
- package/Sources/Combine/Publishers/Publishers.Output.swift +241 -0
- package/Sources/Combine/Publishers/Publishers.PrefixUntilOutput.swift +197 -0
- package/Sources/Combine/Publishers/Publishers.PrefixWhile.swift +176 -0
- package/Sources/Combine/Publishers/Publishers.Print.swift +206 -0
- package/Sources/Combine/Publishers/Publishers.ReceiveOn.swift +227 -0
- package/Sources/Combine/Publishers/Publishers.Reduce.swift +204 -0
- package/Sources/Combine/Publishers/Publishers.RemoveDuplicates.swift +264 -0
- package/Sources/Combine/Publishers/Publishers.ReplaceEmpty.swift +201 -0
- package/Sources/Combine/Publishers/Publishers.ReplaceError.swift +211 -0
- package/Sources/Combine/Publishers/Publishers.Retry.swift +274 -0
- package/Sources/Combine/Publishers/Publishers.Scan.swift +331 -0
- package/Sources/Combine/Publishers/Publishers.Sequence.swift +437 -0
- package/Sources/Combine/Publishers/Publishers.SetFailureType.swift +120 -0
- package/Sources/Combine/Publishers/Publishers.Share.swift +104 -0
- package/Sources/Combine/Publishers/Publishers.SubscribeOn.swift +197 -0
- package/Sources/Combine/Publishers/Publishers.SwitchToLatest.swift +444 -0
- package/Sources/Combine/Publishers/Publishers.Throttle.swift +359 -0
- package/Sources/Combine/Publishers/Publishers.Timeout.swift +301 -0
- package/Sources/Combine/Publishers/Publishers.Zip.swift +720 -0
- package/Sources/Combine/Publishers/Publishers.swift +13 -0
- package/Sources/Combine/Publishers/Record.swift +237 -0
- package/Sources/Combine/Publishers/Result.Publisher.swift +337 -0
- package/Sources/Combine/Result.swift +46 -0
- package/Sources/Combine/Scheduler.swift +89 -0
- package/Sources/Combine/Schedulers.swift +211 -0
- package/Sources/Combine/Subject+Void.swift +17 -0
- package/Sources/Combine/Subscriber+Void.swift +20 -0
- package/Sources/Combine/Subscribers/Subscribers.Assign.swift +175 -0
- package/Sources/Combine/Subscribers/Subscribers.Completion.swift +90 -0
- package/Sources/Combine/Subscribers/Subscribers.Demand.swift +476 -0
- package/Sources/Combine/Subscribers/Subscribers.Sink.swift +206 -0
- package/Sources/Combine/Subscribers/Subscribers.swift +9 -0
- package/Sources/Combine/Subscription.swift +22 -0
- package/Sources/Combine/Subscriptions.swift +42 -0
- package/Sources/Combine/SwiftUIObservation.swift +10 -0
- package/Sources/Combine/_Introspection.swift +107 -0
- package/Sources/CommonCrypto/CommonCrypto.swift +80 -0
- package/Sources/Compression/Compression.swift +365 -0
- package/Sources/Compression/Deflate.swift +407 -0
- package/Sources/Compression/Zlib.swift +179 -0
- package/Sources/CoreFoundationTypes/CoreFoundationTypes.swift +101 -0
- package/Sources/CoreGraphics/CoreGraphics.swift +411 -0
- package/Sources/CoreGraphics/ProjectionTransforms.swift +28 -0
- package/Sources/CoreHaptics/CoreHaptics.swift +399 -0
- package/Sources/CoreImage/CIColor.swift +41 -0
- package/Sources/CoreImage/CIContext.swift +31 -0
- package/Sources/CoreImage/CIDetector.swift +57 -0
- package/Sources/CoreImage/CIFilter.swift +243 -0
- package/Sources/CoreImage/CIFilterBuiltins.swift +136 -0
- package/Sources/CoreImage/CIImage.swift +162 -0
- package/Sources/CoreImage/QRCode.swift +393 -0
- package/Sources/CoreLocation/Coordinate.swift +30 -0
- package/Sources/CoreLocation/Location.swift +65 -0
- package/Sources/CoreML/Evaluation.swift +414 -0
- package/Sources/CoreML/FeatureValue.swift +266 -0
- package/Sources/CoreML/Model.swift +269 -0
- package/Sources/CoreML/MultiArray.swift +92 -0
- package/Sources/CoreML/Specification.swift +233 -0
- package/Sources/CoreText/CoreText.swift +64 -0
- package/Sources/CoreTransferable/CoreTransferable.swift +606 -0
- package/Sources/CryptoKit/ChaChaPoly.swift +258 -0
- package/Sources/CryptoKit/CryptoKit.swift +375 -0
- package/Sources/CryptoKit/Curve25519.swift +317 -0
- package/Sources/CryptoKit/P256.swift +321 -0
- package/Sources/FoundationBridge/AppStorage.swift +165 -0
- package/Sources/FoundationBridge/AssetResources.swift +90 -0
- package/Sources/FoundationBridge/AsyncBytes.swift +128 -0
- package/Sources/FoundationBridge/AsyncImage.swift +116 -0
- package/Sources/FoundationBridge/AttributedStrings.swift +16 -0
- package/Sources/FoundationBridge/Bundle.swift +119 -0
- package/Sources/FoundationBridge/CombineExports.swift +8 -0
- package/Sources/FoundationBridge/CoreFoundation.swift +77 -0
- package/Sources/FoundationBridge/Dispatch.swift +458 -0
- package/Sources/FoundationBridge/EnvironmentFoundation.swift +41 -0
- package/Sources/FoundationBridge/FileImporter.swift +128 -0
- package/Sources/FoundationBridge/FileSystem.swift +68 -0
- package/Sources/FoundationBridge/FoundationBridge.swift +29 -0
- package/Sources/FoundationBridge/HostResolution.swift +31 -0
- package/Sources/FoundationBridge/ItemProvider.swift +655 -0
- package/Sources/FoundationBridge/KeyValueObserving.swift +138 -0
- package/Sources/FoundationBridge/Links.swift +127 -0
- package/Sources/FoundationBridge/ListFormatter.swift +32 -0
- package/Sources/FoundationBridge/Locale.swift +86 -0
- package/Sources/FoundationBridge/Localization.swift +149 -0
- package/Sources/FoundationBridge/Locks.swift +50 -0
- package/Sources/FoundationBridge/Markdown.swift +527 -0
- package/Sources/FoundationBridge/MeasurementFormat.swift +95 -0
- package/Sources/FoundationBridge/NotificationCenter.swift +154 -0
- package/Sources/FoundationBridge/OpenURLHandlers.swift +60 -0
- package/Sources/FoundationBridge/Operation.swift +195 -0
- package/Sources/FoundationBridge/ProcessInfo.swift +32 -0
- package/Sources/FoundationBridge/RelativeDateTimeFormatter.swift +136 -0
- package/Sources/FoundationBridge/SceneStorage.swift +78 -0
- package/Sources/FoundationBridge/SecurityExports.swift +8 -0
- package/Sources/FoundationBridge/Selector.swift +226 -0
- package/Sources/FoundationBridge/StringComparators.swift +17 -0
- package/Sources/FoundationBridge/Table.swift +211 -0
- package/Sources/FoundationBridge/TextAttributes.swift +42 -0
- package/Sources/FoundationBridge/Timer.swift +53 -0
- package/Sources/FoundationBridge/UITextChecker.swift +30 -0
- package/Sources/FoundationBridge/URLSession.swift +718 -0
- package/Sources/FoundationBridge/UserDefaults.swift +183 -0
- package/Sources/FoundationBridge/WebAuthRedirects.swift +227 -0
- package/Sources/FoundationBridge/WebSocket.swift +187 -0
- package/Sources/FoundationModels/FoundationModels.swift +1098 -0
- package/Sources/ImageIO/GIF.swift +72 -0
- package/Sources/ImageIO/ImageIO.swift +248 -0
- package/Sources/ImageIO/ImageTypes.swift +28 -0
- package/Sources/LinkPresentation/LinkPresentation.swift +249 -0
- package/Sources/LocalAuthentication/LAContext.swift +86 -0
- package/Sources/MapKit/Geometry.swift +223 -0
- package/Sources/MapKit/Map.swift +638 -0
- package/Sources/MapKit/MapView.swift +229 -0
- package/Sources/MobileCoreServices/MobileCoreServices.swift +28 -0
- package/Sources/NaturalLanguage/LanguageIdentifier.swift +317 -0
- package/Sources/NaturalLanguage/NaturalLanguage.swift +135 -0
- package/Sources/OSLog/OSLog.swift +6 -0
- package/Sources/Photos/Photos.swift +572 -0
- package/Sources/PhotosUI/PhotosPicker.swift +248 -0
- package/Sources/PhotosUI/PhotosPickerItem.swift +261 -0
- package/Sources/QuickLook/QuickLook.swift +168 -0
- package/Sources/SafariServices/SafariServices.swift +106 -0
- package/Sources/Security/Security.swift +332 -0
- package/Sources/StoreKit/AppStore.swift +207 -0
- package/Sources/StoreKit/Products.swift +280 -0
- package/Sources/StoreKit/RequestReview.swift +28 -0
- package/Sources/StoreKit/StoreKit1.swift +486 -0
- package/Sources/StoreKit/StoreViews.swift +428 -0
- package/Sources/StoreKit/Transactions.swift +197 -0
- package/Sources/SwiftData/Macros.swift +58 -0
- package/Sources/SwiftData/ModelActor.swift +38 -0
- package/Sources/SwiftData/ModelContainer.swift +129 -0
- package/Sources/SwiftData/ModelContext.swift +451 -0
- package/Sources/SwiftData/PersistentModel.swift +238 -0
- package/Sources/SwiftData/Properties.swift +261 -0
- package/Sources/SwiftData/Query.swift +256 -0
- package/Sources/SwiftData/Schema.swift +192 -0
- package/Sources/SwiftData/Store.swift +146 -0
- package/Sources/SwiftData/StringPredicates.swift +125 -0
- package/Sources/SwiftDataMacros/EntryMacro.swift +82 -0
- package/Sources/SwiftDataMacros/GenerableMacro.swift +183 -0
- package/Sources/SwiftDataMacros/ModelActorMacro.swift +46 -0
- package/Sources/SwiftDataMacros/ModelMacro.swift +260 -0
- package/Sources/SwiftDataMacros/Plugin.swift +18 -0
- package/Sources/SwiftDataMacros/PredicateMacro.swift +1244 -0
- package/Sources/SwiftUI/API/Accessibility.swift +181 -0
- package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
- package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
- package/Sources/SwiftUI/API/Alert.swift +221 -0
- package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
- package/Sources/SwiftUI/API/Animation.swift +285 -0
- package/Sources/SwiftUI/API/App.swift +87 -0
- package/Sources/SwiftUI/API/BindingCollections.swift +35 -0
- package/Sources/SwiftUI/API/BindingForEach.swift +27 -0
- package/Sources/SwiftUI/API/Bitmaps.swift +254 -0
- package/Sources/SwiftUI/API/ButtonStyles.swift +96 -0
- package/Sources/SwiftUI/API/Canvas.swift +337 -0
- package/Sources/SwiftUI/API/Color.swift +237 -0
- package/Sources/SwiftUI/API/ColorEffects.swift +52 -0
- package/Sources/SwiftUI/API/ColorPickerAndLabeledContent.swift +138 -0
- package/Sources/SwiftUI/API/ColorSpaces.swift +161 -0
- package/Sources/SwiftUI/API/Commands.swift +106 -0
- package/Sources/SwiftUI/API/ContainerBackground.swift +28 -0
- package/Sources/SwiftUI/API/ContentShape.swift +33 -0
- package/Sources/SwiftUI/API/ContentSizeCategory.swift +35 -0
- package/Sources/SwiftUI/API/ContentUnavailable.swift +101 -0
- package/Sources/SwiftUI/API/Controls.swift +300 -0
- package/Sources/SwiftUI/API/CustomLayout.swift +442 -0
- package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
- package/Sources/SwiftUI/API/Decorations.swift +92 -0
- package/Sources/SwiftUI/API/EditMode.swift +212 -0
- package/Sources/SwiftUI/API/Effects.swift +388 -0
- package/Sources/SwiftUI/API/Entry.swift +8 -0
- package/Sources/SwiftUI/API/Environment.swift +439 -0
- package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
- package/Sources/SwiftUI/API/Focus.swift +137 -0
- package/Sources/SwiftUI/API/Font.swift +131 -0
- package/Sources/SwiftUI/API/Gauge.swift +290 -0
- package/Sources/SwiftUI/API/Geometry.swift +89 -0
- package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
- package/Sources/SwiftUI/API/GeometryReader.swift +135 -0
- package/Sources/SwiftUI/API/GestureState.swift +65 -0
- package/Sources/SwiftUI/API/Gestures.swift +342 -0
- package/Sources/SwiftUI/API/Glass.swift +127 -0
- package/Sources/SwiftUI/API/Grid.swift +188 -0
- package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
- package/Sources/SwiftUI/API/KeyPress.swift +54 -0
- package/Sources/SwiftUI/API/LabelStyle.swift +124 -0
- package/Sources/SwiftUI/API/Layout.swift +220 -0
- package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
- package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
- package/Sources/SwiftUI/API/Lists.swift +331 -0
- package/Sources/SwiftUI/API/Menu.swift +58 -0
- package/Sources/SwiftUI/API/Modifiers.swift +313 -0
- package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
- package/Sources/SwiftUI/API/Namespace.swift +44 -0
- package/Sources/SwiftUI/API/Navigation.swift +386 -0
- package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
- package/Sources/SwiftUI/API/ObservableObject.swift +293 -0
- package/Sources/SwiftUI/API/OnChange.swift +48 -0
- package/Sources/SwiftUI/API/Path.swift +543 -0
- package/Sources/SwiftUI/API/Phase8Controls.swift +411 -0
- package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
- package/Sources/SwiftUI/API/Picker.swift +185 -0
- package/Sources/SwiftUI/API/PointerAndKeyboard.swift +77 -0
- package/Sources/SwiftUI/API/Popover.swift +41 -0
- package/Sources/SwiftUI/API/Preferences.swift +262 -0
- package/Sources/SwiftUI/API/Presentation.swift +122 -0
- package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
- package/Sources/SwiftUI/API/Primitives.swift +517 -0
- package/Sources/SwiftUI/API/Publishers.swift +107 -0
- package/Sources/SwiftUI/API/Redaction.swift +75 -0
- package/Sources/SwiftUI/API/RowActions.swift +84 -0
- package/Sources/SwiftUI/API/Scenes.swift +131 -0
- package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
- package/Sources/SwiftUI/API/ScrollTargets.swift +104 -0
- package/Sources/SwiftUI/API/ScrollViewReader.swift +144 -0
- package/Sources/SwiftUI/API/SectionSupplements.swift +96 -0
- package/Sources/SwiftUI/API/Shape.swift +214 -0
- package/Sources/SwiftUI/API/ShapeStyle.swift +409 -0
- package/Sources/SwiftUI/API/ShapeTrim.swift +78 -0
- package/Sources/SwiftUI/API/Sharing.swift +193 -0
- package/Sources/SwiftUI/API/StackLayouts.swift +199 -0
- package/Sources/SwiftUI/API/State.swift +144 -0
- package/Sources/SwiftUI/API/StatusGaps.swift +121 -0
- package/Sources/SwiftUI/API/StrokeStyle.swift +30 -0
- package/Sources/SwiftUI/API/SymbolEffects.swift +203 -0
- package/Sources/SwiftUI/API/TabContent.swift +841 -0
- package/Sources/SwiftUI/API/Table.swift +382 -0
- package/Sources/SwiftUI/API/Tabs.swift +263 -0
- package/Sources/SwiftUI/API/Tasks.swift +35 -0
- package/Sources/SwiftUI/API/Text.swift +386 -0
- package/Sources/SwiftUI/API/TextDates.swift +61 -0
- package/Sources/SwiftUI/API/TextDecorations.swift +52 -0
- package/Sources/SwiftUI/API/TextFieldAxis.swift +103 -0
- package/Sources/SwiftUI/API/TextFieldCommit.swift +52 -0
- package/Sources/SwiftUI/API/Timeline.swift +212 -0
- package/Sources/SwiftUI/API/Toolbar.swift +251 -0
- package/Sources/SwiftUI/API/Transfer.swift +145 -0
- package/Sources/SwiftUI/API/UnevenRoundedRectangle.swift +66 -0
- package/Sources/SwiftUI/API/Video.swift +64 -0
- package/Sources/SwiftUI/API/View.swift +215 -0
- package/Sources/SwiftUI/API/ViewModifier.swift +43 -0
- package/Sources/SwiftUI/API/VisualEffect.swift +155 -0
- package/Sources/SwiftUI/API/Windows.swift +25 -0
- package/Sources/SwiftUI/Charts/Axis.swift +325 -0
- package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
- package/Sources/SwiftUI/Charts/Chart.swift +660 -0
- package/Sources/SwiftUI/Charts/ChartContent.swift +376 -0
- package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
- package/Sources/SwiftUI/Charts/Marks.swift +204 -0
- package/Sources/SwiftUI/Charts/Plottable.swift +99 -0
- package/Sources/SwiftUI/Charts/Scales.swift +326 -0
- package/Sources/SwiftUI/Localization/Localization.swift +498 -0
- package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
- package/Sources/SwiftUI/Runtime/Executor.swift +85 -0
- package/Sources/SwiftUI/Runtime/Exports.swift +101 -0
- package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
- package/Sources/SwiftUI/Runtime/JSON.swift +143 -0
- package/Sources/SwiftUI/Runtime/JSONParser.swift +443 -0
- package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
- package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
- package/Sources/SwiftUI/Runtime/Ops.swift +152 -0
- package/Sources/SwiftUI/Runtime/Reconciler.swift +219 -0
- package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
- package/Sources/SwiftUI/Runtime/Runtime.swift +2146 -0
- package/Sources/SwiftUI/Runtime/Sameness.swift +152 -0
- package/Sources/SwiftUI/Runtime/ViewPath.swift +89 -0
- package/Sources/SwiftUI/Runtime/ViewTraits.swift +175 -0
- package/Sources/SwiftUI/Runtime/WebAuthHeadless.swift +49 -0
- package/Sources/Symbols/Symbols.swift +25 -0
- package/Sources/Translation/Translation.swift +423 -0
- package/Sources/UIKit/Activity.swift +213 -0
- package/Sources/UIKit/Alerts.swift +69 -0
- package/Sources/UIKit/AppDelegate.swift +222 -0
- package/Sources/UIKit/Appearance.swift +84 -0
- package/Sources/UIKit/ColorConversions.swift +70 -0
- package/Sources/UIKit/Controls.swift +225 -0
- package/Sources/UIKit/Device.swift +200 -0
- package/Sources/UIKit/Feedback.swift +65 -0
- package/Sources/UIKit/Font.swift +307 -0
- package/Sources/UIKit/Graphics.swift +204 -0
- package/Sources/UIKit/HostingController.swift +185 -0
- package/Sources/UIKit/Identity.swift +24 -0
- package/Sources/UIKit/Introspectable.swift +510 -0
- package/Sources/UIKit/Pasteboard.swift +363 -0
- package/Sources/UIKit/PhotoAlbum.swift +81 -0
- package/Sources/UIKit/RemoteNotifications.swift +15 -0
- package/Sources/UIKit/Representable.swift +288 -0
- package/Sources/UIKit/SafeArea.swift +12 -0
- package/Sources/UIKit/SceneDelegates.swift +132 -0
- package/Sources/UIKit/Scenes.swift +40 -0
- package/Sources/UIKit/ScrollView.swift +157 -0
- package/Sources/UIKit/ShortcutItems.swift +67 -0
- package/Sources/UIKit/SymbolConfiguration.swift +124 -0
- package/Sources/UIKit/TargetAction.swift +123 -0
- package/Sources/UIKit/TextPaste.swift +161 -0
- package/Sources/UIKit/TextView.swift +538 -0
- package/Sources/UIKit/UIKit.swift +292 -0
- package/Sources/UIKit/UIView.swift +855 -0
- package/Sources/UIKit/ViewTranslation.swift +311 -0
- package/Sources/UniformTypeIdentifiers/UTType.swift +196 -0
- package/Sources/UserNotifications/Content.swift +370 -0
- package/Sources/UserNotifications/NotificationCenter.swift +309 -0
- package/Sources/WeatherKit/WeatherKit.swift +228 -0
- package/Sources/WebKit/WebKit.swift +245 -0
- package/Sources/os/os.swift +376 -0
- package/Sources/zlib/zlib.swift +6 -0
- package/index.d.ts +2 -0
- package/index.mjs +16 -0
- package/manifest.d.mts +2 -0
- package/manifest.mjs +39 -0
- package/package.json +30 -4
- package/sync-sources.mjs +33 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReduceProducer.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 22.09.2019.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
/// A helper class that acts like both subscriber and subscription.
|
|
9
|
+
///
|
|
10
|
+
/// Reduce-like operators send an instance of their `Inner` class that is subclass
|
|
11
|
+
/// of this class to the upstream publisher (as subscriber) and
|
|
12
|
+
/// to the downstream subscriber (as subscription).
|
|
13
|
+
///
|
|
14
|
+
/// Reduce-like operators include `Publishers.Reduce`, `Publishers.TryReduce`,
|
|
15
|
+
/// `Publishers.Count`, `Publishers.FirstWhere`, `Publishers.AllSatisfy` and more.
|
|
16
|
+
///
|
|
17
|
+
/// Subclasses must override the `receive(newValue:)` and `description`.
|
|
18
|
+
internal class ReduceProducer<Downstream: Subscriber,
|
|
19
|
+
Input,
|
|
20
|
+
Output,
|
|
21
|
+
UpstreamFailure: Error,
|
|
22
|
+
Reducer>
|
|
23
|
+
: CustomStringConvertible,
|
|
24
|
+
CustomReflectable
|
|
25
|
+
where Downstream.Input == Output
|
|
26
|
+
{
|
|
27
|
+
// NOTE: This class has been audited for thread safety
|
|
28
|
+
|
|
29
|
+
// MARK: - State
|
|
30
|
+
|
|
31
|
+
internal final var result: Output?
|
|
32
|
+
|
|
33
|
+
private let initial: Output?
|
|
34
|
+
|
|
35
|
+
internal final let reduce: Reducer
|
|
36
|
+
|
|
37
|
+
private var status = SubscriptionStatus.awaitingSubscription
|
|
38
|
+
|
|
39
|
+
private let downstream: Downstream
|
|
40
|
+
|
|
41
|
+
private let lock = UnfairLock.allocate()
|
|
42
|
+
|
|
43
|
+
private var downstreamRequested = false
|
|
44
|
+
|
|
45
|
+
private var cancelled = false
|
|
46
|
+
|
|
47
|
+
private var completed = false
|
|
48
|
+
|
|
49
|
+
private var upstreamCompleted = false
|
|
50
|
+
|
|
51
|
+
internal init(downstream: Downstream, initial: Output?, reduce: Reducer) {
|
|
52
|
+
self.downstream = downstream
|
|
53
|
+
self.initial = initial
|
|
54
|
+
self.result = initial
|
|
55
|
+
self.reduce = reduce
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
deinit {
|
|
59
|
+
lock.deallocate()
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// MARK: - Abstract methods
|
|
63
|
+
|
|
64
|
+
internal func receive(
|
|
65
|
+
newValue: Input
|
|
66
|
+
) -> PartialCompletion<Void, Downstream.Failure> {
|
|
67
|
+
abstractMethod()
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
internal var description: String {
|
|
71
|
+
abstractMethod()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// MARK: - CustomReflectable
|
|
75
|
+
|
|
76
|
+
internal var customMirror: Mirror {
|
|
77
|
+
lock.lock()
|
|
78
|
+
defer { lock.unlock() }
|
|
79
|
+
let children: [Mirror.Child] = [
|
|
80
|
+
("downstream", downstream),
|
|
81
|
+
("result", result as Any),
|
|
82
|
+
("initial", initial as Any),
|
|
83
|
+
("status", status)
|
|
84
|
+
]
|
|
85
|
+
return Mirror(self, children: children)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// MARK: - Private
|
|
89
|
+
|
|
90
|
+
/// - Precondition: `lock` is held.
|
|
91
|
+
private func receiveFinished() {
|
|
92
|
+
guard !cancelled, !completed, !upstreamCompleted else {
|
|
93
|
+
lock.unlock()
|
|
94
|
+
// This should never happen, because `receive(completion:)`
|
|
95
|
+
// (from which this function is called) early exists if
|
|
96
|
+
// `status` is `.terminal`.
|
|
97
|
+
assertionFailure("The subscription should have been terminated by now")
|
|
98
|
+
return
|
|
99
|
+
}
|
|
100
|
+
upstreamCompleted = true
|
|
101
|
+
if downstreamRequested {
|
|
102
|
+
self.completed = true
|
|
103
|
+
}
|
|
104
|
+
let completed = self.completed
|
|
105
|
+
let result = self.result
|
|
106
|
+
lock.unlock()
|
|
107
|
+
|
|
108
|
+
if completed {
|
|
109
|
+
sendResultAndFinish(result)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/// - Precondition: `lock` is held.
|
|
114
|
+
private func receiveFailure(_ failure: UpstreamFailure) {
|
|
115
|
+
guard !cancelled, !completed, !upstreamCompleted else {
|
|
116
|
+
lock.unlock()
|
|
117
|
+
// This should never happen, because `receive(completion:)`
|
|
118
|
+
// (from which this function is called) early exists if
|
|
119
|
+
// `status` is `.terminal`.
|
|
120
|
+
assertionFailure("The subscription should have been terminated by now")
|
|
121
|
+
return
|
|
122
|
+
}
|
|
123
|
+
upstreamCompleted = true
|
|
124
|
+
completed = true
|
|
125
|
+
lock.unlock()
|
|
126
|
+
downstream.receive(completion: .failure(failure as! Downstream.Failure))
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
private func sendResultAndFinish(_ result: Output?) {
|
|
130
|
+
assert(completed && upstreamCompleted)
|
|
131
|
+
if let result = result {
|
|
132
|
+
_ = downstream.receive(result)
|
|
133
|
+
}
|
|
134
|
+
downstream.receive(completion: .finished)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// MARK: -
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
extension ReduceProducer: Subscriber {
|
|
141
|
+
internal func receive(subscription: Subscription) {
|
|
142
|
+
lock.lock()
|
|
143
|
+
guard case .awaitingSubscription = status else {
|
|
144
|
+
lock.unlock()
|
|
145
|
+
subscription.cancel()
|
|
146
|
+
return
|
|
147
|
+
}
|
|
148
|
+
status = .subscribed(subscription)
|
|
149
|
+
lock.unlock()
|
|
150
|
+
downstream.receive(subscription: self)
|
|
151
|
+
subscription.request(.unlimited)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
internal func receive(_ input: Input) -> Subscribers.Demand {
|
|
155
|
+
lock.lock()
|
|
156
|
+
guard case let .subscribed(subscription) = status else {
|
|
157
|
+
lock.unlock()
|
|
158
|
+
return .none
|
|
159
|
+
}
|
|
160
|
+
lock.unlock()
|
|
161
|
+
|
|
162
|
+
// Combine doesn't hold the lock when calling `receive(newValue:)`.
|
|
163
|
+
//
|
|
164
|
+
// This can lead to data races if the contract is violated
|
|
165
|
+
// (like when we receive input from multiple threads simultaneously).
|
|
166
|
+
switch self.receive(newValue: input) {
|
|
167
|
+
case .continue:
|
|
168
|
+
break
|
|
169
|
+
case .finished:
|
|
170
|
+
lock.lock()
|
|
171
|
+
upstreamCompleted = true
|
|
172
|
+
let downstreamRequested = self.downstreamRequested
|
|
173
|
+
if downstreamRequested {
|
|
174
|
+
completed = true
|
|
175
|
+
}
|
|
176
|
+
status = .terminal
|
|
177
|
+
let result = self.result
|
|
178
|
+
lock.unlock()
|
|
179
|
+
|
|
180
|
+
subscription.cancel()
|
|
181
|
+
|
|
182
|
+
guard downstreamRequested else { break }
|
|
183
|
+
|
|
184
|
+
sendResultAndFinish(result)
|
|
185
|
+
case let .failure(error):
|
|
186
|
+
lock.lock()
|
|
187
|
+
upstreamCompleted = true
|
|
188
|
+
completed = true
|
|
189
|
+
status = .terminal
|
|
190
|
+
lock.unlock()
|
|
191
|
+
|
|
192
|
+
subscription.cancel()
|
|
193
|
+
downstream.receive(completion: .failure(error))
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return .none
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
internal func receive(completion: Subscribers.Completion<UpstreamFailure>) {
|
|
200
|
+
lock.lock()
|
|
201
|
+
guard case .subscribed = status else {
|
|
202
|
+
lock.unlock()
|
|
203
|
+
return
|
|
204
|
+
}
|
|
205
|
+
status = .terminal
|
|
206
|
+
switch completion {
|
|
207
|
+
case .finished:
|
|
208
|
+
receiveFinished()
|
|
209
|
+
case let .failure(error):
|
|
210
|
+
receiveFailure(error)
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
extension ReduceProducer: Subscription {
|
|
216
|
+
internal func request(_ demand: Subscribers.Demand) {
|
|
217
|
+
demand.assertNonZero()
|
|
218
|
+
lock.lock()
|
|
219
|
+
guard !downstreamRequested, !cancelled, !completed else {
|
|
220
|
+
lock.unlock()
|
|
221
|
+
return
|
|
222
|
+
}
|
|
223
|
+
downstreamRequested = true
|
|
224
|
+
guard upstreamCompleted else {
|
|
225
|
+
lock.unlock()
|
|
226
|
+
return
|
|
227
|
+
}
|
|
228
|
+
completed = true
|
|
229
|
+
let result = self.result
|
|
230
|
+
lock.unlock()
|
|
231
|
+
sendResultAndFinish(result)
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
internal func cancel() {
|
|
235
|
+
lock.lock()
|
|
236
|
+
guard case let .subscribed(subscription) = status else {
|
|
237
|
+
lock.unlock()
|
|
238
|
+
return
|
|
239
|
+
}
|
|
240
|
+
cancelled = true
|
|
241
|
+
status = .terminal
|
|
242
|
+
lock.unlock()
|
|
243
|
+
subscription.cancel()
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
extension ReduceProducer: CustomPlaygroundDisplayConvertible {
|
|
248
|
+
internal var playgroundDescription: Any { return description }
|
|
249
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SubjectSubscriber.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 16/09/2019.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
internal final class SubjectSubscriber<Downstream: Subject>
|
|
9
|
+
: Subscriber,
|
|
10
|
+
CustomStringConvertible,
|
|
11
|
+
CustomReflectable,
|
|
12
|
+
CustomPlaygroundDisplayConvertible,
|
|
13
|
+
Subscription
|
|
14
|
+
{
|
|
15
|
+
private let lock = UnfairLock.allocate()
|
|
16
|
+
private weak var downstreamSubject: Downstream?
|
|
17
|
+
private var upstreamSubscription: Subscription?
|
|
18
|
+
|
|
19
|
+
private var isCancelled: Bool { return downstreamSubject == nil }
|
|
20
|
+
|
|
21
|
+
internal init(_ parent: Downstream) {
|
|
22
|
+
self.downstreamSubject = parent
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
deinit {
|
|
26
|
+
lock.deallocate()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
internal func receive(subscription: Subscription) {
|
|
30
|
+
lock.lock()
|
|
31
|
+
guard upstreamSubscription == nil, let subject = downstreamSubject else {
|
|
32
|
+
lock.unlock()
|
|
33
|
+
return
|
|
34
|
+
}
|
|
35
|
+
upstreamSubscription = subscription
|
|
36
|
+
lock.unlock()
|
|
37
|
+
subject.send(subscription: self)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
internal func receive(_ input: Downstream.Output) -> Subscribers.Demand {
|
|
41
|
+
lock.lock()
|
|
42
|
+
guard let subject = downstreamSubject, upstreamSubscription != nil else {
|
|
43
|
+
lock.unlock()
|
|
44
|
+
return .none
|
|
45
|
+
}
|
|
46
|
+
lock.unlock()
|
|
47
|
+
subject.send(input)
|
|
48
|
+
return .none
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
internal func receive(completion: Subscribers.Completion<Downstream.Failure>) {
|
|
52
|
+
lock.lock()
|
|
53
|
+
guard let subject = downstreamSubject, upstreamSubscription != nil else {
|
|
54
|
+
lock.unlock()
|
|
55
|
+
return
|
|
56
|
+
}
|
|
57
|
+
lock.unlock()
|
|
58
|
+
subject.send(completion: completion)
|
|
59
|
+
downstreamSubject = nil
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
internal var description: String { return "Subject" }
|
|
63
|
+
|
|
64
|
+
internal var playgroundDescription: Any { return description }
|
|
65
|
+
|
|
66
|
+
internal var customMirror: Mirror {
|
|
67
|
+
let children: [Mirror.Child] = [
|
|
68
|
+
("downstreamSubject", downstreamSubject as Any),
|
|
69
|
+
("upstreamSubscription", upstreamSubscription as Any),
|
|
70
|
+
("subject", downstreamSubject as Any)
|
|
71
|
+
]
|
|
72
|
+
return Mirror(self, children: children)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
internal func request(_ demand: Subscribers.Demand) {
|
|
76
|
+
lock.lock()
|
|
77
|
+
guard let subscription = upstreamSubscription else {
|
|
78
|
+
lock.unlock()
|
|
79
|
+
return
|
|
80
|
+
}
|
|
81
|
+
lock.unlock()
|
|
82
|
+
subscription.request(demand)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
internal func cancel() {
|
|
86
|
+
lock.lock()
|
|
87
|
+
guard !isCancelled, let subscription = upstreamSubscription else {
|
|
88
|
+
lock.unlock()
|
|
89
|
+
return
|
|
90
|
+
}
|
|
91
|
+
upstreamSubscription = nil
|
|
92
|
+
downstreamSubject = nil
|
|
93
|
+
lock.unlock()
|
|
94
|
+
subscription.cancel()
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SubscriberTap.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 27.09.2020.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
internal protocol SubscriberTapMarker {
|
|
9
|
+
var inner: Any { mutating get }
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
internal struct SubscriberTap<Subscriber: Combine.Subscriber>
|
|
13
|
+
: Combine.Subscriber,
|
|
14
|
+
CustomStringConvertible,
|
|
15
|
+
SubscriberTapMarker
|
|
16
|
+
{
|
|
17
|
+
internal typealias Input = Subscriber.Input
|
|
18
|
+
|
|
19
|
+
internal typealias Failure = Subscriber.Failure
|
|
20
|
+
|
|
21
|
+
private let subscriber: Subscriber
|
|
22
|
+
|
|
23
|
+
internal lazy var inner: Any = AnySubscriber(self.subscriber)
|
|
24
|
+
|
|
25
|
+
internal init(subscriber: Subscriber) {
|
|
26
|
+
self.subscriber = subscriber
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
internal var combineIdentifier: CombineIdentifier {
|
|
30
|
+
return subscriber.combineIdentifier
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
internal func receive(subscription: Subscription) {
|
|
34
|
+
let hook = DebugHook.getGlobalHook()
|
|
35
|
+
if let subscriptionTap = subscription as? SubscriptionTap {
|
|
36
|
+
hook?.willReceive(subscriber: subscriber,
|
|
37
|
+
subscription: subscriptionTap.subscription)
|
|
38
|
+
subscriber.receive(subscription: subscriptionTap)
|
|
39
|
+
hook?.didReceive(subscriber: subscriber,
|
|
40
|
+
subscription: subscriptionTap.subscription)
|
|
41
|
+
} else {
|
|
42
|
+
hook?.willReceive(subscriber: subscriber, subscription: subscription)
|
|
43
|
+
subscriber
|
|
44
|
+
.receive(subscription: SubscriptionTap(subscription: subscription))
|
|
45
|
+
hook?.didReceive(subscriber: subscriber, subscription: subscription)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
internal func receive(_ input: Input) -> Subscribers.Demand {
|
|
50
|
+
let hook = DebugHook.getGlobalHook()
|
|
51
|
+
hook?.willReceive(subscriber: subscriber, input: input)
|
|
52
|
+
let newDemand = subscriber.receive(input)
|
|
53
|
+
hook?.didReceive(subscriber: subscriber,
|
|
54
|
+
input: input,
|
|
55
|
+
resultingDemand: newDemand)
|
|
56
|
+
return newDemand
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
internal func receive(completion: Subscribers.Completion<Subscriber.Failure>) {
|
|
60
|
+
let hook = DebugHook.getGlobalHook()
|
|
61
|
+
hook?.willReceive(subscriber: subscriber, completion: completion)
|
|
62
|
+
subscriber.receive(completion: completion)
|
|
63
|
+
hook?.didReceive(subscriber: subscriber, completion: completion)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
internal var description: String {
|
|
67
|
+
return String(describing: subscriber)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SubscriptionStatus.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 21.09.2019.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
internal enum SubscriptionStatus {
|
|
9
|
+
case awaitingSubscription
|
|
10
|
+
case subscribed(Subscription)
|
|
11
|
+
case pendingTerminal(Subscription)
|
|
12
|
+
case terminal
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
extension SubscriptionStatus {
|
|
16
|
+
internal var isAwaitingSubscription: Bool {
|
|
17
|
+
switch self {
|
|
18
|
+
case .awaitingSubscription:
|
|
19
|
+
return true
|
|
20
|
+
default:
|
|
21
|
+
return false
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
internal var subscription: Subscription? {
|
|
26
|
+
switch self {
|
|
27
|
+
case .awaitingSubscription, .terminal:
|
|
28
|
+
return nil
|
|
29
|
+
case let .subscribed(subscription), let .pendingTerminal(subscription):
|
|
30
|
+
return subscription
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SubscriptionTap.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 27.09.2020.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
internal struct SubscriptionTap: Subscription, CustomStringConvertible {
|
|
9
|
+
|
|
10
|
+
internal let subscription: Subscription
|
|
11
|
+
|
|
12
|
+
internal var combineIdentifier: CombineIdentifier {
|
|
13
|
+
return subscription.combineIdentifier
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
internal func request(_ demand: Subscribers.Demand) {
|
|
17
|
+
let hook = DebugHook.getGlobalHook()
|
|
18
|
+
hook?.willRequest(subscription: subscription, demand: demand)
|
|
19
|
+
subscription.request(demand)
|
|
20
|
+
hook?.didRequest(subscription: subscription, demand: demand)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
internal func cancel() {
|
|
24
|
+
let hook = DebugHook.getGlobalHook()
|
|
25
|
+
hook?.willCancel(subscription: subscription)
|
|
26
|
+
subscription.cancel()
|
|
27
|
+
hook?.didCancel(subscription: subscription)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
internal var description: String {
|
|
31
|
+
return String(describing: subscription)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Utils.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 28.08.2021.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
internal protocol HasDefaultValue {
|
|
9
|
+
init()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
extension HasDefaultValue {
|
|
13
|
+
|
|
14
|
+
@inline(__always)
|
|
15
|
+
internal mutating func take() -> Self {
|
|
16
|
+
let taken = self
|
|
17
|
+
self = .init()
|
|
18
|
+
return taken
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
extension Array: HasDefaultValue {}
|
|
23
|
+
|
|
24
|
+
extension Dictionary: HasDefaultValue {}
|
|
25
|
+
|
|
26
|
+
extension Optional: HasDefaultValue {
|
|
27
|
+
init() {
|
|
28
|
+
self = nil
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Violations.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 16/09/2019.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
internal func APIViolationValueBeforeSubscription(file: StaticString = #file,
|
|
9
|
+
line: UInt = #line) -> Never {
|
|
10
|
+
fatalError("""
|
|
11
|
+
API Violation: received an unexpected value before receiving a Subscription
|
|
12
|
+
""",
|
|
13
|
+
file: file,
|
|
14
|
+
line: line)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
internal func APIViolationUnexpectedCompletion(file: StaticString = #file,
|
|
18
|
+
line: UInt = #line) -> Never {
|
|
19
|
+
fatalError("API Violation: received an unexpected completion", file: file, line: line)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
internal func abstractMethod(file: StaticString = #file, line: UInt = #line) -> Never {
|
|
23
|
+
fatalError("Abstract method call", file: file, line: line)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
extension Subscribers.Demand {
|
|
27
|
+
internal func assertNonZero(file: StaticString = #file,
|
|
28
|
+
line: UInt = #line) {
|
|
29
|
+
if self == .none {
|
|
30
|
+
fatalError("API Violation: demand must not be zero", file: file, line: line)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|