@swiftbrowser/swift 0.1.0 → 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 +200 -9
- package/README.md +7 -9
- 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 +0 -4
- 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/{_FoundationCommon → FoundationBridge}/Bundle.swift +41 -4
- 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 +24 -72
- 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/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 +6 -1
- package/Sources/FoundationBridge/URLSession.swift +718 -0
- package/Sources/{_FoundationCommon → FoundationBridge}/UserDefaults.swift +17 -4
- 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 +55 -6
- package/Sources/SwiftUI/API/AccessibilityExtras.swift +33 -0
- package/Sources/SwiftUI/API/AccessibilityFocus.swift +63 -0
- package/Sources/SwiftUI/API/Alert.swift +1 -1
- package/Sources/SwiftUI/API/AlignmentGuides.swift +65 -0
- package/Sources/SwiftUI/API/Animation.swift +37 -5
- package/Sources/SwiftUI/API/App.swift +31 -1
- 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 +104 -28
- 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 +59 -27
- package/Sources/SwiftUI/API/CustomLayout.swift +49 -10
- package/Sources/SwiftUI/API/CustomToolbarContent.swift +46 -0
- package/Sources/SwiftUI/API/Decorations.swift +1 -1
- package/Sources/SwiftUI/API/EditMode.swift +25 -82
- package/Sources/SwiftUI/API/Effects.swift +105 -7
- package/Sources/SwiftUI/API/Entry.swift +8 -0
- package/Sources/SwiftUI/API/Environment.swift +93 -9
- package/Sources/SwiftUI/API/EnvironmentSendable.swift +6 -0
- package/Sources/SwiftUI/API/Focus.swift +11 -3
- package/Sources/SwiftUI/API/Gauge.swift +3 -2
- package/Sources/SwiftUI/API/GeometryEffects.swift +232 -0
- package/Sources/SwiftUI/API/GeometryReader.swift +13 -2
- package/Sources/SwiftUI/API/GestureState.swift +65 -0
- package/Sources/SwiftUI/API/Gestures.swift +1 -1
- package/Sources/SwiftUI/API/Glass.swift +127 -0
- package/Sources/SwiftUI/API/Grid.swift +1 -1
- package/Sources/SwiftUI/API/GroupBoxAndControlGroup.swift +130 -0
- package/Sources/SwiftUI/API/KeyPress.swift +54 -0
- package/Sources/SwiftUI/API/LabelStyle.swift +13 -6
- package/Sources/SwiftUI/API/Layout.swift +67 -12
- package/Sources/SwiftUI/API/LazyStacks.swift +49 -0
- package/Sources/SwiftUI/API/LegacyAlert.swift +97 -0
- package/Sources/SwiftUI/API/Lists.swift +61 -6
- package/Sources/SwiftUI/API/Menu.swift +8 -1
- package/Sources/SwiftUI/API/Modifiers.swift +80 -10
- package/Sources/SwiftUI/API/MoreModifiers.swift +100 -0
- package/Sources/SwiftUI/API/Namespace.swift +44 -0
- package/Sources/SwiftUI/API/Navigation.swift +24 -9
- package/Sources/SwiftUI/API/NavigationDestinationBindings.swift +55 -0
- package/Sources/SwiftUI/API/ObservableObject.swift +16 -2
- package/Sources/SwiftUI/API/Path.swift +543 -0
- package/Sources/SwiftUI/API/Phase8Controls.swift +48 -31
- package/Sources/SwiftUI/API/PhaseAnimator.swift +130 -0
- package/Sources/SwiftUI/API/Picker.swift +11 -2
- 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 +17 -4
- package/Sources/SwiftUI/API/PresentationExtras.swift +60 -0
- package/Sources/SwiftUI/API/Primitives.swift +164 -37
- package/Sources/SwiftUI/API/Publishers.swift +4 -4
- package/Sources/SwiftUI/API/Redaction.swift +75 -0
- package/Sources/SwiftUI/API/RowActions.swift +3 -2
- package/Sources/SwiftUI/API/Scenes.swift +131 -0
- package/Sources/SwiftUI/API/ScrollModifiers.swift +132 -0
- package/Sources/SwiftUI/API/ScrollTargets.swift +3 -3
- 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 +105 -7
- 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 +18 -1
- package/Sources/SwiftUI/API/StatusGaps.swift +121 -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 +148 -4
- package/Sources/SwiftUI/API/Tasks.swift +2 -2
- 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/Toolbar.swift +52 -16
- 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 +10 -2
- package/Sources/SwiftUI/API/ViewModifier.swift +4 -1
- package/Sources/SwiftUI/API/VisualEffect.swift +74 -1
- package/Sources/SwiftUI/API/Windows.swift +25 -0
- package/Sources/SwiftUI/Charts/Axis.swift +7 -1
- package/Sources/SwiftUI/Charts/AxisFormatsAndRanges.swift +68 -0
- package/Sources/SwiftUI/Charts/Chart.swift +17 -3
- package/Sources/SwiftUI/Charts/ChartProxy.swift +57 -0
- package/Sources/SwiftUI/Localization/Localization.swift +498 -0
- package/Sources/SwiftUI/Localization/PluralRules.swift +127 -0
- package/Sources/SwiftUI/Runtime/Executor.swift +2 -0
- package/Sources/SwiftUI/Runtime/Exports.swift +37 -1
- package/Sources/SwiftUI/Runtime/ImageSource.swift +310 -0
- package/Sources/SwiftUI/Runtime/JSON.swift +76 -4
- package/Sources/SwiftUI/Runtime/LazyRows.swift +99 -0
- package/Sources/SwiftUI/Runtime/Measurements.swift +140 -0
- package/Sources/SwiftUI/Runtime/Ops.swift +58 -12
- package/Sources/SwiftUI/Runtime/Reconciler.swift +10 -1
- package/Sources/SwiftUI/Runtime/Replay.swift +382 -0
- package/Sources/SwiftUI/Runtime/Runtime.swift +977 -198
- 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 +1 -1
- package/index.mjs +2 -2
- package/manifest.d.mts +2 -0
- package/manifest.mjs +39 -0
- package/package.json +5 -3
- package/sync-sources.mjs +21 -7
- package/Sources/FoundationLite/Common.swift +0 -3
- package/Sources/FoundationLite/FoundationLite.swift +0 -171
- package/Sources/FoundationLite/Interaction.swift +0 -146
- package/Sources/FoundationLite/Timer.swift +0 -48
- package/Sources/_FoundationCommon/_FoundationCommon.swift +0 -10
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Publishers.Drop.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sven Weidauer on 03.10.2019.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
extension Publisher {
|
|
9
|
+
/// Omits the specified number of elements before republishing subsequent elements.
|
|
10
|
+
///
|
|
11
|
+
/// Use `dropFirst(_:)` when you want to drop the first `n` elements from the upstream
|
|
12
|
+
/// publisher, and republish the remaining elements.
|
|
13
|
+
///
|
|
14
|
+
/// The example below drops the first five elements from the stream:
|
|
15
|
+
///
|
|
16
|
+
/// let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
17
|
+
/// cancellable = numbers.publisher
|
|
18
|
+
/// .dropFirst(5)
|
|
19
|
+
/// .sink { print("\($0)", terminator: " ") }
|
|
20
|
+
///
|
|
21
|
+
/// // Prints: "6 7 8 9 10 "
|
|
22
|
+
///
|
|
23
|
+
/// - Parameter count: The number of elements to omit. The default is `1`.
|
|
24
|
+
/// - Returns: A publisher that doesn’t republish the first `count` elements.
|
|
25
|
+
public func dropFirst(_ count: Int = 1) -> Publishers.Drop<Self> {
|
|
26
|
+
return .init(upstream: self, count: count)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
extension Publishers {
|
|
31
|
+
/// A publisher that omits a specified number of elements before republishing
|
|
32
|
+
/// later elements.
|
|
33
|
+
public struct Drop<Upstream: Publisher>: Publisher {
|
|
34
|
+
|
|
35
|
+
public typealias Output = Upstream.Output
|
|
36
|
+
|
|
37
|
+
public typealias Failure = Upstream.Failure
|
|
38
|
+
|
|
39
|
+
/// The publisher from which this publisher receives elements.
|
|
40
|
+
public let upstream: Upstream
|
|
41
|
+
|
|
42
|
+
/// The number of elements to drop.
|
|
43
|
+
public let count: Int
|
|
44
|
+
|
|
45
|
+
public init(upstream: Upstream, count: Int) {
|
|
46
|
+
self.upstream = upstream
|
|
47
|
+
self.count = count
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public func receive<Downstream: Subscriber>(subscriber: Downstream)
|
|
51
|
+
where Upstream.Failure == Downstream.Failure,
|
|
52
|
+
Upstream.Output == Downstream.Input
|
|
53
|
+
{
|
|
54
|
+
let inner = Inner(downstream: subscriber, count: count)
|
|
55
|
+
subscriber.receive(subscription: inner)
|
|
56
|
+
upstream.subscribe(inner)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
extension Publishers.Drop: Equatable where Upstream: Equatable {}
|
|
62
|
+
|
|
63
|
+
extension Publishers.Drop {
|
|
64
|
+
private final class Inner<Downstream: Subscriber>
|
|
65
|
+
: Subscription,
|
|
66
|
+
Subscriber,
|
|
67
|
+
CustomStringConvertible,
|
|
68
|
+
CustomReflectable,
|
|
69
|
+
CustomPlaygroundDisplayConvertible
|
|
70
|
+
where Upstream.Output == Downstream.Input,
|
|
71
|
+
Upstream.Failure == Downstream.Failure
|
|
72
|
+
{
|
|
73
|
+
typealias Input = Upstream.Output
|
|
74
|
+
|
|
75
|
+
typealias Failure = Upstream.Failure
|
|
76
|
+
|
|
77
|
+
private let downstream: Downstream
|
|
78
|
+
|
|
79
|
+
private let lock = UnfairLock.allocate()
|
|
80
|
+
|
|
81
|
+
private var subscription: Subscription?
|
|
82
|
+
|
|
83
|
+
private var pendingDemand = Subscribers.Demand.none
|
|
84
|
+
|
|
85
|
+
private var count: Int
|
|
86
|
+
|
|
87
|
+
fileprivate init(downstream: Downstream, count: Int) {
|
|
88
|
+
self.downstream = downstream
|
|
89
|
+
self.count = count
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
deinit {
|
|
93
|
+
lock.deallocate()
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
func receive(subscription: Subscription) {
|
|
97
|
+
lock.lock()
|
|
98
|
+
guard self.subscription == nil else {
|
|
99
|
+
lock.unlock()
|
|
100
|
+
subscription.cancel()
|
|
101
|
+
return
|
|
102
|
+
}
|
|
103
|
+
self.subscription = subscription
|
|
104
|
+
precondition(count >= 0, "count must not be negative")
|
|
105
|
+
let demandToRequestFromUpstream = pendingDemand + count
|
|
106
|
+
lock.unlock()
|
|
107
|
+
if demandToRequestFromUpstream != .none {
|
|
108
|
+
subscription.request(demandToRequestFromUpstream)
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
func receive(_ input: Upstream.Output) -> Subscribers.Demand {
|
|
113
|
+
// Combine doesn't lock here!
|
|
114
|
+
if count > 0 {
|
|
115
|
+
count -= 1
|
|
116
|
+
return .none
|
|
117
|
+
}
|
|
118
|
+
return downstream.receive(input)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
func receive(completion: Subscribers.Completion<Upstream.Failure>) {
|
|
122
|
+
lock.lock()
|
|
123
|
+
subscription = nil
|
|
124
|
+
lock.unlock()
|
|
125
|
+
downstream.receive(completion: completion)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
func request(_ demand: Subscribers.Demand) {
|
|
129
|
+
demand.assertNonZero()
|
|
130
|
+
lock.lock()
|
|
131
|
+
guard let subscription = self.subscription else {
|
|
132
|
+
self.pendingDemand += demand
|
|
133
|
+
lock.unlock()
|
|
134
|
+
return
|
|
135
|
+
}
|
|
136
|
+
lock.unlock()
|
|
137
|
+
subscription.request(demand)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
func cancel() {
|
|
141
|
+
lock.lock()
|
|
142
|
+
let subscription = self.subscription.take()
|
|
143
|
+
lock.unlock()
|
|
144
|
+
subscription?.cancel()
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
var description: String { return "Drop" }
|
|
148
|
+
|
|
149
|
+
var customMirror: Mirror {
|
|
150
|
+
return Mirror(self, children: EmptyCollection())
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
var playgroundDescription: Any { return description }
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Publishers.DropUntilOutput.swift
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
// Created by Sergej Jaskiewicz on 24.12.2019.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
extension Publisher {
|
|
9
|
+
|
|
10
|
+
/// Ignores elements from the upstream publisher until it receives an element from
|
|
11
|
+
/// a second publisher.
|
|
12
|
+
///
|
|
13
|
+
/// Use `drop(untilOutputFrom:)` to ignore elements from the upstream publisher until
|
|
14
|
+
/// another, second, publisher delivers its first element.
|
|
15
|
+
/// This publisher requests a single value from the second publisher, and it ignores
|
|
16
|
+
/// (drops) all elements from the upstream publisher until the second publisher
|
|
17
|
+
/// produces a value. After the second publisher produces an element,
|
|
18
|
+
/// `drop(untilOutputFrom:)` cancels its subscription to the second publisher, and
|
|
19
|
+
/// allows events from the upstream publisher to pass through.
|
|
20
|
+
///
|
|
21
|
+
/// After this publisher receives a subscription from the upstream publisher, it
|
|
22
|
+
/// passes through backpressure requests from downstream to the upstream publisher.
|
|
23
|
+
/// If the upstream publisher acts on those requests before the other publisher
|
|
24
|
+
/// produces an item, this publisher drops the elements it receives from the upstream
|
|
25
|
+
/// publisher.
|
|
26
|
+
///
|
|
27
|
+
/// In the example below, the `pub1` publisher defers publishing its elements until
|
|
28
|
+
/// the `pub2` publisher delivers its first element:
|
|
29
|
+
///
|
|
30
|
+
/// let upstream = PassthroughSubject<Int, Never>()
|
|
31
|
+
/// let second = PassthroughSubject<String, Never>()
|
|
32
|
+
/// cancellable = upstream
|
|
33
|
+
/// .drop(untilOutputFrom: second)
|
|
34
|
+
/// .sink { print("\($0)", terminator: " ") }
|
|
35
|
+
///
|
|
36
|
+
/// upstream.send(1)
|
|
37
|
+
/// upstream.send(2)
|
|
38
|
+
/// second.send("A")
|
|
39
|
+
/// upstream.send(3)
|
|
40
|
+
/// upstream.send(4)
|
|
41
|
+
/// // Prints "3 4"
|
|
42
|
+
///
|
|
43
|
+
/// - Parameter publisher: A publisher to monitor for its first emitted element.
|
|
44
|
+
/// - Returns: A publisher that drops elements from the upstream publisher until
|
|
45
|
+
/// the `other` publisher produces a value.
|
|
46
|
+
public func drop<Other: Publisher>(
|
|
47
|
+
untilOutputFrom publisher: Other
|
|
48
|
+
) -> Publishers.DropUntilOutput<Self, Other> where Failure == Other.Failure {
|
|
49
|
+
return .init(upstream: self, other: publisher)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
extension Publishers {
|
|
54
|
+
|
|
55
|
+
/// A publisher that ignores elements from the upstream publisher until it receives
|
|
56
|
+
/// an element from second publisher.
|
|
57
|
+
public struct DropUntilOutput<Upstream: Publisher, Other: Publisher>: Publisher
|
|
58
|
+
where Upstream.Failure == Other.Failure
|
|
59
|
+
{
|
|
60
|
+
public typealias Output = Upstream.Output
|
|
61
|
+
|
|
62
|
+
public typealias Failure = Upstream.Failure
|
|
63
|
+
|
|
64
|
+
/// The publisher that this publisher receives elements from.
|
|
65
|
+
public let upstream: Upstream
|
|
66
|
+
|
|
67
|
+
/// A publisher to monitor for its first emitted element.
|
|
68
|
+
public let other: Other
|
|
69
|
+
|
|
70
|
+
/// Creates a publisher that ignores elements from the upstream publisher until
|
|
71
|
+
/// it receives an element from another publisher.
|
|
72
|
+
///
|
|
73
|
+
/// - Parameters:
|
|
74
|
+
/// - upstream: A publisher to drop elements from while waiting for another
|
|
75
|
+
/// publisher to emit elements.
|
|
76
|
+
/// - other: A publisher to monitor for its first emitted element.
|
|
77
|
+
public init(upstream: Upstream, other: Other) {
|
|
78
|
+
self.upstream = upstream
|
|
79
|
+
self.other = other
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public func receive<Downstream: Subscriber>(subscriber: Downstream)
|
|
83
|
+
where Upstream.Output == Downstream.Input,
|
|
84
|
+
Other.Failure == Downstream.Failure
|
|
85
|
+
{
|
|
86
|
+
let inner = Inner(downstream: subscriber)
|
|
87
|
+
subscriber.receive(subscription: inner)
|
|
88
|
+
other.subscribe(Inner.OtherSubscriber(inner: inner))
|
|
89
|
+
upstream.subscribe(inner)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
extension Publishers.DropUntilOutput: Equatable
|
|
95
|
+
where Upstream: Equatable, Other: Equatable {}
|
|
96
|
+
|
|
97
|
+
extension Publishers.DropUntilOutput {
|
|
98
|
+
fileprivate final class Inner<Downstream: Subscriber>
|
|
99
|
+
: Subscriber,
|
|
100
|
+
Subscription,
|
|
101
|
+
CustomStringConvertible,
|
|
102
|
+
CustomReflectable,
|
|
103
|
+
CustomPlaygroundDisplayConvertible
|
|
104
|
+
where Downstream.Input == Upstream.Output, Downstream.Failure == Upstream.Failure
|
|
105
|
+
{
|
|
106
|
+
typealias Input = Upstream.Output
|
|
107
|
+
|
|
108
|
+
typealias Failure = Upstream.Failure
|
|
109
|
+
|
|
110
|
+
private let downstream: Downstream
|
|
111
|
+
|
|
112
|
+
private var triggered = false
|
|
113
|
+
|
|
114
|
+
private let lock = UnfairLock.allocate()
|
|
115
|
+
|
|
116
|
+
private let downstreamLock = UnfairRecursiveLock.allocate()
|
|
117
|
+
|
|
118
|
+
private var upstreamSubscription: Subscription?
|
|
119
|
+
|
|
120
|
+
private var pendingDemand = Subscribers.Demand.none
|
|
121
|
+
|
|
122
|
+
private var otherSubscription: Subscription?
|
|
123
|
+
|
|
124
|
+
private var otherFinished = false
|
|
125
|
+
|
|
126
|
+
private var cancelled = false
|
|
127
|
+
|
|
128
|
+
init(downstream: Downstream) {
|
|
129
|
+
self.downstream = downstream
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
deinit {
|
|
133
|
+
lock.deallocate()
|
|
134
|
+
downstreamLock.deallocate()
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
func receive(subscription: Subscription) {
|
|
138
|
+
lock.lock()
|
|
139
|
+
guard upstreamSubscription == nil && !cancelled else {
|
|
140
|
+
lock.unlock()
|
|
141
|
+
subscription.cancel()
|
|
142
|
+
return
|
|
143
|
+
}
|
|
144
|
+
upstreamSubscription = subscription
|
|
145
|
+
if pendingDemand > 0 {
|
|
146
|
+
lock.unlock()
|
|
147
|
+
subscription.request(pendingDemand)
|
|
148
|
+
} else {
|
|
149
|
+
lock.unlock()
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
func receive(_ input: Input) -> Subscribers.Demand {
|
|
154
|
+
lock.lock()
|
|
155
|
+
if !triggered || cancelled {
|
|
156
|
+
pendingDemand -= 1
|
|
157
|
+
lock.unlock()
|
|
158
|
+
return .none
|
|
159
|
+
}
|
|
160
|
+
lock.unlock()
|
|
161
|
+
downstreamLock.lock()
|
|
162
|
+
let newDemand = downstream.receive(input)
|
|
163
|
+
downstreamLock.unlock()
|
|
164
|
+
return newDemand
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
func receive(completion: Subscribers.Completion<Failure>) {
|
|
168
|
+
lock.lock()
|
|
169
|
+
if cancelled {
|
|
170
|
+
lock.unlock()
|
|
171
|
+
return
|
|
172
|
+
}
|
|
173
|
+
cancelled = true
|
|
174
|
+
lock.unlock()
|
|
175
|
+
downstreamLock.lock()
|
|
176
|
+
downstream.receive(completion: completion)
|
|
177
|
+
downstreamLock.unlock()
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
private func receiveOther(subscription: Subscription) {
|
|
181
|
+
// Combine doesn't lock here
|
|
182
|
+
guard otherSubscription == nil else {
|
|
183
|
+
subscription.cancel()
|
|
184
|
+
return
|
|
185
|
+
}
|
|
186
|
+
otherSubscription = subscription
|
|
187
|
+
subscription.request(.max(1))
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
private func receiveOther(_ input: Other.Output) -> Subscribers.Demand {
|
|
191
|
+
lock.lock()
|
|
192
|
+
triggered = true
|
|
193
|
+
otherSubscription = nil
|
|
194
|
+
lock.unlock()
|
|
195
|
+
return .none
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
private func receiveOther(completion: Subscribers.Completion<Other.Failure>) {
|
|
199
|
+
lock.lock()
|
|
200
|
+
if triggered {
|
|
201
|
+
otherSubscription = nil
|
|
202
|
+
lock.unlock()
|
|
203
|
+
return
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
otherFinished = true
|
|
207
|
+
if let upstreamSubscription = self.upstreamSubscription.take() {
|
|
208
|
+
lock.unlock()
|
|
209
|
+
upstreamSubscription.cancel()
|
|
210
|
+
} else {
|
|
211
|
+
lock.unlock()
|
|
212
|
+
}
|
|
213
|
+
downstreamLock.lock()
|
|
214
|
+
downstream.receive(completion: completion)
|
|
215
|
+
downstreamLock.unlock()
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
func request(_ demand: Subscribers.Demand) {
|
|
219
|
+
lock.lock()
|
|
220
|
+
pendingDemand += demand
|
|
221
|
+
if let subscription = upstreamSubscription {
|
|
222
|
+
lock.unlock()
|
|
223
|
+
subscription.request(demand)
|
|
224
|
+
} else {
|
|
225
|
+
lock.unlock()
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
func cancel() {
|
|
230
|
+
lock.lock()
|
|
231
|
+
let upstreamSubscription = self.upstreamSubscription.take()
|
|
232
|
+
let otherSubscription = self.otherSubscription.take()
|
|
233
|
+
cancelled = true
|
|
234
|
+
lock.unlock()
|
|
235
|
+
|
|
236
|
+
upstreamSubscription?.cancel()
|
|
237
|
+
otherSubscription?.cancel()
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
var description: String { return "DropUntilOutput" }
|
|
241
|
+
|
|
242
|
+
var customMirror: Mirror {
|
|
243
|
+
return Mirror(self, children: EmptyCollection())
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
var playgroundDescription: Any { return description }
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
extension Publishers.DropUntilOutput.Inner {
|
|
251
|
+
fileprivate struct OtherSubscriber
|
|
252
|
+
: Subscriber,
|
|
253
|
+
CustomStringConvertible,
|
|
254
|
+
CustomReflectable,
|
|
255
|
+
CustomPlaygroundDisplayConvertible
|
|
256
|
+
{
|
|
257
|
+
let inner: Publishers.DropUntilOutput<Upstream, Other>.Inner<Downstream>
|
|
258
|
+
|
|
259
|
+
var combineIdentifier: CombineIdentifier {
|
|
260
|
+
return inner.combineIdentifier
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
func receive(subscription: Subscription) {
|
|
264
|
+
inner.receiveOther(subscription: subscription)
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
func receive(_ input: Other.Output) -> Subscribers.Demand {
|
|
268
|
+
return inner.receiveOther(input)
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
func receive(completion: Subscribers.Completion<Other.Failure>) {
|
|
272
|
+
inner.receiveOther(completion: completion)
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
var description: String { return "DropUntilOutput" }
|
|
276
|
+
|
|
277
|
+
var customMirror: Mirror {
|
|
278
|
+
return Mirror(self, children: EmptyCollection())
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
var playgroundDescription: Any { return description }
|
|
282
|
+
}
|
|
283
|
+
}
|