From 04790a6d927e98de61b6bdf17fdae83341ae5dbb Mon Sep 17 00:00:00 2001 From: Rahul Date: Sat, 24 Apr 2021 17:29:23 +0530 Subject: [PATCH] pod support --- .gitignore | 3 + Example/Podfile | 14 + Example/Podfile.lock | 38 + {Pods => Example/Pods}/Alamofire/LICENSE | 0 {Pods => Example/Pods}/Alamofire/README.md | 0 .../Pods}/Alamofire/Source/AFError.swift | 0 .../Pods}/Alamofire/Source/Alamofire.swift | 0 .../Source/DispatchQueue+Alamofire.swift | 0 .../Alamofire/Source/MultipartFormData.swift | 0 .../Source/NetworkReachabilityManager.swift | 0 .../Alamofire/Source/Notifications.swift | 0 .../Alamofire/Source/ParameterEncoding.swift | 0 .../Pods}/Alamofire/Source/Request.swift | 0 .../Pods}/Alamofire/Source/Response.swift | 0 .../Source/ResponseSerialization.swift | 0 .../Pods}/Alamofire/Source/Result.swift | 0 .../Alamofire/Source/ServerTrustPolicy.swift | 0 .../Alamofire/Source/SessionDelegate.swift | 0 .../Alamofire/Source/SessionManager.swift | 0 .../Pods}/Alamofire/Source/TaskDelegate.swift | 0 .../Pods}/Alamofire/Source/Timeline.swift | 0 .../Pods}/Alamofire/Source/Validation.swift | 0 .../RRAlamofireRxAPI.podspec.json | 43 + Example/Pods/Manifest.lock | 38 + Example/Pods/Pods.xcodeproj/project.pbxproj | 2786 +++++++++++++++++ {Pods => Example/Pods}/RxCocoa/LICENSE.md | 4 +- .../RxCocoa/Platform/DataStructures/Bag.swift | 6 +- .../DataStructures/InfiniteSequence.swift | 10 +- .../DataStructures/PriorityQueue.swift | 44 +- .../Platform/DataStructures/Queue.swift | 80 +- .../Platform/DispatchQueue+Extensions.swift | 2 +- .../RxCocoa/Platform/Platform.Darwin.swift | 3 +- .../RxCocoa}/Platform/Platform.Linux.swift | 2 +- .../RxCocoa}/Platform/RecursiveLock.swift | 2 +- {Pods => Example/Pods}/RxCocoa/README.md | 91 +- .../RxCocoa/Common/ControlTarget.swift | 0 .../RxCocoa/Common/DelegateProxy.swift | 8 +- .../RxCocoa/Common/DelegateProxyType.swift | 50 +- .../RxCocoa/Common/Infallible+Bind.swift | 148 + .../RxCocoa/Common/Observable+Bind.swift | 34 +- .../RxCocoaObjCRuntimeError+Extensions.swift | 0 .../RxCocoa/RxCocoa/Common/RxTarget.swift | 2 +- .../Common/SectionedViewDataSourceType.swift | 2 +- .../RxCocoa/RxCocoa/Common/TextInput.swift | 0 .../KVORepresentable+CoreGraphics.swift | 4 +- .../Foundation/KVORepresentable+Swift.swift | 2 +- .../RxCocoa/Foundation/KVORepresentable.swift | 0 .../NSObject+Rx+KVORepresentable.swift | 2 +- .../NSObject+Rx+RawRepresentable.swift | 2 +- .../RxCocoa/Foundation/NSObject+Rx.swift | 59 +- .../Foundation/NotificationCenter+Rx.swift | 4 +- .../RxCocoa/Foundation/URLSession+Rx.swift | 43 +- .../Pods}/RxCocoa/RxCocoa/Runtime/_RX.m | 0 .../RxCocoa/Runtime/_RXDelegateProxy.m | 0 .../RxCocoa/RxCocoa/Runtime/_RXKVOObserver.m | 0 .../RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m | 121 +- .../RxCocoa/Runtime/include/RxCocoaRuntime.h | 0 .../RxCocoa/RxCocoa/Runtime/include/_RX.h | 0 .../Runtime/include/_RXDelegateProxy.h | 0 .../RxCocoa/Runtime/include/_RXKVOObserver.h | 0 .../RxCocoa/Runtime/include/_RXObjCRuntime.h | 0 .../Pods}/RxCocoa/RxCocoa/RxCocoa.h | 0 .../Pods}/RxCocoa/RxCocoa/RxCocoa.swift | 2 +- .../RxCocoa/RxCocoa/Traits/ControlEvent.swift | 17 +- .../RxCocoa/Traits/ControlProperty.swift | 27 +- .../Traits/Driver/BehaviorRelay+Driver.swift | 2 +- .../Traits/Driver/ControlEvent+Driver.swift | 0 .../Driver/ControlProperty+Driver.swift | 0 .../Traits/Driver/Driver+Subscription.swift | 65 +- .../RxCocoa/Traits/Driver/Driver.swift | 6 +- .../ObservableConvertibleType+Driver.swift | 12 +- ...rvableConvertibleType+SharedSequence.swift | 12 +- .../SchedulerType+SharedSequence.swift | 15 +- .../SharedSequence+Operators+arity.swift | 0 .../SharedSequence+Operators.swift | 53 +- .../SharedSequence/SharedSequence.swift | 34 +- .../Traits/Signal/ControlEvent+Signal.swift | 0 .../ObservableConvertibleType+Signal.swift | 20 +- .../Traits/Signal/PublishRelay+Signal.swift | 2 +- .../Traits/Signal/Signal+Subscription.swift | 143 + .../RxCocoa/Traits/Signal/Signal.swift | 6 +- ...ollectionViewReactiveArrayDataSource.swift | 14 +- .../iOS/DataSources/RxPickerViewAdapter.swift | 10 +- .../RxTableViewReactiveArrayDataSource.swift | 14 +- .../RxCocoa/iOS/Events/ItemEvents.swift | 0 .../RxCocoa/iOS/NSTextStorage+Rx.swift | 0 .../RxCollectionViewDataSourceType.swift | 0 .../RxPickerViewDataSourceType.swift | 0 .../Protocols/RxTableViewDataSourceType.swift | 0 ...ectionViewDataSourcePrefetchingProxy.swift | 6 +- .../RxCollectionViewDataSourceProxy.swift | 10 +- .../RxCollectionViewDelegateProxy.swift | 0 .../RxNavigationControllerDelegateProxy.swift | 0 .../Proxies/RxPickerViewDataSourceProxy.swift | 8 +- .../Proxies/RxPickerViewDelegateProxy.swift | 0 .../Proxies/RxScrollViewDelegateProxy.swift | 4 +- .../Proxies/RxSearchBarDelegateProxy.swift | 0 .../RxSearchControllerDelegateProxy.swift | 1 - .../RxTabBarControllerDelegateProxy.swift | 0 .../iOS/Proxies/RxTabBarDelegateProxy.swift | 2 +- ...xTableViewDataSourcePrefetchingProxy.swift | 6 +- .../Proxies/RxTableViewDataSourceProxy.swift | 12 +- .../Proxies/RxTableViewDelegateProxy.swift | 0 .../Proxies/RxTextStorageDelegateProxy.swift | 0 .../iOS/Proxies/RxTextViewDelegateProxy.swift | 0 .../Proxies/RxWKNavigationDelegateProxy.swift | 43 + .../iOS/UIActivityIndicatorView+Rx.swift | 4 +- .../RxCocoa/iOS/UIApplication+Rx.swift | 106 + .../RxCocoa/iOS/UIBarButtonItem+Rx.swift | 19 +- .../RxCocoa/RxCocoa/iOS/UIButton+Rx.swift | 14 +- .../RxCocoa/iOS/UICollectionView+Rx.swift | 8 +- .../RxCocoa/RxCocoa/iOS/UIControl+Rx.swift | 19 +- .../RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift | 2 +- .../RxCocoa/iOS/UIGestureRecognizer+Rx.swift | 2 +- .../iOS/UINavigationController+Rx.swift | 2 +- .../RxCocoa/RxCocoa/iOS/UIPickerView+Rx.swift | 0 .../RxCocoa/iOS/UIRefreshControl+Rx.swift | 0 .../RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift | 7 - .../RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift | 10 +- .../RxCocoa/iOS/UISearchController+Rx.swift | 1 - .../RxCocoa/iOS/UISegmentedControl+Rx.swift | 2 +- .../RxCocoa/RxCocoa/iOS/UISlider+Rx.swift | 0 .../RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift | 8 - .../RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift | 2 +- .../RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift | 2 +- .../RxCocoa/iOS/UITabBarController+Rx.swift | 2 +- .../RxCocoa/RxCocoa/iOS/UITableView+Rx.swift | 30 +- .../RxCocoa/RxCocoa/iOS/UITextField+Rx.swift | 3 +- .../RxCocoa/RxCocoa/iOS/UITextView+Rx.swift | 6 +- .../RxCocoa/RxCocoa/iOS/WKWebView+Rx.swift | 57 + .../RxCocoa/RxCocoa/macOS/NSButton+Rx.swift | 2 +- .../RxCocoa/RxCocoa/macOS/NSControl+Rx.swift | 11 +- .../RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift | 2 +- .../RxCocoa/macOS/NSTextField+Rx.swift | 6 +- .../RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift | 15 +- .../RxCocoa/RxCocoa/macOS/NSView+Rx.swift | 9 - {Pods => Example/Pods}/RxRelay/LICENSE.md | 4 +- {Pods => Example/Pods}/RxRelay/README.md | 91 +- .../Pods}/RxRelay/RxRelay/BehaviorRelay.swift | 12 +- .../RxRelay/RxRelay/Observable+Bind.swift | 58 +- .../Pods}/RxRelay/RxRelay/PublishRelay.swift | 10 +- .../Pods/RxRelay/RxRelay/ReplayRelay.swift | 50 + .../Pods}/RxRelay/RxRelay/Utils.swift | 0 {Pods => Example/Pods}/RxSwift/LICENSE.md | 4 +- .../Pods}/RxSwift/Platform/AtomicInt.swift | 8 +- .../RxSwift/Platform/DataStructures/Bag.swift | 6 +- .../DataStructures/InfiniteSequence.swift | 10 +- .../DataStructures/PriorityQueue.swift | 44 +- .../Platform/DataStructures/Queue.swift | 80 +- .../Platform/DispatchQueue+Extensions.swift | 2 +- .../RxSwift/Platform/Platform.Darwin.swift | 3 +- .../RxSwift}/Platform/Platform.Linux.swift | 2 +- .../RxSwift}/Platform/RecursiveLock.swift | 2 +- {Pods => Example/Pods}/RxSwift/README.md | 91 +- .../Pods}/RxSwift/RxSwift/AnyObserver.swift | 8 +- .../Pods/RxSwift/RxSwift}/Binder.swift | 14 +- .../Pods}/RxSwift/RxSwift/Cancelable.swift | 0 .../RxSwift/Concurrency/AsyncLock.swift | 58 +- .../RxSwift/RxSwift/Concurrency/Lock.swift | 15 +- .../RxSwift/Concurrency/LockOwnerType.swift | 13 +- .../Concurrency/SynchronizedDisposeType.swift | 4 +- .../Concurrency/SynchronizedOnType.swift | 6 +- .../SynchronizedUnsubscribeType.swift | 0 .../RxSwift/ConnectableObservableType.swift | 0 .../Pods}/RxSwift/RxSwift/Date+Dispatch.swift | 5 +- .../Pods}/RxSwift/RxSwift/Disposable.swift | 0 .../Disposables/AnonymousDisposable.swift | 22 +- .../Disposables/BinaryDisposable.swift | 24 +- .../Disposables/BooleanDisposable.swift | 8 +- .../Disposables/CompositeDisposable.swift | 56 +- .../RxSwift/Disposables/Disposables.swift | 0 .../RxSwift/Disposables/DisposeBag.swift | 70 +- .../RxSwift/Disposables/DisposeBase.swift | 0 .../RxSwift/Disposables/NopDisposable.swift | 8 +- .../Disposables/RefCountDisposable.swift | 51 +- .../Disposables/ScheduledDisposable.swift | 14 +- .../Disposables/SerialDisposable.swift | 34 +- .../SingleAssignmentDisposable.swift | 20 +- .../Disposables/SubscriptionDisposable.swift | 10 +- .../Pods}/RxSwift/RxSwift/Errors.swift | 2 +- .../Pods}/RxSwift/RxSwift/Event.swift | 9 +- .../RxSwift/RxSwift/Extensions/Bag+Rx.swift | 0 .../RxSwift/RxSwift/GroupedObservable.swift | 4 +- .../RxSwift/ImmediateSchedulerType.swift | 0 .../Pods}/RxSwift/RxSwift/Observable.swift | 12 +- .../RxSwift/ObservableConvertibleType.swift | 3 - .../RxSwift/ObservableType+Extensions.swift | 36 +- .../RxSwift/RxSwift/ObservableType.swift | 4 +- .../RxSwift/RxSwift/Observables/AddRef.swift | 12 +- .../RxSwift/RxSwift/Observables/Amb.swift | 58 +- .../RxSwift/RxSwift/Observables/AsMaybe.swift | 16 +- .../RxSwift/Observables/AsSingle.swift | 16 +- .../RxSwift/RxSwift/Observables/Buffer.swift | 64 +- .../RxSwift/RxSwift/Observables/Catch.swift | 92 +- .../CombineLatest+Collection.swift | 137 +- .../Observables/CombineLatest+arity.swift | 452 +-- .../RxSwift/Observables/CombineLatest.swift | 72 +- .../RxSwift/Observables/CompactMap.swift | 26 +- .../RxSwift/RxSwift/Observables/Concat.swift | 18 +- .../RxSwift/RxSwift/Observables/Create.swift | 20 +- .../RxSwift/Observables/Debounce.swift | 57 +- .../RxSwift/RxSwift/Observables/Debug.swift | 43 +- .../RxSwift/RxSwift/Observables/Decode.swift | 34 + .../RxSwift/Observables/DefaultIfEmpty.swift | 26 +- .../RxSwift/Observables/Deferred.swift | 14 +- .../RxSwift/RxSwift/Observables/Delay.swift | 114 +- .../Observables/DelaySubscription.swift | 18 +- .../RxSwift/Observables/Dematerialize.swift | 10 +- .../Observables/DistinctUntilChanged.swift | 46 +- .../RxSwift/RxSwift/Observables/Do.swift | 46 +- .../RxSwift/Observables/ElementAt.swift | 45 +- .../RxSwift/RxSwift/Observables/Empty.swift | 2 +- .../RxSwift/Observables/Enumerated.swift | 8 +- .../RxSwift/RxSwift/Observables/Error.swift | 8 +- .../RxSwift/RxSwift/Observables/Filter.swift | 28 +- .../RxSwift/RxSwift/Observables/First.swift | 8 +- .../RxSwift/Observables/Generate.swift | 38 +- .../RxSwift/RxSwift/Observables/GroupBy.swift | 54 +- .../RxSwift/RxSwift/Observables/Just.swift | 26 +- .../RxSwift/RxSwift/Observables/Map.swift | 51 +- .../RxSwift/Observables/Materialize.swift | 10 +- .../RxSwift/RxSwift/Observables/Merge.swift | 284 +- .../RxSwift/Observables/Multicast.swift | 184 +- .../RxSwift/RxSwift/Observables/Never.swift | 4 +- .../RxSwift/Observables/ObserveOn.swift | 100 +- .../RxSwift/Observables/Optional.swift | 26 +- .../RxSwift/Observables/Producer.swift | 34 +- .../RxSwift/RxSwift/Observables/Range.swift | 26 +- .../RxSwift/RxSwift/Observables/Reduce.swift | 34 +- .../RxSwift/RxSwift/Observables/Repeat.swift | 16 +- .../RxSwift/Observables/RetryWhen.swift | 115 +- .../RxSwift/RxSwift/Observables/Sample.swift | 80 +- .../RxSwift/RxSwift/Observables/Scan.swift | 28 +- .../RxSwift/Observables/Sequence.swift | 20 +- .../Observables/ShareReplayScope.swift | 199 +- .../RxSwift/Observables/SingleAsync.swift | 30 +- .../RxSwift/RxSwift/Observables/Sink.swift | 75 + .../RxSwift/RxSwift/Observables/Skip.swift | 4 +- .../RxSwift/Observables/SkipUntil.swift | 71 +- .../RxSwift/Observables/SkipWhile.swift | 36 +- .../RxSwift/Observables/StartWith.swift | 0 .../RxSwift/Observables/SubscribeOn.swift | 22 +- .../RxSwift/RxSwift/Observables/Switch.swift | 143 +- .../RxSwift/Observables/SwitchIfEmpty.swift | 44 +- .../RxSwift/RxSwift/Observables/Take.swift | 72 +- .../RxSwift/Observables/TakeLast.swift | 28 +- .../Observables/TakeWithPredicate.swift | 150 +- .../RxSwift/Observables/Throttle.swift | 69 +- .../RxSwift/RxSwift/Observables/Timeout.swift | 68 +- .../RxSwift/RxSwift/Observables/Timer.swift | 37 +- .../RxSwift/RxSwift/Observables/ToArray.swift | 20 +- .../RxSwift/RxSwift/Observables/Using.swift | 18 +- .../RxSwift/RxSwift/Observables/Window.swift | 90 +- .../RxSwift/Observables/WithLatestFrom.swift | 58 +- .../RxSwift/Observables/WithUnretained.swift | 54 + .../RxSwift/Observables/Zip+Collection.swift | 137 +- .../RxSwift/Observables/Zip+arity.swift | 354 +-- .../RxSwift/RxSwift/Observables/Zip.swift | 52 +- .../Pods}/RxSwift/RxSwift/ObserverType.swift | 3 - .../RxSwift/Observers/AnonymousObserver.swift | 6 +- .../RxSwift/Observers/ObserverBase.swift | 8 +- .../RxSwift/Observers/TailRecursiveSink.swift | 40 +- .../Pods}/RxSwift/RxSwift/Reactive.swift | 41 +- .../Pods}/RxSwift/RxSwift/Rx.swift | 37 +- .../Pods}/RxSwift/RxSwift/RxMutableBox.swift | 4 +- .../Pods}/RxSwift/RxSwift/SchedulerType.swift | 4 +- .../ConcurrentDispatchQueueScheduler.swift | 12 +- .../Schedulers/ConcurrentMainScheduler.swift | 19 +- .../Schedulers/CurrentThreadScheduler.swift | 11 +- .../Schedulers/HistoricalScheduler.swift | 2 +- .../HistoricalSchedulerTimeConverter.swift | 10 +- .../Internal/DispatchQueueConfiguration.swift | 2 +- .../Internal/InvocableScheduledItem.swift | 10 +- .../Schedulers/Internal/InvocableType.swift | 0 .../Schedulers/Internal/ScheduledItem.swift | 16 +- .../Internal/ScheduledItemType.swift | 0 .../RxSwift/Schedulers/MainScheduler.swift | 10 +- .../Schedulers/OperationQueueScheduler.swift | 4 +- .../Schedulers/RecursiveScheduler.swift | 78 +- .../SchedulerServices+Emulation.swift | 32 +- .../SerialDispatchQueueScheduler.swift | 17 +- .../Schedulers/VirtualTimeConverterType.swift | 6 +- .../Schedulers/VirtualTimeScheduler.swift | 92 +- .../RxSwift/Subjects/AsyncSubject.swift | 67 +- .../RxSwift/Subjects/BehaviorSubject.swift | 101 +- .../RxSwift/Subjects/PublishSubject.swift | 78 +- .../RxSwift/Subjects/ReplaySubject.swift | 122 +- .../RxSwift/Subjects/SubjectType.swift | 3 - .../RxSwift/SwiftSupport/SwiftSupport.swift | 2 +- .../Infallible+CombineLatest+arity.swift | 151 + .../Traits/Infallible/Infallible+Create.swift | 44 + .../Infallible/Infallible+Operators.swift | 707 +++++ .../Infallible/Infallible+Zip+arity.swift | 138 + .../Traits/Infallible/Infallible.swift | 61 + ...ObservableConvertibleType+Infallible.swift | 35 + .../Completable+AndThen.swift | 30 +- .../PrimitiveSequence}/Completable.swift | 30 +- .../Traits/PrimitiveSequence}/Maybe.swift | 65 +- .../ObservableType+PrimitiveSequence.swift | 6 +- .../PrimitiveSequence+Zip+arity.swift | 0 .../PrimitiveSequence.swift | 122 +- .../Traits/PrimitiveSequence}/Single.swift | 109 +- .../Alamofire/Alamofire-Info.plist | 0 .../Alamofire/Alamofire-dummy.m | 0 .../Alamofire/Alamofire-prefix.pch | 0 .../Alamofire/Alamofire-umbrella.h | 0 .../Alamofire/Alamofire.debug.xcconfig | 3 + .../Alamofire/Alamofire.modulemap | 0 .../Alamofire/Alamofire.release.xcconfig | 12 + .../Pods-RRAlamofireRxAPI_Example-Info.plist | 0 ...ireRxAPI_Example-acknowledgements.markdown | 34 +- ...mofireRxAPI_Example-acknowledgements.plist | 46 +- .../Pods-RRAlamofireRxAPI_Example-dummy.m | 5 + ...le-frameworks-Debug-input-files.xcfilelist | 2 +- ...e-frameworks-Debug-output-files.xcfilelist | 0 ...-frameworks-Release-input-files.xcfilelist | 2 +- ...frameworks-Release-output-files.xcfilelist | 0 ...ods-RRAlamofireRxAPI_Example-frameworks.sh | 94 +- .../Pods-RRAlamofireRxAPI_Example-umbrella.h | 16 + ...ds-RRAlamofireRxAPI_Example.debug.xcconfig | 14 + .../Pods-RRAlamofireRxAPI_Example.modulemap | 6 + ...-RRAlamofireRxAPI_Example.release.xcconfig | 14 + .../Pods-RRAlamofireRxAPI_Tests-Info.plist | 26 + ...ofireRxAPI_Tests-acknowledgements.markdown | 3 + ...lamofireRxAPI_Tests-acknowledgements.plist | 29 + .../Pods-RRAlamofireRxAPI_Tests-dummy.m | 5 + .../Pods-RRAlamofireRxAPI_Tests-umbrella.h | 16 + ...Pods-RRAlamofireRxAPI_Tests.debug.xcconfig | 11 + .../Pods-RRAlamofireRxAPI_Tests.modulemap | 6 + ...ds-RRAlamofireRxAPI_Tests.release.xcconfig | 11 + .../RRAlamofireRxAPI-Info.plist | 26 + .../RRAlamofireRxAPI/RRAlamofireRxAPI-dummy.m | 5 + .../RRAlamofireRxAPI-prefix.pch | 0 .../RRAlamofireRxAPI-umbrella.h | 4 +- .../RRAlamofireRxAPI.debug.xcconfig | 13 + .../RRAlamofireRxAPI.modulemap | 6 + .../RRAlamofireRxAPI.release.xcconfig | 13 + .../RxCocoa/RxCocoa-Info.plist | 2 +- .../RxCocoa/RxCocoa-dummy.m | 0 .../RxCocoa/RxCocoa-prefix.pch | 0 .../RxCocoa/RxCocoa-umbrella.h | 0 .../RxCocoa/RxCocoa.debug.xcconfig | 3 + .../RxCocoa/RxCocoa.modulemap | 0 .../RxCocoa/RxCocoa.release.xcconfig | 13 + .../RxRelay/RxRelay-Info.plist | 2 +- .../RxRelay/RxRelay-dummy.m | 0 .../RxRelay/RxRelay-prefix.pch | 0 .../RxRelay/RxRelay-umbrella.h | 0 .../RxRelay/RxRelay.debug.xcconfig | 3 + .../RxRelay/RxRelay.modulemap | 0 .../RxRelay/RxRelay.release.xcconfig | 13 + .../RxSwift/RxSwift-Info.plist | 2 +- .../RxSwift/RxSwift-dummy.m | 0 .../RxSwift/RxSwift-prefix.pch | 12 + .../RxSwift/RxSwift-umbrella.h | 0 .../RxSwift/RxSwift.debug.xcconfig | 3 + .../RxSwift/RxSwift.modulemap | 0 .../RxSwift/RxSwift.release.xcconfig | 12 + .../project.pbxproj | 614 ++++ .../contents.xcworkspacedata | 0 .../RRAlamofireRxAPI-Example.xcscheme | 111 + .../contents.xcworkspacedata | 0 .../RRAlamofireRxAPI}/AppDelegate.swift | 0 .../Base.lproj/LaunchScreen.xib | 46 + .../Base.lproj/Main.storyboard | 30 + .../AppIcon.appiconset/Contents.json | 47 +- .../RRAlamofireRxAPI}/Info.plist | 18 +- .../RRAlamofireRxAPI}/ViewController.swift | 4 +- Example/Tests/Info.plist | 24 + Example/Tests/Tests.swift | 28 + Podfile | 14 - Podfile.lock | 30 - Pods/Manifest.lock | 30 - Pods/Pods.xcodeproj/project.pbxproj | 2368 -------------- .../RxCocoa/Common/KeyPathBinder.swift | 34 - .../Common/NSLayoutConstraint+Rx.swift | 39 - Pods/RxCocoa/RxCocoa/Deprecated.swift | 588 ---- Pods/RxCocoa/RxCocoa/Foundation/Logging.swift | 23 - .../Traits/Signal/Signal+Subscription.swift | 101 - .../iOS/Proxies/RxWebViewDelegateProxy.swift | 38 - .../RxCocoa/iOS/UIAlertAction+Rx.swift | 25 - .../RxCocoa/iOS/UIApplication+Rx.swift | 24 - Pods/RxCocoa/RxCocoa/iOS/UIImageView+Rx.swift | 24 - Pods/RxCocoa/RxCocoa/iOS/UILabel+Rx.swift | 32 - .../RxCocoa/iOS/UINavigationItem+Rx.swift | 25 - .../RxCocoa/iOS/UIPageControl+Rx.swift | 32 - .../RxCocoa/iOS/UIProgressView+Rx.swift | 25 - .../RxCocoa/RxCocoa/iOS/UITabBarItem+Rx.swift | 25 - Pods/RxCocoa/RxCocoa/iOS/UIView+Rx.swift | 45 - .../RxCocoa/iOS/UIViewController+Rx.swift | 24 - Pods/RxCocoa/RxCocoa/iOS/UIWebView+Rx.swift | 46 - .../RxCocoa/macOS/NSImageView+Rx.swift | 24 - Pods/RxSwift/RxSwift/Deprecated.swift | 581 ---- .../RxSwift/Extensions/String+Rx.swift | 22 - Pods/RxSwift/RxSwift/Observables/Sink.swift | 75 - .../RxSwift/Observables/TakeWhile.swift | 85 - .../Pods-RRAlamofireRxAPI-dummy.m | 5 - .../Pods-RRAlamofireRxAPI.debug.xcconfig | 11 - .../Pods-RRAlamofireRxAPI.modulemap | 6 - .../Pods-RRAlamofireRxAPI.release.xcconfig | 11 - README.md | 23 +- RRAlamofireRxAPI.podspec | 21 + RRAlamofireRxAPI.xcodeproj/project.pbxproj | 414 --- .../Assets.xcassets/Contents.json | 6 - .../Base.lproj/LaunchScreen.storyboard | 25 - RRAlamofireRxAPI/Base.lproj/Main.storyboard | 24 - .../RRAPIRxManager.swift | 181 -- _Pods.xcodeproj | 1 + 408 files changed, 10109 insertions(+), 8724 deletions(-) create mode 100644 Example/Podfile create mode 100644 Example/Podfile.lock rename {Pods => Example/Pods}/Alamofire/LICENSE (100%) rename {Pods => Example/Pods}/Alamofire/README.md (100%) rename {Pods => Example/Pods}/Alamofire/Source/AFError.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/Alamofire.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/DispatchQueue+Alamofire.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/MultipartFormData.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/NetworkReachabilityManager.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/Notifications.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/ParameterEncoding.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/Request.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/Response.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/ResponseSerialization.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/Result.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/ServerTrustPolicy.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/SessionDelegate.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/SessionManager.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/TaskDelegate.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/Timeline.swift (100%) rename {Pods => Example/Pods}/Alamofire/Source/Validation.swift (100%) create mode 100644 Example/Pods/Local Podspecs/RRAlamofireRxAPI.podspec.json create mode 100644 Example/Pods/Manifest.lock create mode 100644 Example/Pods/Pods.xcodeproj/project.pbxproj rename {Pods => Example/Pods}/RxCocoa/LICENSE.md (94%) rename {Pods => Example/Pods}/RxCocoa/Platform/DataStructures/Bag.swift (96%) rename {Pods/RxSwift => Example/Pods/RxCocoa}/Platform/DataStructures/InfiniteSequence.swift (68%) rename {Pods/RxSwift => Example/Pods/RxCocoa}/Platform/DataStructures/PriorityQueue.swift (61%) rename {Pods/RxSwift => Example/Pods/RxCocoa}/Platform/DataStructures/Queue.swift (57%) rename {Pods/RxSwift => Example/Pods/RxCocoa}/Platform/DispatchQueue+Extensions.swift (87%) rename {Pods => Example/Pods}/RxCocoa/Platform/Platform.Darwin.swift (92%) rename {Pods/RxSwift => Example/Pods/RxCocoa}/Platform/Platform.Linux.swift (95%) rename {Pods/RxSwift => Example/Pods/RxCocoa}/Platform/RecursiveLock.swift (94%) rename {Pods => Example/Pods}/RxCocoa/README.md (59%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/ControlTarget.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/DelegateProxy.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/DelegateProxyType.swift (92%) create mode 100644 Example/Pods/RxCocoa/RxCocoa/Common/Infallible+Bind.swift rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/Observable+Bind.swift (75%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/RxTarget.swift (95%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift (94%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Common/TextInput.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift (95%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift (89%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift (92%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift (91%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/_RX.m (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/_RXKVOObserver.m (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m (92%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/include/_RX.h (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Runtime/include/_RXObjCRuntime.h (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/RxCocoa.h (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/RxCocoa.swift (99%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/ControlEvent.swift (84%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/ControlProperty.swift (86%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift (88%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Driver/Driver+Subscription.swift (65%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Driver/Driver.swift (91%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift (84%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift (89%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift (86%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators+arity.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift (90%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence.swift (88%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift (66%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift (88%) create mode 100644 Example/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal+Subscription.swift rename {Pods => Example/Pods}/RxCocoa/RxCocoa/Traits/Signal/Signal.swift (89%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift (90%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift (93%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift (89%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift (92%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift (85%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift (88%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift (94%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift (97%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift (92%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift (80%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift (100%) create mode 100644 Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWKNavigationDelegateProxy.swift rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift (89%) create mode 100644 Example/Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIBarButtonItem+Rx.swift (78%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIButton+Rx.swift (85%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UICollectionView+Rx.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIControl+Rx.swift (86%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIGestureRecognizer+Rx.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UINavigationController+Rx.swift (96%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIPickerView+Rx.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift (96%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift (96%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UISearchController+Rx.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift (100%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift (73%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift (97%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UITabBarController+Rx.swift (97%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UITableView+Rx.swift (93%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift (98%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/iOS/UITextView+Rx.swift (97%) create mode 100644 Example/Pods/RxCocoa/RxCocoa/iOS/WKWebView+Rx.swift rename {Pods => Example/Pods}/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift (95%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift (90%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift (92%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift (95%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift (84%) rename {Pods => Example/Pods}/RxCocoa/RxCocoa/macOS/NSView+Rx.swift (68%) rename {Pods => Example/Pods}/RxRelay/LICENSE.md (94%) rename {Pods => Example/Pods}/RxRelay/README.md (59%) rename {Pods => Example/Pods}/RxRelay/RxRelay/BehaviorRelay.swift (78%) rename {Pods => Example/Pods}/RxRelay/RxRelay/Observable+Bind.swift (64%) rename {Pods => Example/Pods}/RxRelay/RxRelay/PublishRelay.swift (78%) create mode 100644 Example/Pods/RxRelay/RxRelay/ReplayRelay.swift rename {Pods => Example/Pods}/RxRelay/RxRelay/Utils.swift (100%) rename {Pods => Example/Pods}/RxSwift/LICENSE.md (94%) rename {Pods => Example/Pods}/RxSwift/Platform/AtomicInt.swift (91%) rename {Pods => Example/Pods}/RxSwift/Platform/DataStructures/Bag.swift (96%) rename {Pods/RxCocoa => Example/Pods/RxSwift}/Platform/DataStructures/InfiniteSequence.swift (68%) rename {Pods/RxCocoa => Example/Pods/RxSwift}/Platform/DataStructures/PriorityQueue.swift (61%) rename {Pods/RxCocoa => Example/Pods/RxSwift}/Platform/DataStructures/Queue.swift (57%) rename {Pods/RxCocoa => Example/Pods/RxSwift}/Platform/DispatchQueue+Extensions.swift (87%) rename {Pods => Example/Pods}/RxSwift/Platform/Platform.Darwin.swift (92%) rename {Pods/RxCocoa => Example/Pods/RxSwift}/Platform/Platform.Linux.swift (95%) rename {Pods/RxCocoa => Example/Pods/RxSwift}/Platform/RecursiveLock.swift (94%) rename {Pods => Example/Pods}/RxSwift/README.md (59%) rename {Pods => Example/Pods}/RxSwift/RxSwift/AnyObserver.swift (94%) rename {Pods/RxCocoa/RxCocoa/Common => Example/Pods/RxSwift/RxSwift}/Binder.swift (87%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Cancelable.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Concurrency/AsyncLock.swift (63%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Concurrency/Lock.swift (51%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Concurrency/LockOwnerType.swift (50%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift (83%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift (66%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/ConnectableObservableType.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Date+Dispatch.swift (95%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposable.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift (70%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/BinaryDisposable.swift (67%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/BooleanDisposable.swift (85%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/CompositeDisposable.swift (75%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/Disposables.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/DisposeBag.swift (60%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/DisposeBase.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/NopDisposable.swift (74%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/RefCountDisposable.swift (63%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift (81%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/SerialDisposable.swift (68%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift (76%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift (64%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Errors.swift (97%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Event.swift (92%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Extensions/Bag+Rx.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/GroupedObservable.swift (93%) rename {Pods => Example/Pods}/RxSwift/RxSwift/ImmediateSchedulerType.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observable.swift (58%) rename {Pods => Example/Pods}/RxSwift/RxSwift/ObservableConvertibleType.swift (84%) rename {Pods => Example/Pods}/RxSwift/RxSwift/ObservableType+Extensions.swift (79%) rename {Pods => Example/Pods}/RxSwift/RxSwift/ObservableType.swift (94%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/AddRef.swift (82%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Amb.swift (75%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/AsMaybe.swift (72%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/AsSingle.swift (74%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Buffer.swift (67%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Catch.swift (68%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/CombineLatest+Collection.swift (56%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/CombineLatest+arity.swift (63%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/CombineLatest.swift (59%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/CompactMap.swift (73%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Concat.swift (90%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Create.swift (78%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Debounce.swift (69%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Debug.swift (69%) create mode 100644 Example/Pods/RxSwift/RxSwift/Observables/Decode.swift rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/DefaultIfEmpty.swift (74%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Deferred.swift (83%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Delay.swift (55%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/DelaySubscription.swift (76%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Dematerialize.swift (81%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/DistinctUntilChanged.swift (74%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Do.swift (79%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/ElementAt.swift (67%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Empty.swift (95%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Enumerated.swift (90%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Error.swift (84%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Filter.swift (77%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/First.swift (79%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Generate.swift (70%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/GroupBy.swift (71%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Just.swift (81%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Map.swift (58%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Materialize.swift (79%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Merge.swift (68%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Multicast.swift (71%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Never.swift (91%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/ObserveOn.swift (65%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Optional.swift (80%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Producer.swift (73%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Range.swift (77%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Reduce.swift (79%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Repeat.swift (81%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/RetryWhen.swift (56%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Sample.swift (55%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Scan.swift (82%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Sequence.swift (83%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/ShareReplayScope.swift (65%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/SingleAsync.swift (80%) create mode 100644 Example/Pods/RxSwift/RxSwift/Observables/Sink.swift rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Skip.swift (96%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/SkipUntil.swift (58%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/SkipWhile.swift (62%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/StartWith.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/SubscribeOn.swift (75%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Switch.swift (62%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/SwitchIfEmpty.swift (70%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Take.swift (69%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/TakeLast.swift (77%) rename Pods/RxSwift/RxSwift/Observables/TakeUntil.swift => Example/Pods/RxSwift/RxSwift/Observables/TakeWithPredicate.swift (51%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Throttle.swift (68%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Timeout.swift (72%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Timer.swift (79%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/ToArray.swift (81%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Using.swift (85%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Window.swift (60%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/WithLatestFrom.swift (73%) create mode 100644 Example/Pods/RxSwift/RxSwift/Observables/WithUnretained.swift rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Zip+Collection.swift (56%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Zip+arity.swift (69%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observables/Zip.swift (70%) rename {Pods => Example/Pods}/RxSwift/RxSwift/ObserverType.swift (92%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observers/AnonymousObserver.swift (81%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observers/ObserverBase.swift (75%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Observers/TailRecursiveSink.swift (76%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Reactive.swift (58%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Rx.swift (83%) rename {Pods => Example/Pods}/RxSwift/RxSwift/RxMutableBox.swift (94%) rename {Pods => Example/Pods}/RxSwift/RxSwift/SchedulerType.swift (97%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift (89%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift (83%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift (92%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift (95%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift (93%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift (98%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift (66%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift (56%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift (100%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/MainScheduler.swift (92%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift (94%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift (71%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift (66%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift (91%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift (96%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift (74%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Subjects/AsyncSubject.swift (62%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Subjects/BehaviorSubject.swift (56%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Subjects/PublishSubject.swift (56%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Subjects/ReplaySubject.swift (62%) rename {Pods => Example/Pods}/RxSwift/RxSwift/Subjects/SubjectType.swift (84%) rename {Pods => Example/Pods}/RxSwift/RxSwift/SwiftSupport/SwiftSupport.swift (91%) create mode 100644 Example/Pods/RxSwift/RxSwift/Traits/Infallible/Infallible+CombineLatest+arity.swift create mode 100644 Example/Pods/RxSwift/RxSwift/Traits/Infallible/Infallible+Create.swift create mode 100644 Example/Pods/RxSwift/RxSwift/Traits/Infallible/Infallible+Operators.swift create mode 100644 Example/Pods/RxSwift/RxSwift/Traits/Infallible/Infallible+Zip+arity.swift create mode 100644 Example/Pods/RxSwift/RxSwift/Traits/Infallible/Infallible.swift create mode 100644 Example/Pods/RxSwift/RxSwift/Traits/Infallible/ObservableConvertibleType+Infallible.swift rename {Pods/RxSwift/RxSwift/Traits => Example/Pods/RxSwift/RxSwift/Traits/PrimitiveSequence}/Completable+AndThen.swift (86%) rename {Pods/RxSwift/RxSwift/Traits => Example/Pods/RxSwift/RxSwift/Traits/PrimitiveSequence}/Completable.swift (91%) rename {Pods/RxSwift/RxSwift/Traits => Example/Pods/RxSwift/RxSwift/Traits/PrimitiveSequence}/Maybe.swift (82%) rename {Pods/RxSwift/RxSwift/Traits => Example/Pods/RxSwift/RxSwift/Traits/PrimitiveSequence}/ObservableType+PrimitiveSequence.swift (89%) rename {Pods/RxSwift/RxSwift/Traits => Example/Pods/RxSwift/RxSwift/Traits/PrimitiveSequence}/PrimitiveSequence+Zip+arity.swift (100%) rename {Pods/RxSwift/RxSwift/Traits => Example/Pods/RxSwift/RxSwift/Traits/PrimitiveSequence}/PrimitiveSequence.swift (67%) rename {Pods/RxSwift/RxSwift/Traits => Example/Pods/RxSwift/RxSwift/Traits/PrimitiveSequence}/Single.swift (77%) rename {Pods => Example/Pods}/Target Support Files/Alamofire/Alamofire-Info.plist (100%) rename {Pods => Example/Pods}/Target Support Files/Alamofire/Alamofire-dummy.m (100%) rename {Pods => Example/Pods}/Target Support Files/Alamofire/Alamofire-prefix.pch (100%) rename {Pods => Example/Pods}/Target Support Files/Alamofire/Alamofire-umbrella.h (100%) rename Pods/Target Support Files/Alamofire/Alamofire.xcconfig => Example/Pods/Target Support Files/Alamofire/Alamofire.debug.xcconfig (70%) rename {Pods => Example/Pods}/Target Support Files/Alamofire/Alamofire.modulemap (100%) create mode 100644 Example/Pods/Target Support Files/Alamofire/Alamofire.release.xcconfig rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-Info.plist => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-Info.plist (100%) rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-acknowledgements.markdown => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-acknowledgements.markdown (78%) rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-acknowledgements.plist => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-acknowledgements.plist (79%) create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-dummy.m rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-frameworks-Debug-input-files.xcfilelist => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-frameworks-Debug-input-files.xcfilelist (64%) rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-frameworks-Debug-output-files.xcfilelist => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-frameworks-Debug-output-files.xcfilelist (100%) rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-frameworks-Release-input-files.xcfilelist => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-frameworks-Release-input-files.xcfilelist (64%) rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-frameworks-Release-output-files.xcfilelist => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-frameworks-Release-output-files.xcfilelist (100%) rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-frameworks.sh => Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-frameworks.sh (75%) create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-umbrella.h create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example.debug.xcconfig create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example.modulemap create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example.release.xcconfig create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests-Info.plist create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests-acknowledgements.markdown create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests-acknowledgements.plist create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests-dummy.m create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests-umbrella.h create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests.debug.xcconfig create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests.modulemap create mode 100644 Example/Pods/Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests.release.xcconfig create mode 100644 Example/Pods/Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-Info.plist create mode 100644 Example/Pods/Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-dummy.m rename Pods/Target Support Files/RxCocoa/RxCocoa-prefix.pch => Example/Pods/Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-prefix.pch (100%) rename Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-umbrella.h => Example/Pods/Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-umbrella.h (58%) create mode 100644 Example/Pods/Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI.debug.xcconfig create mode 100644 Example/Pods/Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI.modulemap create mode 100644 Example/Pods/Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI.release.xcconfig rename {Pods => Example/Pods}/Target Support Files/RxCocoa/RxCocoa-Info.plist (96%) rename {Pods => Example/Pods}/Target Support Files/RxCocoa/RxCocoa-dummy.m (100%) rename Pods/Target Support Files/RxRelay/RxRelay-prefix.pch => Example/Pods/Target Support Files/RxCocoa/RxCocoa-prefix.pch (100%) rename {Pods => Example/Pods}/Target Support Files/RxCocoa/RxCocoa-umbrella.h (100%) rename Pods/Target Support Files/RxCocoa/RxCocoa.xcconfig => Example/Pods/Target Support Files/RxCocoa/RxCocoa.debug.xcconfig (75%) rename {Pods => Example/Pods}/Target Support Files/RxCocoa/RxCocoa.modulemap (100%) create mode 100644 Example/Pods/Target Support Files/RxCocoa/RxCocoa.release.xcconfig rename {Pods => Example/Pods}/Target Support Files/RxRelay/RxRelay-Info.plist (96%) rename {Pods => Example/Pods}/Target Support Files/RxRelay/RxRelay-dummy.m (100%) rename Pods/Target Support Files/RxSwift/RxSwift-prefix.pch => Example/Pods/Target Support Files/RxRelay/RxRelay-prefix.pch (100%) rename {Pods => Example/Pods}/Target Support Files/RxRelay/RxRelay-umbrella.h (100%) rename Pods/Target Support Files/RxRelay/RxRelay.xcconfig => Example/Pods/Target Support Files/RxRelay/RxRelay.debug.xcconfig (73%) rename {Pods => Example/Pods}/Target Support Files/RxRelay/RxRelay.modulemap (100%) create mode 100644 Example/Pods/Target Support Files/RxRelay/RxRelay.release.xcconfig rename {Pods => Example/Pods}/Target Support Files/RxSwift/RxSwift-Info.plist (96%) rename {Pods => Example/Pods}/Target Support Files/RxSwift/RxSwift-dummy.m (100%) create mode 100644 Example/Pods/Target Support Files/RxSwift/RxSwift-prefix.pch rename {Pods => Example/Pods}/Target Support Files/RxSwift/RxSwift-umbrella.h (100%) rename Pods/Target Support Files/RxSwift/RxSwift.xcconfig => Example/Pods/Target Support Files/RxSwift/RxSwift.debug.xcconfig (70%) rename {Pods => Example/Pods}/Target Support Files/RxSwift/RxSwift.modulemap (100%) create mode 100644 Example/Pods/Target Support Files/RxSwift/RxSwift.release.xcconfig create mode 100644 Example/RRAlamofireRxAPI.xcodeproj/project.pbxproj rename {RRAlamofireRxAPI.xcodeproj => Example/RRAlamofireRxAPI.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) create mode 100644 Example/RRAlamofireRxAPI.xcodeproj/xcshareddata/xcschemes/RRAlamofireRxAPI-Example.xcscheme rename {RRAlamofireRxAPI.xcworkspace => Example/RRAlamofireRxAPI.xcworkspace}/contents.xcworkspacedata (100%) rename {RRAlamofireRxAPI => Example/RRAlamofireRxAPI}/AppDelegate.swift (100%) create mode 100644 Example/RRAlamofireRxAPI/Base.lproj/LaunchScreen.xib create mode 100644 Example/RRAlamofireRxAPI/Base.lproj/Main.storyboard rename {RRAlamofireRxAPI/Assets.xcassets => Example/RRAlamofireRxAPI/Images.xcassets}/AppIcon.appiconset/Contents.json (53%) rename {RRAlamofireRxAPI => Example/RRAlamofireRxAPI}/Info.plist (67%) rename {RRAlamofireRxAPI => Example/RRAlamofireRxAPI}/ViewController.swift (97%) create mode 100644 Example/Tests/Info.plist create mode 100644 Example/Tests/Tests.swift delete mode 100644 Podfile delete mode 100644 Podfile.lock delete mode 100644 Pods/Manifest.lock delete mode 100644 Pods/Pods.xcodeproj/project.pbxproj delete mode 100644 Pods/RxCocoa/RxCocoa/Common/KeyPathBinder.swift delete mode 100644 Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/Deprecated.swift delete mode 100644 Pods/RxCocoa/RxCocoa/Foundation/Logging.swift delete mode 100644 Pods/RxCocoa/RxCocoa/Traits/Signal/Signal+Subscription.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWebViewDelegateProxy.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIAlertAction+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIImageView+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UILabel+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UINavigationItem+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIPageControl+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIProgressView+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UITabBarItem+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIView+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIViewController+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/iOS/UIWebView+Rx.swift delete mode 100644 Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift delete mode 100644 Pods/RxSwift/RxSwift/Deprecated.swift delete mode 100644 Pods/RxSwift/RxSwift/Extensions/String+Rx.swift delete mode 100644 Pods/RxSwift/RxSwift/Observables/Sink.swift delete mode 100644 Pods/RxSwift/RxSwift/Observables/TakeWhile.swift delete mode 100644 Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI-dummy.m delete mode 100644 Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI.debug.xcconfig delete mode 100644 Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI.modulemap delete mode 100644 Pods/Target Support Files/Pods-RRAlamofireRxAPI/Pods-RRAlamofireRxAPI.release.xcconfig create mode 100644 RRAlamofireRxAPI.podspec delete mode 100644 RRAlamofireRxAPI.xcodeproj/project.pbxproj delete mode 100644 RRAlamofireRxAPI/Assets.xcassets/Contents.json delete mode 100644 RRAlamofireRxAPI/Base.lproj/LaunchScreen.storyboard delete mode 100644 RRAlamofireRxAPI/Base.lproj/Main.storyboard rename {RRAlamofireRxAPI => Source}/RRAPIRxManager.swift (51%) create mode 120000 _Pods.xcodeproj diff --git a/.gitignore b/.gitignore index 330d167..41301cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# OS X +.DS_Store + # Xcode # # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore diff --git a/Example/Podfile b/Example/Podfile new file mode 100644 index 0000000..36aa626 --- /dev/null +++ b/Example/Podfile @@ -0,0 +1,14 @@ +use_frameworks! + +platform :ios, '12.0' + +target 'RRAlamofireRxAPI_Example' do + pod 'RRAlamofireRxAPI', :path => '../' + + + target 'RRAlamofireRxAPI_Tests' do + inherit! :search_paths + + + end +end diff --git a/Example/Podfile.lock b/Example/Podfile.lock new file mode 100644 index 0000000..d2c059d --- /dev/null +++ b/Example/Podfile.lock @@ -0,0 +1,38 @@ +PODS: + - Alamofire (4.9.1) + - RRAlamofireRxAPI (0.1.0): + - Alamofire (~> 4.9.1) + - RxCocoa (~> 6.0.0) + - RxRelay (~> 6.0.0) + - RxSwift (~> 6.0.0) + - RxCocoa (6.0.0): + - RxRelay (= 6.0.0) + - RxSwift (= 6.0.0) + - RxRelay (6.0.0): + - RxSwift (= 6.0.0) + - RxSwift (6.0.0) + +DEPENDENCIES: + - RRAlamofireRxAPI (from `../`) + +SPEC REPOS: + trunk: + - Alamofire + - RxCocoa + - RxRelay + - RxSwift + +EXTERNAL SOURCES: + RRAlamofireRxAPI: + :path: "../" + +SPEC CHECKSUMS: + Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18 + RRAlamofireRxAPI: 1caa9b2ffafb1ef8e9228041dc57beb724557d00 + RxCocoa: 3f79328fafa3645b34600f37c31e64c73ae3a80e + RxRelay: 8d593be109c06ea850df027351beba614b012ffb + RxSwift: c14e798c59b9f6e9a2df8fd235602e85cc044295 + +PODFILE CHECKSUM: 293226831758d7491c65f992507c8703b0b8d2d8 + +COCOAPODS: 1.10.1 diff --git a/Pods/Alamofire/LICENSE b/Example/Pods/Alamofire/LICENSE similarity index 100% rename from Pods/Alamofire/LICENSE rename to Example/Pods/Alamofire/LICENSE diff --git a/Pods/Alamofire/README.md b/Example/Pods/Alamofire/README.md similarity index 100% rename from Pods/Alamofire/README.md rename to Example/Pods/Alamofire/README.md diff --git a/Pods/Alamofire/Source/AFError.swift b/Example/Pods/Alamofire/Source/AFError.swift similarity index 100% rename from Pods/Alamofire/Source/AFError.swift rename to Example/Pods/Alamofire/Source/AFError.swift diff --git a/Pods/Alamofire/Source/Alamofire.swift b/Example/Pods/Alamofire/Source/Alamofire.swift similarity index 100% rename from Pods/Alamofire/Source/Alamofire.swift rename to Example/Pods/Alamofire/Source/Alamofire.swift diff --git a/Pods/Alamofire/Source/DispatchQueue+Alamofire.swift b/Example/Pods/Alamofire/Source/DispatchQueue+Alamofire.swift similarity index 100% rename from Pods/Alamofire/Source/DispatchQueue+Alamofire.swift rename to Example/Pods/Alamofire/Source/DispatchQueue+Alamofire.swift diff --git a/Pods/Alamofire/Source/MultipartFormData.swift b/Example/Pods/Alamofire/Source/MultipartFormData.swift similarity index 100% rename from Pods/Alamofire/Source/MultipartFormData.swift rename to Example/Pods/Alamofire/Source/MultipartFormData.swift diff --git a/Pods/Alamofire/Source/NetworkReachabilityManager.swift b/Example/Pods/Alamofire/Source/NetworkReachabilityManager.swift similarity index 100% rename from Pods/Alamofire/Source/NetworkReachabilityManager.swift rename to Example/Pods/Alamofire/Source/NetworkReachabilityManager.swift diff --git a/Pods/Alamofire/Source/Notifications.swift b/Example/Pods/Alamofire/Source/Notifications.swift similarity index 100% rename from Pods/Alamofire/Source/Notifications.swift rename to Example/Pods/Alamofire/Source/Notifications.swift diff --git a/Pods/Alamofire/Source/ParameterEncoding.swift b/Example/Pods/Alamofire/Source/ParameterEncoding.swift similarity index 100% rename from Pods/Alamofire/Source/ParameterEncoding.swift rename to Example/Pods/Alamofire/Source/ParameterEncoding.swift diff --git a/Pods/Alamofire/Source/Request.swift b/Example/Pods/Alamofire/Source/Request.swift similarity index 100% rename from Pods/Alamofire/Source/Request.swift rename to Example/Pods/Alamofire/Source/Request.swift diff --git a/Pods/Alamofire/Source/Response.swift b/Example/Pods/Alamofire/Source/Response.swift similarity index 100% rename from Pods/Alamofire/Source/Response.swift rename to Example/Pods/Alamofire/Source/Response.swift diff --git a/Pods/Alamofire/Source/ResponseSerialization.swift b/Example/Pods/Alamofire/Source/ResponseSerialization.swift similarity index 100% rename from Pods/Alamofire/Source/ResponseSerialization.swift rename to Example/Pods/Alamofire/Source/ResponseSerialization.swift diff --git a/Pods/Alamofire/Source/Result.swift b/Example/Pods/Alamofire/Source/Result.swift similarity index 100% rename from Pods/Alamofire/Source/Result.swift rename to Example/Pods/Alamofire/Source/Result.swift diff --git a/Pods/Alamofire/Source/ServerTrustPolicy.swift b/Example/Pods/Alamofire/Source/ServerTrustPolicy.swift similarity index 100% rename from Pods/Alamofire/Source/ServerTrustPolicy.swift rename to Example/Pods/Alamofire/Source/ServerTrustPolicy.swift diff --git a/Pods/Alamofire/Source/SessionDelegate.swift b/Example/Pods/Alamofire/Source/SessionDelegate.swift similarity index 100% rename from Pods/Alamofire/Source/SessionDelegate.swift rename to Example/Pods/Alamofire/Source/SessionDelegate.swift diff --git a/Pods/Alamofire/Source/SessionManager.swift b/Example/Pods/Alamofire/Source/SessionManager.swift similarity index 100% rename from Pods/Alamofire/Source/SessionManager.swift rename to Example/Pods/Alamofire/Source/SessionManager.swift diff --git a/Pods/Alamofire/Source/TaskDelegate.swift b/Example/Pods/Alamofire/Source/TaskDelegate.swift similarity index 100% rename from Pods/Alamofire/Source/TaskDelegate.swift rename to Example/Pods/Alamofire/Source/TaskDelegate.swift diff --git a/Pods/Alamofire/Source/Timeline.swift b/Example/Pods/Alamofire/Source/Timeline.swift similarity index 100% rename from Pods/Alamofire/Source/Timeline.swift rename to Example/Pods/Alamofire/Source/Timeline.swift diff --git a/Pods/Alamofire/Source/Validation.swift b/Example/Pods/Alamofire/Source/Validation.swift similarity index 100% rename from Pods/Alamofire/Source/Validation.swift rename to Example/Pods/Alamofire/Source/Validation.swift diff --git a/Example/Pods/Local Podspecs/RRAlamofireRxAPI.podspec.json b/Example/Pods/Local Podspecs/RRAlamofireRxAPI.podspec.json new file mode 100644 index 0000000..16c5f99 --- /dev/null +++ b/Example/Pods/Local Podspecs/RRAlamofireRxAPI.podspec.json @@ -0,0 +1,43 @@ +{ + "name": "RRAlamofireRxAPI", + "version": "0.1.0", + "summary": "Elegant rest HTTP Networking request in Swift", + "homepage": "https://github.com/Rahul-Mayani/RRAlamofireRxAPI", + "license": { + "type": "MIT", + "file": "LICENSE" + }, + "authors": { + "Rahul Mayani": "mayani.rahul@gmail.com" + }, + "source": { + "git": "https://github.com/Rahul-Mayani/RRAlamofireRxAPI.git", + "tag": "0.1.0" + }, + "cocoapods_version": ">= 1.10.1", + "platforms": { + "ios": "12.0" + }, + "swift_versions": [ + "5.1", + "5.2", + "5.3" + ], + "static_framework": true, + "dependencies": { + "RxSwift": [ + "~> 6.0.0" + ], + "RxRelay": [ + "~> 6.0.0" + ], + "RxCocoa": [ + "~> 6.0.0" + ], + "Alamofire": [ + "~> 4.9.1" + ] + }, + "source_files": "Source/*.swift", + "swift_version": "5.3" +} diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock new file mode 100644 index 0000000..d2c059d --- /dev/null +++ b/Example/Pods/Manifest.lock @@ -0,0 +1,38 @@ +PODS: + - Alamofire (4.9.1) + - RRAlamofireRxAPI (0.1.0): + - Alamofire (~> 4.9.1) + - RxCocoa (~> 6.0.0) + - RxRelay (~> 6.0.0) + - RxSwift (~> 6.0.0) + - RxCocoa (6.0.0): + - RxRelay (= 6.0.0) + - RxSwift (= 6.0.0) + - RxRelay (6.0.0): + - RxSwift (= 6.0.0) + - RxSwift (6.0.0) + +DEPENDENCIES: + - RRAlamofireRxAPI (from `../`) + +SPEC REPOS: + trunk: + - Alamofire + - RxCocoa + - RxRelay + - RxSwift + +EXTERNAL SOURCES: + RRAlamofireRxAPI: + :path: "../" + +SPEC CHECKSUMS: + Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18 + RRAlamofireRxAPI: 1caa9b2ffafb1ef8e9228041dc57beb724557d00 + RxCocoa: 3f79328fafa3645b34600f37c31e64c73ae3a80e + RxRelay: 8d593be109c06ea850df027351beba614b012ffb + RxSwift: c14e798c59b9f6e9a2df8fd235602e85cc044295 + +PODFILE CHECKSUM: 293226831758d7491c65f992507c8703b0b8d2d8 + +COCOAPODS: 1.10.1 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..f93cf57 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,2786 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 009F1C0E24F856D5E5E7F88A38B99770 /* TakeWithPredicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39C9CD83A4F41884DA60F1FA93DDF382 /* TakeWithPredicate.swift */; }; + 00AAB5DCA4448BB66A90B6F3357D2411 /* UIBarButtonItem+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F823D72123E5A6A2124B50C7EEB1949 /* UIBarButtonItem+Rx.swift */; }; + 01835F419A70FC2A4D42170527FB9C9D /* Sample.swift in Sources */ = {isa = PBXBuildFile; fileRef = D357CA528F40CA868DC9FF67E6FE2492 /* Sample.swift */; }; + 0415D9C1945C8D821409C1716AE54222 /* CompactMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = A25BCFECC7040F4F111FAF698AC44A59 /* CompactMap.swift */; }; + 04515E24776528B9131C423CA20F781F /* NSView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA42F9BEB33F2A917C26318A278A144F /* NSView+Rx.swift */; }; + 05483386F648673DCD95DEF8EF6887FF /* Decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93324C76ECD8D2A77DAB476E9F688FD3 /* Decode.swift */; }; + 05F4D69BD01B21B5C29DC78FB7B3BD5C /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDBDEF15870475C70D3491A413EA7316 /* Debounce.swift */; }; + 090604122313F4AD3D2542D1C8F54FBA /* Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D73DEA8DEDEC817B200CB63CAB2CF6 /* Reactive.swift */; }; + 095B69059B9A728F9953F9845D470F78 /* Observable+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CF2A0900367E7E51BA84A5875775DD4 /* Observable+Bind.swift */; }; + 09690FDA5FDDB37077A3BE2BEA789F8F /* Infallible+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB5B99FB9F0F74A595480E7909F0C62E /* Infallible+Bind.swift */; }; + 0A15FB8D4A8CB0F8F7D9A719CFD2EE13 /* RxPickerViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2565AA27AD2AF1FF9BF1EC0752030A65 /* RxPickerViewDataSourceProxy.swift */; }; + 0A45B5F0AFE1D13B562A5F580AD053F5 /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F24C0410A8C95773F57446A7406DC6F /* Sequence.swift */; }; + 0A5B01655EC936D14DED0301E1FD2C97 /* PrimitiveSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49400254CF3CD2CD9764B9EE6B2A402 /* PrimitiveSequence.swift */; }; + 0BFF6237B8310011288F7B1BB5095E23 /* WithUnretained.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB1A73E57CC80F5981A783B12AD14AA /* WithUnretained.swift */; }; + 0C5E11DE24DAA737704B355F5F2F3426 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EB348CE3CACD71C50B0C6D3146A756F /* ParameterEncoding.swift */; }; + 0E28C6D1C1C58856075C30447189194D /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147B40BEEFD9A0D7D37025648226B261 /* Filter.swift */; }; + 10A624C38B6F96763F14019CBC464F6D /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55D94E8505C5893FF8F0BC5BB4D5535F /* Platform.Linux.swift */; }; + 1158BEBD79C7E326188D5BAA2B7B7A90 /* GroupedObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F1D0EFD393B36ADFB31646E5C0B1CB /* GroupedObservable.swift */; }; + 132E0F619E4338E5D1B27E4C72076B3F /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE0A6602C51DF8D9D3F84C4F2C669EE8 /* Notifications.swift */; }; + 13A5FA665A486158AD4D457459CD231D /* AsyncSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D64B467CA706B8C6E83C60180EF3AD5 /* AsyncSubject.swift */; }; + 13E143A202FF40BFD4CAA9A6321A7D56 /* DistinctUntilChanged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D79C405D3F3CB10455E0A853C0142D /* DistinctUntilChanged.swift */; }; + 1436C5E1A8630C896B63313BF5648C18 /* KVORepresentable+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = B132374C07E018A6C1C49B4D159B3CF1 /* KVORepresentable+Swift.swift */; }; + 153CF151555BC427AA7F4DD8C82DAD27 /* Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334F3E102376018988A23452EF622D11 /* Empty.swift */; }; + 15B7414D75F0BD1F5377AE4CE8084CAC /* Switch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3E559690B41943CE2B419AC30E02EEE /* Switch.swift */; }; + 1703F3AE01434D1BB19D99BA52E4AB78 /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DA4755B04F4BD7EF3D364D25C6239F7 /* Queue.swift */; }; + 1704DA5ED90CD1FAFDA1E3F9D8C55917 /* SharedSequence+Operators+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91927C097B0E5DA69B355C886588437F /* SharedSequence+Operators+arity.swift */; }; + 183A5D55D907122A4E39A6772F33EDE7 /* Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75EEC30A30F239FACEFA60AD6E9ACC45 /* Range.swift */; }; + 18F26F1A9071FE48F8C2B344B52BD3B2 /* ObservableConvertibleType+Infallible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B7A89908D8B57BF28FBFF8CBA9288BB /* ObservableConvertibleType+Infallible.swift */; }; + 1945CD5D63A1C164AEAAA9A33E85571E /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 61A276B594CBEBCE91C27D74C96D3266 /* Alamofire-dummy.m */; }; + 1986B50C74F1697EA43F68335C93CEB3 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20106E5F3C0B65B287BD422532ACB287 /* MultipartFormData.swift */; }; + 1991413A4182DC31BD5E4634290191F8 /* BinaryDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DFA36A6E27AAFCF06D3013EB0D5D8CA /* BinaryDisposable.swift */; }; + 1997CE0F180108AE83BE7DBB5F2BC391 /* PrimitiveSequence+Zip+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 866218B8DB32ADE28B252783A7BF2322 /* PrimitiveSequence+Zip+arity.swift */; }; + 1C1591D2EED0C2E9A1605F620C638AEE /* KVORepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF058F0990B58584AD1C7B33C91FF554 /* KVORepresentable.swift */; }; + 1C353ED28D0C5BC6CBA6D9947196838F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */; }; + 1C3D71822FFC1688FE1F5CA695D759D9 /* SectionedViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A48D6DE020ED5004B49941F99B12A346 /* SectionedViewDataSourceType.swift */; }; + 1C8439C0E7AA3FB41C3CD1361F8F8748 /* RxScrollViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C88C661DD225F73B5FF885C64495485 /* RxScrollViewDelegateProxy.swift */; }; + 1D5664D7BBBE1DD5919D374FF4BF0EB2 /* AsyncLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649A875FC6FE9935D07D96DDAC06FB4B /* AsyncLock.swift */; }; + 1D85615AB2F7C75CB75C678BE3913DB0 /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D0A9168E3E7D85F64C8C54A3016653A /* PriorityQueue.swift */; }; + 1DD1578055E6461FB8C061DB38BF84CA /* RRAlamofireRxAPI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F3D82FF5D6467211D3A902B4FD4B7551 /* RRAlamofireRxAPI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E3F88430DD1144F4CB5F51B60396274 /* AtomicInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C5419FB172272BA12A77C11B500838F /* AtomicInt.swift */; }; + 1F1C7D62A7E293F8C31F0E7694806584 /* Signal+Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3BB1CD1B3BA9383614CD2E82FA49706 /* Signal+Subscription.swift */; }; + 203BD1EF9BE4003D3B6E856A5F2CB325 /* InvocableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 860AFBA5B979AE505D2A32A326418FBF /* InvocableType.swift */; }; + 216D2D35FD4243DDEA2B799167CAF19F /* AsSingle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3572C7B325F8030DC38651B80B9CA5CB /* AsSingle.swift */; }; + 2235D8D8049384E1E1B21D75523FC667 /* HistoricalSchedulerTimeConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0FD2805F8F5AB21F36A65116AE7A852 /* HistoricalSchedulerTimeConverter.swift */; }; + 24317648B2666C762E5D916F7F340BEF /* BehaviorSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F64B2917511EB8617219BE5DC0E9532 /* BehaviorSubject.swift */; }; + 251277934E87DB3F7CB0754A8BA0AB74 /* Binder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5932A72FD31457B98D8FE06561F8181 /* Binder.swift */; }; + 256EE24E5C4527759BBF8D36AE917A4C /* RRAlamofireRxAPI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B99BAA8D31124D07F940968853CFCD99 /* RRAlamofireRxAPI-dummy.m */; }; + 26BE1B9F5C8A46A08AC228AA665CB449 /* SchedulerType+SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E16242DEA9785053FD4B6E48DB0279 /* SchedulerType+SharedSequence.swift */; }; + 28175FF09B3B6D62036F6D756560B2C9 /* InfiniteSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DBB07A683ED35499083C09B308558BD /* InfiniteSequence.swift */; }; + 283CC3D0C38EAA488E825743DB7E4F96 /* ObservableConvertibleType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 815A49079565D76A3F211A5820332A62 /* ObservableConvertibleType.swift */; }; + 28F3CFBBE3D84FA71F0226254DC99FBE /* OperationQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A460D6607081122114CE138C088407 /* OperationQueueScheduler.swift */; }; + 29D91AAED672208B04D9895135EB2B52 /* SwitchIfEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89A52BC27B7D026A9279115A1246F66E /* SwitchIfEmpty.swift */; }; + 2AC2A92FEC7DF77BA419B3EB66FA4B19 /* PublishRelay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1EAE89CE47C4CE086D2819D410AB3D /* PublishRelay.swift */; }; + 2B3D1F78F83DE8C3C9A445A245E5B2AA /* GroupBy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EB36CF0A79DBEBBDE7BB52775BDD150 /* GroupBy.swift */; }; + 2BA901FB78661E802A4E65AD429B2A8A /* UIControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38A45D52D1594E7C4C0499BA1580DFD0 /* UIControl+Rx.swift */; }; + 2C61B040BA6A9A7AE66C4D9BA26D5520 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03F4493AA0FE74495CEBA81C0D4F6B28 /* SessionDelegate.swift */; }; + 2C6CC69968C23C696B23AC3FDAF46CEE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */; }; + 2CD3771D5DE78A4869AFBF767E89E4A4 /* ObservableConvertibleType+Signal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E9C8CEE2FDEA3C4BEDCE2175F1B7FA /* ObservableConvertibleType+Signal.swift */; }; + 2DEB68F3A6AD2743CCBF7AADB54D636E /* RxRelay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A593D1F995F7F512AFDB6312AA4ED8FF /* RxRelay.framework */; }; + 2E083D0029EE041D06859D2EA12B5712 /* Completable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63757339E24BF22D684FB68F14209436 /* Completable.swift */; }; + 2FEA83FEE3F07D5137D32905A700FD51 /* RxMutableBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA5752F0D7047FB9A1738DE48428ACB0 /* RxMutableBox.swift */; }; + 3002810E89EDD3CE90515325689208C0 /* ConcurrentDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70B3330A574A7646B8EAD9501846EEAF /* ConcurrentDispatchQueueScheduler.swift */; }; + 3039CA5745A5652A80BCB0C353A23870 /* CurrentThreadScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0887DC082E47F7704B1362336371843E /* CurrentThreadScheduler.swift */; }; + 32BC7B34CCBBD51D5B518539D020F7F1 /* Materialize.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9E6400C46E029F0A9FDE5473EEB2AA7 /* Materialize.swift */; }; + 3335BB74B9B63AC7C6455DF439F0EDD8 /* CompositeDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E331B4A6FE6F067195AB707F8705431 /* CompositeDisposable.swift */; }; + 347BE157BF59598C1DA6BE6DEC6C79F1 /* _RXObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 6192C72A1ABC38A14666367CB1F7FA00 /* _RXObjCRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 34CE011F943E691C9C8D4FC46D4A66D5 /* Cancelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AAF99AC66E18EA8B948A33967E1CE6F /* Cancelable.swift */; }; + 3571F958A3907B3A806E62D50C2550D4 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2231D72F1160C74E2133DF75BB5FBE4 /* NetworkReachabilityManager.swift */; }; + 365E567C2C8573053B37251E91D77B88 /* Amb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B03DB256AFB61D7445B42C7A004D34B /* Amb.swift */; }; + 385C351EA6B6D1A3F38415AC01F2412C /* SkipWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 218BB497FB7FC333223BF7B238BB59A1 /* SkipWhile.swift */; }; + 3A62B76DD39CC2E6C28EAD1CE9B5BE64 /* RxSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 62A9370547D8628C9B1EFC4A93A32C81 /* RxSwift-dummy.m */; }; + 3BD866729C58458FB0AA08C7513571EC /* SubscriptionDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D8AAEFF4EA15CBA99AEF68696A5929 /* SubscriptionDisposable.swift */; }; + 3C47B6A73A2D53378DEE48683CF91DC1 /* RxCocoa.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2C482249E4C0BC15A761DA3A3B1BA8 /* RxCocoa.swift */; }; + 3C678CB2AC9390ADBF6C64457BCB455C /* RxNavigationControllerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D8C3953A9CD5EF378B3131313B6284 /* RxNavigationControllerDelegateProxy.swift */; }; + 3C6E25D26B0B4D217B1A8746C67F8A01 /* RxPickerViewAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC4CB10E3C8386DF216CA18766130667 /* RxPickerViewAdapter.swift */; }; + 3C70D6514F38377F0708BA44AEB92BEA /* NSObject+Rx+RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 353591DFD0763A74487ABC5AB2D80ABE /* NSObject+Rx+RawRepresentable.swift */; }; + 3D257520943D14B1586A7862FFDAB103 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14A999CEA14A616176F4792BAAE987C5 /* RxSwift.framework */; }; + 3DC27FB5E945C9B99F88C93D7F24953E /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15059BAA598B8DC6F99CCDEFBDBB16D7 /* Zip.swift */; }; + 3E3AA9AB49F180149EB53A8198CB9DC2 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29AE60F6FD2EB6129A9D3CC599F5BF10 /* Bag.swift */; }; + 3E4FA87844382C6D94029BC1C23C79FD /* UITabBarController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81675BD9C86DC302E808B9AA8E9DFFB6 /* UITabBarController+Rx.swift */; }; + 3E50BB3DE0B28C322263D95D708F678C /* UISwitch+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81D886F7D54BD477235EF514108A47E /* UISwitch+Rx.swift */; }; + 3E9F559594FE23B9BF228F0897E218FB /* DisposeBag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8345F7B6AD763344B796FE0D298F1B32 /* DisposeBag.swift */; }; + 3EB138568F408629EE32255F8A085C08 /* UISearchBar+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B30979EE8C7A3FFF6304632D82DD0A /* UISearchBar+Rx.swift */; }; + 40B6383F008CDB52C355B939F568165C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */; }; + 40C477CC1D6A86F4D21D8F0BBFBA6335 /* BehaviorRelay+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A315FEE253EE95D37F8B9FAB2DF6E70 /* BehaviorRelay+Driver.swift */; }; + 434C78F748614068BFF54CB31895F011 /* NSButton+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37400B01223A58E9D960E919B1A6AF59 /* NSButton+Rx.swift */; }; + 44F644E0B2720EA94B8D4C079B1CBF3D /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FD24B6B9D7897D75ABD48A225B947DE /* Queue.swift */; }; + 454349CCA79348F2948556E45CC90B0D /* Dematerialize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39455345DC2CF65645FDA90C7CB11194 /* Dematerialize.swift */; }; + 454A5018BE8582CF930E62777EADF19E /* VirtualTimeScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757C1AA3B31B2C24780F1ADA4B408A85 /* VirtualTimeScheduler.swift */; }; + 45757BC31EA29A3DA500A9D314B400EE /* RetryWhen.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE3E4E72D86D8A1FAC85FEAA366DF95C /* RetryWhen.swift */; }; + 45BD5BC2F24D9336187929AE7BC76E2F /* DispatchQueue+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E77665A9AA213C30E94404968FE397F /* DispatchQueue+Extensions.swift */; }; + 45E5A37E8B9225EA1524A147528D29C3 /* SubjectType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25993E40BB8CDAD075A0E37FEC1D5F8F /* SubjectType.swift */; }; + 46230D0CDAC5F69CCD852B80EA539B38 /* TextInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2DAB7B71F48E0EB42D9012C2E6A2EA /* TextInput.swift */; }; + 4916BED470FA2984B73ADD3EAC93BBA1 /* SynchronizedDisposeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE4D285A0581D6FCDF1A3BBFB26B26B7 /* SynchronizedDisposeType.swift */; }; + 4B1CF7576DC5DD5D357A617BC4C30C7F /* SkipUntil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 902F85342BC8A0BAFF92066A8CDE5B3D /* SkipUntil.swift */; }; + 4CC509E65945E1D63EDBF607CF4B7E28 /* RxCollectionViewDataSourcePrefetchingProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = E61EB3AA8E353BC831CC1E69C63B5292 /* RxCollectionViewDataSourcePrefetchingProxy.swift */; }; + 4DA57DD611B6C50D258DBEDDBDB07405 /* NSObject+Rx+KVORepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE63D583B78F269C609064C4F3B827F0 /* NSObject+Rx+KVORepresentable.swift */; }; + 4E08AA6F3359D812C4A3D390B495BB03 /* RxTabBarControllerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C686F48EEFB8BBDDAD834F0009701E79 /* RxTabBarControllerDelegateProxy.swift */; }; + 4FFCC45167B6258BA67E60C067197418 /* ControlTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9204073CAC5908CAD174758321F46F1 /* ControlTarget.swift */; }; + 50013C33D35EBAF31ACF3A8B3A9A3FB4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */; }; + 5038DF694BF767F128343F5CD19E6FC5 /* Pods-RRAlamofireRxAPI_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BCC2AB5F996634A793D95FDEC5EAE9F /* Pods-RRAlamofireRxAPI_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 50D3D4E2688416C5F122CB4D11DABDD8 /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6906DF2B237D4C06236D9CCB85E8C85 /* Platform.Darwin.swift */; }; + 53791F5E5F07400F92CFDFC89A432305 /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46433D78BE950BD146A77C6B66C79731 /* Validation.swift */; }; + 53EEE62CCD1170E03AB2417ACD30C93F /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C033311DED642F19222B8251F8380A28 /* Timer.swift */; }; + 5411F9BF4CC6BF92C426A88A6E078207 /* UIButton+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCA2C2B5902751CD24CD5A7CEA4F87DF /* UIButton+Rx.swift */; }; + 54534328522B2024908FC55480FDC184 /* SerialDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25F62A5E85F8D0935DB0D6F1BCDB2C4 /* SerialDispatchQueueScheduler.swift */; }; + 554854BF9781E4D3CDAE23BC190FDC2A /* DelaySubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = A35B67708AA0ED5D9E696DED132F1BE5 /* DelaySubscription.swift */; }; + 55FD3032A8F44995BEA268B267316C5A /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD953D814665609D4B820419F3FA088 /* RxTextStorageDelegateProxy.swift */; }; + 560F997AC0B430D4A9B899DC65F473D4 /* _RXObjCRuntime.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BB5C209C3C05CC2A324241613C8ECF /* _RXObjCRuntime.m */; }; + 56C8BD54DF34FCBA431326552D0DE34B /* Just.swift in Sources */ = {isa = PBXBuildFile; fileRef = E08E0E4EE5B86B6FD4EC6FBE07398E31 /* Just.swift */; }; + 5818D168D692518B7EBEBB6EB0DB70AD /* Infallible+Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE34958226AADBC1222B905487891E0F /* Infallible+Operators.swift */; }; + 591B5D1B682A9518D169C734A3ED2C6F /* CombineLatest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921F11DAF1B0702506BEBB68C852B77 /* CombineLatest.swift */; }; + 59F6CBFC67F09E00D54A3CBA13363B0E /* First.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E88697878DDAF643CA9E0A9A596CC5B /* First.swift */; }; + 5A8D83CEC993B78AF527C67499AB8DF5 /* NSControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09528839E10FB01D035CC5392F8B6CAD /* NSControl+Rx.swift */; }; + 5BC18485E6ADBA5307E80A8DA56DD4C5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A26F6EB6C977432DF7DD2E2DA1DA985 /* NSTextStorage+Rx.swift */; }; + 5C92F57E0B2D107615FC893E5A91ACDB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */; }; + 5DC79202E6D54F288DE23B3BC1C0FCD5 /* PublishRelay+Signal.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9A95D52E3E645E12510EAE824FB842 /* PublishRelay+Signal.swift */; }; + 5E1D7DE7A665269CC1F5E3D647561A9C /* UIScrollView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFCF8E0953F2868714230B9591E02098 /* UIScrollView+Rx.swift */; }; + 5E723D89B429AB8D529D6DE63FC51127 /* DispatchQueue+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF966C8AC793E5311C1E1B06FC956137 /* DispatchQueue+Extensions.swift */; }; + 60BF328EA49B1623BC27B69CE2BB2823 /* Lock.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2B275744377AF2C42F20A6AE4224A82 /* Lock.swift */; }; + 628FD06B28AD46909917710ADC6E891E /* Completable+AndThen.swift in Sources */ = {isa = PBXBuildFile; fileRef = B01E429004CC2118D5F437360FE3D579 /* Completable+AndThen.swift */; }; + 62B182BD79E5B7C0D3D00B1AC0317E17 /* Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C359E34D8CF9BA270781CF0AD3E25535 /* Driver.swift */; }; + 62B80766F1DCFDA0F28A21B9C8C874E9 /* Disposables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4545B36169281E376594F226186F12D2 /* Disposables.swift */; }; + 642670FC68A0287D742CF5682D0DDF9B /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BFAD08C802EDFA78E136B8DC654816F /* SwiftSupport.swift */; }; + 647324BC11DB85734A8759A1264D299E /* Infallible+Zip+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 252ECC1A83CCA13C6A7C8EA56461EC93 /* Infallible+Zip+arity.swift */; }; + 64744C911253C3E01461FAD7C935C8D7 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0084B3E1A49DEA57F5FA06EDCF58B4B4 /* Result.swift */; }; + 65721047E0EE885E49C5794961BFBC58 /* RxRelay-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A12618DBDCC300BB063F5E53B881A90 /* RxRelay-dummy.m */; }; + 65E7F430904F3FF61459058541EFE0FF /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27303C28C8063D576AC4D541E0EDA05 /* Bag.swift */; }; + 664E5434D0C2E609489C86592E015B18 /* InvocableScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 117960B63496E603940399CAF93ABDB6 /* InvocableScheduledItem.swift */; }; + 671D1D49134C31AC2F34ABDFE3DD45AD /* NSSlider+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954A2FB2FB6B30104BF2D9C711CE98C0 /* NSSlider+Rx.swift */; }; + 676471C5104390DCE491F1084593227C /* Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17E7B2A549DDF11BBF88445EAFF46E1 /* Debug.swift */; }; + 67E9F210B1578D66EC93F9DFEA11CC78 /* ConnectableObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 924AB5EB3352679C74C2A53B0BDBF978 /* ConnectableObservableType.swift */; }; + 6894442A69C2FB7278CA96415D5D4FBD /* UITableView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82FFE3336E040E0FD4E87BD4A8C9D9E5 /* UITableView+Rx.swift */; }; + 6A99D043DA531E2EF7E04480289C19C8 /* DisposeBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4210F0FA732363276F935A9DEBF762F3 /* DisposeBase.swift */; }; + 6AFEC8C503B3BB35BD85F2F687F1DD3C /* Never.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A3F91D6D64C907592654E4F9C1E5C54 /* Never.swift */; }; + 6B93E2B29F500592655E8C9918C9C021 /* RxTableViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0386473777EDFAD38EC410D199B76529 /* RxTableViewDelegateProxy.swift */; }; + 6BF95A57F3B7A0A05FC31A8C2154C2EE /* NopDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F77F6C7206E161946EB463E4D0C60D /* NopDisposable.swift */; }; + 6D3D1CE047E06149D40FA5D9C7992ED4 /* SingleAsync.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF4D007C67166DD65ECE90F2644C1E89 /* SingleAsync.swift */; }; + 6D99C821E4067ACF85712F2A663636B8 /* NSTextView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED1A756353E17DAE7E935C5CDEE7D609 /* NSTextView+Rx.swift */; }; + 6E408E4B5266025D3EA55749B2C2FE89 /* Infallible+CombineLatest+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEA57BA60BCD86D699057D35360DB517 /* Infallible+CombineLatest+arity.swift */; }; + 6F79955D94071844F224BC3C84149B70 /* ObservableType+PrimitiveSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE005B984272D269BD3EFF7D4EFB9BF9 /* ObservableType+PrimitiveSequence.swift */; }; + 6F905DA32AD7312F1B0DE42527F1E179 /* UISlider+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 358AC9B46E8DEE2431EF9B34A6EAD102 /* UISlider+Rx.swift */; }; + 6FBD8FD115417E82274D48197F606274 /* Buffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C4FD003C63C3AFA1EB684FA0393597B /* Buffer.swift */; }; + 6FC4490C08ADA64E7F0102DD8F9BE003 /* ConcurrentMainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 002B32B8D7F6A8C80741BED931607A42 /* ConcurrentMainScheduler.swift */; }; + 70874A825263F36C1B192208FB45B46D /* ReplayRelay.swift in Sources */ = {isa = PBXBuildFile; fileRef = C796D8F8DC46E2DC93484930422BC1CB /* ReplayRelay.swift */; }; + 718AEE1EF9007D72321039F80C8D8F38 /* RxSearchBarDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACFDB306B6B3C678E511134B43F43335 /* RxSearchBarDelegateProxy.swift */; }; + 71E0846063C1BC79F5E7A4BAAC58FBB7 /* RxTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = C34DE99EC1E1D6A31D4FC3C192192641 /* RxTarget.swift */; }; + 742500008E3906411A1EEF6C8043E4C7 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2998AE78DEF02935DB1EDAACAB8168BE /* Utils.swift */; }; + 7447855952F65EF8CDF6EACCDEB2F7D1 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C1D4AF83BBC2BC2AE911CF3916F9BD /* Errors.swift */; }; + 74E8BCE952C526D98295532F126F2E03 /* RxTextViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CDA72C59E2C6FFADBE82E37CCD88E95 /* RxTextViewDelegateProxy.swift */; }; + 752C71F1F3C8B081498B1C91786DE5C4 /* Pods-RRAlamofireRxAPI_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FFD893D647683A7ABB7D79AFD5302A04 /* Pods-RRAlamofireRxAPI_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7536FCE8917787B042FD69B9500A1B65 /* RxCocoa-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 26AF50B03B63887816299B8AF1E553EC /* RxCocoa-dummy.m */; }; + 7538A8FF154A0B9F188386FA7FE6E4E6 /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B07A331BDBE2D6154D45D23A876094C7 /* ObservableType+Extensions.swift */; }; + 757B684D3826D49A4647DFE6BDE29415 /* RecursiveLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2042B39D11D71B9D00E4608B83CF260B /* RecursiveLock.swift */; }; + 757F55A823C56B411AE3F18B1001ED49 /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 341E0F8B3A659221DC7EC0C49AC2B98D /* Platform.Darwin.swift */; }; + 76CC44C3D4F2095169B796993B32ADA6 /* ScheduledItemType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A693C5E5BBE2F9AAC8A3EE1BE28FF0 /* ScheduledItemType.swift */; }; + 77C7E71ECD7C1EC0B4009082DBDF9719 /* Map.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A730CFAFF455BDD0236C86453797E49 /* Map.swift */; }; + 786C793B8134D796E8C6293B76D4682A /* AsMaybe.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD0BEFBC253FC360FF0563C11F6F7DEA /* AsMaybe.swift */; }; + 7965CBF3AF537567A446F7DE72413B59 /* RxCocoaObjCRuntimeError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31BA528D9AD154F8108D55573412BB53 /* RxCocoaObjCRuntimeError+Extensions.swift */; }; + 79F51075AFE0C407CBF9E4EBB36C0D7D /* RxCocoa-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CA62BF656D2C53390FCF4F9AFE2FD357 /* RxCocoa-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A582A1EAB5F44B8106292E1B2E9DFAC /* Timeout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B76266187B6FBD26BE45A478AB59AD5 /* Timeout.swift */; }; + 7A7995625F3C94658D7A10B77420CD22 /* DispatchQueueConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4CDAC26E5E0AABEFCFB9B6EE71197EA /* DispatchQueueConfiguration.swift */; }; + 7AC49F96F0BA23A17F600BE150AFEDA1 /* RxSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 99A8316EAEE2B14E288921F5DBEC47B8 /* RxSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C0FE7ADC958476BF27EDEB2E80C706A /* RecursiveLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 760F1D6451B5BE052B6C8960719B1D5C /* RecursiveLock.swift */; }; + 7CC24988C721BCA9060BAC74EEA11EB0 /* WithLatestFrom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C766557DF4CC556D8A1D55815210AD /* WithLatestFrom.swift */; }; + 7CE6291BAA453893F4740B4CDAD2DC4A /* Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBF9F7D9AFFE8377D9B20798E73A7026 /* Window.swift */; }; + 7EB416AE20D75C8F24F0359353C7DB06 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14A999CEA14A616176F4792BAAE987C5 /* RxSwift.framework */; }; + 805B482AED61D5A3BFA1B971AFE5DA77 /* ControlProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C4ED0C96D6BDF436D526068E6EDC12D /* ControlProperty.swift */; }; + 816B74FF36A8B431A3E814EFBC406B4E /* RxCocoaRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 11281E30E47BB45F0E67638CEF1DC2E1 /* RxCocoaRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81C646C1FCE8AF335A9CB84A472793C9 /* Concat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4B53D84C76266B9A041EB250E2BAD91 /* Concat.swift */; }; + 83956E20859CDBBE7BC38ABADE0170FB /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B297D98097A16A541FAFB833934B5C82 /* AFError.swift */; }; + 864AAF953406A0BA12BA27FEE10830D0 /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F5F3E2188C0AED0E87BF8B735ACA4E /* Platform.Linux.swift */; }; + 866168885B194C363D14A3B22F8CF4AA /* _RXDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A109F2D74C62A0E673D797CABF504FC /* _RXDelegateProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87083FBC1A0087302A9A22749D3DFD51 /* Multicast.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7D9405FF040B121629D7F0257633BD1 /* Multicast.swift */; }; + 8929FBF911EB501F52894C33B6820CA4 /* ScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15CDF4BB6A7E02D621803DDE13E767AF /* ScheduledItem.swift */; }; + 8A66E36359BD31E73B954E232863E71E /* UIStepper+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55F087ADE0D999055129AE6ED6B47506 /* UIStepper+Rx.swift */; }; + 8AB26D974E3D69FE8ADEE569BD143A97 /* RecursiveScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81836D76961454B3758DD116C8CB18D2 /* RecursiveScheduler.swift */; }; + 8ACF4DB6172B9FAA7AD70910AFB82C4B /* RxTabBarDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8E9CF8C242FD3A4D7CFF7ECAE42AE34 /* RxTabBarDelegateProxy.swift */; }; + 8B14E105F333660C0B9F3FEFA32C2F75 /* ItemEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEC32E754607912FA531A7A374717E44 /* ItemEvents.swift */; }; + 8DB6C454834FCF857EDF23A4E628A923 /* _RXDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 88CDDA5CCE8CFF9CAB5811A8EB02B3F6 /* _RXDelegateProxy.m */; }; + 8E5CD259ECFF56909534D790C6C5CDE8 /* ControlEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5067F995C125ACC36BECB1058423F4C /* ControlEvent.swift */; }; + 8E75D720AD3DFEC5B3041A55FDE5666D /* InfiniteSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C9397E7524F2FCD13E24E21E07EEC2 /* InfiniteSequence.swift */; }; + 8FA12ED8590B554D7E88689B5D9D2C41 /* SchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 578FB1174A551BC18EDB6DFAF8F44D21 /* SchedulerType.swift */; }; + 901955C0F40C705976F99E937E8C98C8 /* Deferred.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EBFC416B1AFDBAF54CB657770D5D0C5 /* Deferred.swift */; }; + 931BBB8230A25161D5C37528A8F9FECF /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83FF6FD16580164BCDF295B6BA911BF5 /* SessionManager.swift */; }; + 933FDA5970AA525D6CB92BFEBA2BAB4A /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1D039C04088FF486EC34F5F3C6CF7F6 /* Timeline.swift */; }; + 935A61445D0B5BB6672733FB910D3CF4 /* Observable+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54FC1FBDAB623FEDE1C333502F465598 /* Observable+Bind.swift */; }; + 95CB68E681E8904BDEC2F9BCDA7C2C34 /* Maybe.swift in Sources */ = {isa = PBXBuildFile; fileRef = C07A658B0C114245886C62DA42BCEE99 /* Maybe.swift */; }; + 960466E05DD1B9ED4E67639B3D1CB882 /* ObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A15D7E5A307D31EF687E09D2A4335BA7 /* ObservableType.swift */; }; + 97A2A8B3D8F99D97F5963311A8030636 /* StartWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 486EB92566228EC43FED66966AAAF5F7 /* StartWith.swift */; }; + 97FC505E15B3A42EEE4A91B862BA4CE6 /* RxRelay-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C989F0E9BCEDAB474B38401835728C4 /* RxRelay-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 986DC41A58CF82CDC8C7C125A5A7AB54 /* Scan.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F62E18F3BFF6DC296DF0E5311B6FFA /* Scan.swift */; }; + 988BB95B94E6B8D9305E5C7335C9560A /* ScheduledDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70371B2593732BBBED56F609E2087C15 /* ScheduledDisposable.swift */; }; + 98A929C8E9012AB167672714FFD2113C /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5000ECE1FE664974E606EE6BE7812D1D /* Request.swift */; }; + 994BF7CDA744984D935FA13D8BFEF896 /* _RXKVOObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 1842F4BDA22D55C2ED44EA52A420D368 /* _RXKVOObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 998A95E29B6835A2625EAC4DD606F127 /* RxCollectionViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3CE35307E9AD045F7B6F30DA37309B4 /* RxCollectionViewDataSourceType.swift */; }; + 9A1D82079B8395277A9B203231E03225 /* Driver+Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86B93B248FA1D25807AC3A356C8F7 /* Driver+Subscription.swift */; }; + 9BD602B18383D0B71FDACF2A12CD0B0A /* ShareReplayScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56B220DC41ED06A74849CF7723396E06 /* ShareReplayScope.swift */; }; + 9C6DBA40ECBDC11DA1398730134CEEFC /* Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFFC63D28579F3571A659267FAC15419 /* Rx.swift */; }; + 9D169AFC6823EE2CF540D87C7E13312F /* HistoricalScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2A5BE93D5F8ECFDCF17EC4E572DBEB7 /* HistoricalScheduler.swift */; }; + 9D6095CB1FBCD1706CEBA38369973EDA /* Infallible+Create.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7C1E06CCC637A5A582C7A4B4361051F /* Infallible+Create.swift */; }; + 9DE01E6629A0B7A2DC47EDB39EE2E4EA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */; }; + A07F8AF3AFD94AA09B7D1ACBD2778706 /* _RX.h in Headers */ = {isa = PBXBuildFile; fileRef = AFDE891551FF6E2BD5BB1A852A79DEEF /* _RX.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3899F9012500139E7A652F0D5BBEEA9 /* PriorityQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC7E5978FF43F0A75A35575A1C8D0A46 /* PriorityQueue.swift */; }; + A648A3BD482C5A3FD0EE2F832009531B /* SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BC9CA2E8267FE724C78D1BF1679897B /* SharedSequence.swift */; }; + A699C012069CA5053DF42C3C35F9986A /* SingleAssignmentDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEAFD51D17A1C5FF63D108389E84EBE3 /* SingleAssignmentDisposable.swift */; }; + A7199A048EAB3A747CF99EFF4A0C86A9 /* Do.swift in Sources */ = {isa = PBXBuildFile; fileRef = 094CE3E277E858E843C13B101C4DB489 /* Do.swift */; }; + A71FA378095853219EBB00E2961E163C /* Reduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B3E7DDA0E6D4D73CE5FB8847BC1EFFD /* Reduce.swift */; }; + A7C869CA017B2628758E50A3C44F9636 /* PublishSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A31362AE4057E4DB7561B2E247AF2C /* PublishSubject.swift */; }; + A81EE7B191C8B591D5EBEFC4EBF58137 /* SharedSequence+Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C7D6F75090AC70304C2C6259C924BE1 /* SharedSequence+Operators.swift */; }; + A8650E120F3A0AD3B56F1CE9E341A9E9 /* SynchronizedOnType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E44E755FFE959255ED18FEF4F315E3D1 /* SynchronizedOnType.swift */; }; + A93DDF0131DB81A9E11F572EB2F5FA59 /* Create.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3270F9C706BBB358402A3293BAE1924 /* Create.swift */; }; + AAC06D0F40146B9EFAA7D73DBA094287 /* UISegmentedControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678F1754A58C490086C64F42B13DBDCA /* UISegmentedControl+Rx.swift */; }; + ABF8854F8142B6C51B068620F4D9EF3F /* UIApplication+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD04DA067054384D87D98C09E4AFF343 /* UIApplication+Rx.swift */; }; + AC62AE38C544A6F572F499B52B5A5A3A /* ControlProperty+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 674A8133B681DEB5AD47861C5AFA52A7 /* ControlProperty+Driver.swift */; }; + AC9728E5B292EEB3A7DA7D2A54F8439B /* RefCountDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7108E198B791465D50E0683CF1141B86 /* RefCountDisposable.swift */; }; + AD535A8DD4AAE38189F87C31D4050C00 /* Using.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9F63038D9B456CEBB9C1FEBA8559D78 /* Using.swift */; }; + AE7BA69337EBE2529C14DB3F49B227BC /* RxTableViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9222385FF28D891C1990E02655EE7E /* RxTableViewDataSourceProxy.swift */; }; + AEFBAE2DE9AC95C3D4B0DFE56FD64B3D /* UITabBar+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B0244F045E455385FB9792B86F6D391 /* UITabBar+Rx.swift */; }; + AF9DADFA08BD61267AFB3AD464E5B24B /* AnonymousObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7273D8A58607F6E924E7CE999078E4EE /* AnonymousObserver.swift */; }; + AFC64B1097F7355FF423D6A73E9C7210 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FBBCCEF4C0861B24A14605E09F13E09 /* TaskDelegate.swift */; }; + B037E90C8334DC1ADCBA150D4AFCBC7D /* RxPickerViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF6173972A0896CC90AC1F736A7FA9F6 /* RxPickerViewDataSourceType.swift */; }; + B1399E8F053B11FFD99BF697C120F6DC /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47FCD864073533646375F3B45121794F /* Disposable.swift */; }; + B215008914BF1325668EB3793D0F0AF4 /* Pods-RRAlamofireRxAPI_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 45AACED65B98397576B882833D154470 /* Pods-RRAlamofireRxAPI_Tests-dummy.m */; }; + B27AA5C52504F753072D53B6356D1FA8 /* AnyObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8B28490A7384E5A3A16A6098F5693 /* AnyObserver.swift */; }; + B2B0DD5F2E33F1E6A56B3201D3F19461 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2982030FF1EF222974B01E0C9D68AA4 /* Error.swift */; }; + B35B8EF98368E9E090EA52A1BAC3171E /* ToArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D90E5F7FB4CAB81EB1A3A0DD4194527 /* ToArray.swift */; }; + B4F0D5637889355EF5BE99E67A98A8AC /* LockOwnerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84739D4197F813F38B6653E7283A3FC2 /* LockOwnerType.swift */; }; + B4F648DDDEAEA3CF6D770D445AA12275 /* RxCollectionViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A59C4DED4E9DC3EDF1BD8755F1A18F7 /* RxCollectionViewDelegateProxy.swift */; }; + B5006C885206A8AD3092E1D3972DB452 /* NSTextField+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7748003DE32BC1513F34FF67999AAE63 /* NSTextField+Rx.swift */; }; + B53F84DE5325248F4AB81FAC5B6A6FDA /* Take.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A354E1EC51F0FA666C107044C65FFE /* Take.swift */; }; + B6D671EBB45CF2C33442923D9C94F920 /* RxCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 5327D44D0310315A6A64E2D1018AD678 /* RxCocoa.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6F4E438863029EA77CC6CF08991A6A2 /* RxCollectionViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 975109020306FE2A8295BB64E141EDCD /* RxCollectionViewDataSourceProxy.swift */; }; + B72183215CFC37153D64DCD8D8BC519A /* Enumerated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F1C32E539A269DB8CBEB4F40B5BE200 /* Enumerated.swift */; }; + B7862C916CBE8190473B72EFC4818357 /* RxTableViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32A9D37A68A0D32AA5FCD04825FA23E /* RxTableViewDataSourceType.swift */; }; + B78B657FD9EB5122E3E37A94583B0305 /* RxCollectionViewReactiveArrayDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C899DEA9078C875397DF3B4E7679FF92 /* RxCollectionViewReactiveArrayDataSource.swift */; }; + BB3F4032E7AC9E644E16A896BD508D12 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62102C57B96F32CC92298EFAD24508FB /* Observable.swift */; }; + BC0FE8B207C369B90F16A21F53C4AE56 /* ObservableConvertibleType+SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC9E06356BA2D0C4D0D16AB82C56CF21 /* ObservableConvertibleType+SharedSequence.swift */; }; + BD4417BEBE44A9FCE7F531662181D385 /* ElementAt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3920B4EA8C8704B591326F3369F79E3A /* ElementAt.swift */; }; + BD53169A6403511F4018A88BB28C1E25 /* Skip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92A42A36AAEF296D549075AB1C21F03B /* Skip.swift */; }; + BEE6B677416CA71C981D1D3F60B18C96 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1612FC132064FE7CBE0582653297AF83 /* Alamofire.swift */; }; + C067E4C93AD0FE5DC1534F3077ACB86C /* Single.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6FD7E6A63297A50A06D3EBFBA5E8C9B /* Single.swift */; }; + C1C62AF88906F8D610FE8E2BD4389843 /* _RXKVOObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = EDD8CB965C10D5E33E8B6A9C2D2CB6F7 /* _RXKVOObserver.m */; }; + C1D5F02F0EDB47E575D572563D685CB5 /* KVORepresentable+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 265218B19B275816B9C6AB865ED8E22E /* KVORepresentable+CoreGraphics.swift */; }; + C25AF571EE6E214782B0DF77676E7BB8 /* Repeat.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4CC7FD0F42527090B229EC67CDFC893 /* Repeat.swift */; }; + C2F99FD565065C6AD37EBA03D5D6E53F /* Generate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B69AD27E7A5604BFA9099D5845A99D7 /* Generate.swift */; }; + C36CBDE4B8C5C0A839EAB06A3F75FA05 /* RxPickerViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5227A0B68477A5DE29DA7413114655F /* RxPickerViewDelegateProxy.swift */; }; + C41177774D04F2C6062740F24C3E0188 /* Signal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AF06012E135F6A0ED1F87985A2C5295 /* Signal.swift */; }; + C45E3DA05F3A91EBB939E9BA32FBC2D8 /* VirtualTimeConverterType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B16A1DD65A5849955E6CEEC1BE372DAE /* VirtualTimeConverterType.swift */; }; + C548B3FBD98BE96F6D201E9B91C3931A /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1281A01B1D18A3CFC62D2E8C6D84CC50 /* Event.swift */; }; + C63C7EA4AD7A25BB73D18CAC961CFAE8 /* RxTableViewReactiveArrayDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = F423D93CECEE5265CFDDF182E4F484B1 /* RxTableViewReactiveArrayDataSource.swift */; }; + C7DCF8336678A5492FCDD7F83196755B /* ControlEvent+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31B5A4436EEB323A178EC0AFB14371E5 /* ControlEvent+Driver.swift */; }; + C85C71BC1E15196F85001F35CABFBB1E /* MainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1BCFDA7FB0064C76C2DF8C0788CDDF5 /* MainScheduler.swift */; }; + C92FEA124183684ECA001C2C0BE138E1 /* RxTableViewDataSourcePrefetchingProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7A4590E795CC6C113448D0D90035A4 /* RxTableViewDataSourcePrefetchingProxy.swift */; }; + CB09D37E42AEF6566651730B1979254F /* RxSearchControllerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110A8DDFE97030E9559694DC864D9983 /* RxSearchControllerDelegateProxy.swift */; }; + CDD440BC3DFFE89AE9297CB1E8CA65E0 /* AddRef.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BE962803E463391AC19DEF993548CF2 /* AddRef.swift */; }; + CFCEBDD73AE1CA97186F9E1B37A8ABE4 /* UINavigationController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4834D801D8AF01D06789949CF8F4BFA /* UINavigationController+Rx.swift */; }; + D3D8C379C6E4FB487E5ABD6800AD7B7E /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96FFF9F1C2CBDFBB419536DF811009E8 /* DispatchQueue+Alamofire.swift */; }; + D527DE71ADE4F958B6FC8ACE582B193C /* DelegateProxyType.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8123C40BE81B4A256A74EA09A747017 /* DelegateProxyType.swift */; }; + D65C254F5ABF2CB5ECEE50FE8F8E1A80 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBFBF72F9F724CA4B7D71047B68C005E /* Response.swift */; }; + D81406EC513429CDEF733F82756934AA /* Sink.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDDCD6AB0CEECCB3AB43531DCE5CE251 /* Sink.swift */; }; + D900B89D68B6629F92BE0EB9EBEAF5A3 /* URLSession+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6329E2063F30B3FE225CADABE78FF0B4 /* URLSession+Rx.swift */; }; + DC0D26A69CA0486CC38B6B1C5473D7C7 /* ObserverBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77F446123673774E63E426337B6A4121 /* ObserverBase.swift */; }; + DC9B615506FCBB48ED6CC585D10F4EF6 /* Zip+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD32A46B988746BAC09820C1028BDFA6 /* Zip+arity.swift */; }; + DDF8830F791161C2AB709B1BE351EC09 /* Bag+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E213015BD7AA2992413DC68867A614D /* Bag+Rx.swift */; }; + DE13DED670A430ABE9C63A030BB5A581 /* UITextField+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CCB86D623E86939D437FCABBC4899DF /* UITextField+Rx.swift */; }; + DE680E39FA47FCDB81E5838B1D4BC21B /* NotificationCenter+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B5D90315E12022B35BFB5CFCF2304A /* NotificationCenter+Rx.swift */; }; + DFA7BBB6459803339FEBED3FFEAFE210 /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6B3D48D2AF3E0D6EEEF92ED72143262 /* TakeLast.swift */; }; + E2046856C23D6D62596BC59F270D8E4D /* Date+Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C3D8C74184795E6C0207138DF9FAD /* Date+Dispatch.swift */; }; + E2D6BDEAFDB2D7574DD36F197B6BE035 /* AnonymousDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E27AA1530866875ED2E80B00172863E /* AnonymousDisposable.swift */; }; + E2DE3BBDC31BAFE10D25D154F99D1A64 /* DefaultIfEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2C8891B74150C396DDDF13935ADC26B /* DefaultIfEmpty.swift */; }; + E2E3A9D0A0C820BF4443B9EA67CDA7F4 /* Infallible.swift in Sources */ = {isa = PBXBuildFile; fileRef = C372A4AEEEAF8C3C8DD1BDDEDAE673E8 /* Infallible.swift */; }; + E35ACC41925F53F6E848E59A568FBA3C /* ControlEvent+Signal.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC9B4275875E49B6503123FC6D519C1 /* ControlEvent+Signal.swift */; }; + E3747EC31FCCA97D75A81FC700CF7E24 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8AF5C61F779BFE6FF524F74FC6A5928 /* ResponseSerialization.swift */; }; + E42BC3F9EFA5262293D7FC6360877251 /* CombineLatest+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6BE792B8329AB4548F2E6057C43CCC2 /* CombineLatest+arity.swift */; }; + E4ADEFCFADA81C3420F8A47DDB9409FC /* UIDatePicker+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4844D973E858D2C93E9BDCB0031BC85 /* UIDatePicker+Rx.swift */; }; + E5352B42726CF6E1987F573E13028570 /* SynchronizedUnsubscribeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C15BE876B307C95094D06A23B81C8B4 /* SynchronizedUnsubscribeType.swift */; }; + E62709E00107FED31B06BF0ED6C5F730 /* SchedulerServices+Emulation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57B9339F4303B39D0D7E313E37848163 /* SchedulerServices+Emulation.swift */; }; + E6ABB8570E064374E7419DACCFE75484 /* Zip+Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76CEDEC3592CD332F4DE1AFC8944BB71 /* Zip+Collection.swift */; }; + E7DE33E0746DC97B6B450B2F98032DB0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */; }; + E8E9BCDE844E06A043A75937BA15A2B3 /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46A000F55431CC4B86108F3B3861F281 /* NSObject+Rx.swift */; }; + E9A1376539A9AB0A07A28FBF721CD432 /* _RX.m in Sources */ = {isa = PBXBuildFile; fileRef = 3815C0670132B4813F089FE5570755C5 /* _RX.m */; }; + E9CA84978D50BCDC31A0F5E6EE44C2B5 /* SubscribeOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AEF46A7A73460A857CFF9FF0A8032A /* SubscribeOn.swift */; }; + EB63FFA803290A2D93CDAE25F66EDDFD /* Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCA550874A6FEB8F96889FC7CC6704EC /* Catch.swift */; }; + EC15F7067294460CB669B07527D2F293 /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8CC5F600E4D11B598B502912D778C5 /* ImmediateSchedulerType.swift */; }; + EDC1471A35D81E8E4FF81E7AD7F67EE6 /* DelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72039EB659556D0891DE5238E9F0A456 /* DelegateProxy.swift */; }; + EDD095451E0FF49606D7B421C876C75C /* Delay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BA88189B95E974804E08952B6FD0A5B /* Delay.swift */; }; + EE1373FFC3574E17D0832A4D25C6C306 /* UICollectionView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = D535A5B58CF5B8D34B1051D482873C6E /* UICollectionView+Rx.swift */; }; + EE7DC6383738892EB44C22DFE0C07EE5 /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BF441A91CB2F3177CE33A10125FC4C8 /* UIActivityIndicatorView+Rx.swift */; }; + EE91E9F72BFD988F206B266A74753B98 /* Producer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FBDE1B39902E5B28FC3162AA3C77F48 /* Producer.swift */; }; + F0D32AF4B5A072FBA97CDE3A8C0E8137 /* ObservableConvertibleType+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB062F5FA138B9BB2C0F1A277D706BD /* ObservableConvertibleType+Driver.swift */; }; + F117A18EA22CD2E150C2FFEA59501256 /* CombineLatest+Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C035A21112F20E86674EF314C54FE89C /* CombineLatest+Collection.swift */; }; + F13F2AA7F2E6D95A181CAB99B900D531 /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BBF67F25E7F426FA79E18E3206CAC82 /* ServerTrustPolicy.swift */; }; + F2116B6990F50F21A6FFEA4C54D32D18 /* UIGestureRecognizer+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD2CD7A52A861D742B3E6302BA594BBC /* UIGestureRecognizer+Rx.swift */; }; + F3D21DD35FC21E91AA960E1CB8C83354 /* BehaviorRelay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F1B60AEADAF4DCD399241CD33A8E8C5 /* BehaviorRelay.swift */; }; + F3E6445D3B8C8787462CDB726049D5B6 /* RRAPIRxManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB85A7FC4AA28B68BB9AA8B25001DD59 /* RRAPIRxManager.swift */; }; + F4D30B95CA109C7CC19106EAE439F540 /* Merge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8758841F3B4C072CE8086A40A4320EF2 /* Merge.swift */; }; + F4EBEDF749F7E4532A8D55C3AA50986C /* BooleanDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 782540E77B3CE26F3BB7EA33423B1BBB /* BooleanDisposable.swift */; }; + F6E340C2C5C99942D19706357B131E7E /* UITextView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3560071CF05E5BB984881762EBCD1568 /* UITextView+Rx.swift */; }; + F6F5F56F7934E9197ADE610B3F765E7E /* UIPickerView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = D295B5B6857CAE57EF575371DEEC71AA /* UIPickerView+Rx.swift */; }; + F7B74645E07C39771156A1FA413B98D4 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ED372D31861D13CA9B01475D5E855768 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7EBE6683C79940C60070497702BCCC4 /* Optional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A337FF7903E6D5BEC9B6F6FA2090F0 /* Optional.swift */; }; + F85FB43672F0483E06839513B452AA72 /* RxWKNavigationDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3DA63DE1C070A6C26F074315A518ED2 /* RxWKNavigationDelegateProxy.swift */; }; + F893C576CBD2B2574D9E23C3FCA81A1D /* ReplaySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73F2CB48A239D05A871466A4C1B875FC /* ReplaySubject.swift */; }; + F8D9295E2D5194199F0E9D4C3C9ECB54 /* UISearchController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A47D23133042F66FA2A9FCC8F46837DD /* UISearchController+Rx.swift */; }; + F95F5F75C994A6DA49DA745D019F736D /* Throttle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522A8F3261E1AEA4E54AC0949D762674 /* Throttle.swift */; }; + F9AD03B7B5927C7AE78CCD2DECDACDD0 /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC3FD8BF7BC5C66DC73EB3C13730295 /* SerialDisposable.swift */; }; + FAC906A1150059D68308785D6B16547A /* UIRefreshControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F729E640D091989C0924E0D084DF526 /* UIRefreshControl+Rx.swift */; }; + FACFE253FD888CD2799313B983E54F3E /* WKWebView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = D105DD819619BA7E6BC2924F9BAE39F6 /* WKWebView+Rx.swift */; }; + FAD41E5F00841DE636899D946E7A38AC /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 526DD19B47621DC43D57EB64D8664F1B /* ObserverType.swift */; }; + FAE194F809DE2513B5FF57AA9BADB5F3 /* ObserveOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38F900B66F23A85BA7E115C9615E5E7 /* ObserveOn.swift */; }; + FC955DF30ACC691FBCBB588649152630 /* Pods-RRAlamofireRxAPI_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F3E2F16D7C1C5D2067B9B2C0A147E32 /* Pods-RRAlamofireRxAPI_Example-dummy.m */; }; + FF2F8F3E3BD1CEDAA0D044491E1CF0DC /* TailRecursiveSink.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFFFB0437F463AA38FAE70AB0FDEEF4B /* TailRecursiveSink.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 009FD4AC4F74499CB60443D8A6885126 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; + remoteInfo = Alamofire; + }; + 0B52AAD4DEEBE18A1C45E9E779E4DD6A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EA9EA43B3B503823EE36C60D9C8A865F; + remoteInfo = RxSwift; + }; + 1F2F57725019A15EE7BC9FE51BB9D255 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4622BFEF3DC16E8BD15EEFC30D4D0084; + remoteInfo = RxRelay; + }; + 27A787DAF5CE7583675A69E2EB9C4AE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7AD0C6DCDC9CEC8A3C7C10C7FEE07BE6; + remoteInfo = RxCocoa; + }; + 35D9008A67925F6C229BC1D4327D9343 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EA9EA43B3B503823EE36C60D9C8A865F; + remoteInfo = RxSwift; + }; + 3DD151875006CB301B51CAD024451747 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4622BFEF3DC16E8BD15EEFC30D4D0084; + remoteInfo = RxRelay; + }; + 59CE66945E07C5F8FA253C1030465594 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EA9EA43B3B503823EE36C60D9C8A865F; + remoteInfo = RxSwift; + }; + 5C0C279510D3A4A3C0E4B6C68DB6436C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EA9EA43B3B503823EE36C60D9C8A865F; + remoteInfo = RxSwift; + }; + 74FDD590713B70C1EAD163DE1241B78C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; + remoteInfo = Alamofire; + }; + D47641FB29DD04E32CF6BF64C7CB2DE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CEED4C2A3FBC3CC434488DF40F1315DC; + remoteInfo = RRAlamofireRxAPI; + }; + D69ED51D0447BAAC9CE4C7F8C134653F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4622BFEF3DC16E8BD15EEFC30D4D0084; + remoteInfo = RxRelay; + }; + F450080A0869E5687FA829640CCBE2CC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7AD0C6DCDC9CEC8A3C7C10C7FEE07BE6; + remoteInfo = RxCocoa; + }; + FDD15AB6C9007A4685C091B5363D9F38 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 25307BC393E3D6D7B9A22D115C7ACCE8; + remoteInfo = "Pods-RRAlamofireRxAPI_Example"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 002B32B8D7F6A8C80741BED931607A42 /* ConcurrentMainScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConcurrentMainScheduler.swift; path = RxSwift/Schedulers/ConcurrentMainScheduler.swift; sourceTree = ""; }; + 0084B3E1A49DEA57F5FA06EDCF58B4B4 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = ""; }; + 01F1D0EFD393B36ADFB31646E5C0B1CB /* GroupedObservable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GroupedObservable.swift; path = RxSwift/GroupedObservable.swift; sourceTree = ""; }; + 0386473777EDFAD38EC410D199B76529 /* RxTableViewDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTableViewDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift; sourceTree = ""; }; + 03F4493AA0FE74495CEBA81C0D4F6B28 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; + 04E86B93B248FA1D25807AC3A356C8F7 /* Driver+Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Driver+Subscription.swift"; path = "RxCocoa/Traits/Driver/Driver+Subscription.swift"; sourceTree = ""; }; + 0887DC082E47F7704B1362336371843E /* CurrentThreadScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CurrentThreadScheduler.swift; path = RxSwift/Schedulers/CurrentThreadScheduler.swift; sourceTree = ""; }; + 08D79C405D3F3CB10455E0A853C0142D /* DistinctUntilChanged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DistinctUntilChanged.swift; path = RxSwift/Observables/DistinctUntilChanged.swift; sourceTree = ""; }; + 08F8B28490A7384E5A3A16A6098F5693 /* AnyObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyObserver.swift; path = RxSwift/AnyObserver.swift; sourceTree = ""; }; + 094CE3E277E858E843C13B101C4DB489 /* Do.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Do.swift; path = RxSwift/Observables/Do.swift; sourceTree = ""; }; + 09528839E10FB01D035CC5392F8B6CAD /* NSControl+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSControl+Rx.swift"; path = "RxCocoa/macOS/NSControl+Rx.swift"; sourceTree = ""; }; + 0956F2EC69AD7BAB790F4E11988C51C5 /* Pods-RRAlamofireRxAPI_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-RRAlamofireRxAPI_Example-acknowledgements.markdown"; sourceTree = ""; }; + 0A12618DBDCC300BB063F5E53B881A90 /* RxRelay-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RxRelay-dummy.m"; sourceTree = ""; }; + 0BFAD08C802EDFA78E136B8DC654816F /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = RxSwift/SwiftSupport/SwiftSupport.swift; sourceTree = ""; }; + 0C8CC5F600E4D11B598B502912D778C5 /* ImmediateSchedulerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImmediateSchedulerType.swift; path = RxSwift/ImmediateSchedulerType.swift; sourceTree = ""; }; + 0CCB86D623E86939D437FCABBC4899DF /* UITextField+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITextField+Rx.swift"; path = "RxCocoa/iOS/UITextField+Rx.swift"; sourceTree = ""; }; + 0DF77F1C27B0504FCF77E6FB127CA192 /* RxCocoa-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RxCocoa-Info.plist"; sourceTree = ""; }; + 10A91AB9FF69846806CC1A090A97F4F3 /* Pods-RRAlamofireRxAPI_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RRAlamofireRxAPI_Tests-acknowledgements.plist"; sourceTree = ""; }; + 110A8DDFE97030E9559694DC864D9983 /* RxSearchControllerDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxSearchControllerDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift; sourceTree = ""; }; + 11281E30E47BB45F0E67638CEF1DC2E1 /* RxCocoaRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RxCocoaRuntime.h; path = RxCocoa/Runtime/include/RxCocoaRuntime.h; sourceTree = ""; }; + 117960B63496E603940399CAF93ABDB6 /* InvocableScheduledItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InvocableScheduledItem.swift; path = RxSwift/Schedulers/Internal/InvocableScheduledItem.swift; sourceTree = ""; }; + 1281A01B1D18A3CFC62D2E8C6D84CC50 /* Event.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Event.swift; path = RxSwift/Event.swift; sourceTree = ""; }; + 12DC780CD51D1AC710D476507EA14E34 /* Pods-RRAlamofireRxAPI_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-RRAlamofireRxAPI_Tests.modulemap"; sourceTree = ""; }; + 147B40BEEFD9A0D7D37025648226B261 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = RxSwift/Observables/Filter.swift; sourceTree = ""; }; + 14A999CEA14A616176F4792BAAE987C5 /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 15059BAA598B8DC6F99CCDEFBDBB16D7 /* Zip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zip.swift; path = RxSwift/Observables/Zip.swift; sourceTree = ""; }; + 15ABF61746DB6F3D9BB55D5FBDD1CDB5 /* Pods-RRAlamofireRxAPI_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-RRAlamofireRxAPI_Example-frameworks.sh"; sourceTree = ""; }; + 15CDF4BB6A7E02D621803DDE13E767AF /* ScheduledItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledItem.swift; path = RxSwift/Schedulers/Internal/ScheduledItem.swift; sourceTree = ""; }; + 1612FC132064FE7CBE0582653297AF83 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; + 1842F4BDA22D55C2ED44EA52A420D368 /* _RXKVOObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXKVOObserver.h; path = RxCocoa/Runtime/include/_RXKVOObserver.h; sourceTree = ""; }; + 19C1D4AF83BBC2BC2AE911CF3916F9BD /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Errors.swift; path = RxSwift/Errors.swift; sourceTree = ""; }; + 1A3F91D6D64C907592654E4F9C1E5C54 /* Never.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Never.swift; path = RxSwift/Observables/Never.swift; sourceTree = ""; }; + 1C15BE876B307C95094D06A23B81C8B4 /* SynchronizedUnsubscribeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedUnsubscribeType.swift; path = RxSwift/Concurrency/SynchronizedUnsubscribeType.swift; sourceTree = ""; }; + 1CDA72C59E2C6FFADBE82E37CCD88E95 /* RxTextViewDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTextViewDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift; sourceTree = ""; }; + 1EB36CF0A79DBEBBDE7BB52775BDD150 /* GroupBy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GroupBy.swift; path = RxSwift/Observables/GroupBy.swift; sourceTree = ""; }; + 1F64B2917511EB8617219BE5DC0E9532 /* BehaviorSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BehaviorSubject.swift; path = RxSwift/Subjects/BehaviorSubject.swift; sourceTree = ""; }; + 1FBDE1B39902E5B28FC3162AA3C77F48 /* Producer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Producer.swift; path = RxSwift/Observables/Producer.swift; sourceTree = ""; }; + 20106E5F3C0B65B287BD422532ACB287 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; + 2042B39D11D71B9D00E4608B83CF260B /* RecursiveLock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RecursiveLock.swift; path = Platform/RecursiveLock.swift; sourceTree = ""; }; + 218BB497FB7FC333223BF7B238BB59A1 /* SkipWhile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkipWhile.swift; path = RxSwift/Observables/SkipWhile.swift; sourceTree = ""; }; + 252ECC1A83CCA13C6A7C8EA56461EC93 /* Infallible+Zip+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Infallible+Zip+arity.swift"; path = "RxSwift/Traits/Infallible/Infallible+Zip+arity.swift"; sourceTree = ""; }; + 2565AA27AD2AF1FF9BF1EC0752030A65 /* RxPickerViewDataSourceProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxPickerViewDataSourceProxy.swift; path = RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift; sourceTree = ""; }; + 25993E40BB8CDAD075A0E37FEC1D5F8F /* SubjectType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubjectType.swift; path = RxSwift/Subjects/SubjectType.swift; sourceTree = ""; }; + 265218B19B275816B9C6AB865ED8E22E /* KVORepresentable+CoreGraphics.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "KVORepresentable+CoreGraphics.swift"; path = "RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift"; sourceTree = ""; }; + 26AF50B03B63887816299B8AF1E553EC /* RxCocoa-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RxCocoa-dummy.m"; sourceTree = ""; }; + 272608D12988387D540CAAE7C53755B2 /* Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Alamofire-Info.plist"; sourceTree = ""; }; + 2998AE78DEF02935DB1EDAACAB8168BE /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Utils.swift; path = RxRelay/Utils.swift; sourceTree = ""; }; + 29AE60F6FD2EB6129A9D3CC599F5BF10 /* Bag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bag.swift; path = Platform/DataStructures/Bag.swift; sourceTree = ""; }; + 2A1EAE89CE47C4CE086D2819D410AB3D /* PublishRelay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PublishRelay.swift; path = RxRelay/PublishRelay.swift; sourceTree = ""; }; + 2B76266187B6FBD26BE45A478AB59AD5 /* Timeout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeout.swift; path = RxSwift/Observables/Timeout.swift; sourceTree = ""; }; + 2BA88189B95E974804E08952B6FD0A5B /* Delay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Delay.swift; path = RxSwift/Observables/Delay.swift; sourceTree = ""; }; + 2D64B467CA706B8C6E83C60180EF3AD5 /* AsyncSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncSubject.swift; path = RxSwift/Subjects/AsyncSubject.swift; sourceTree = ""; }; + 2DA4755B04F4BD7EF3D364D25C6239F7 /* Queue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Queue.swift; path = Platform/DataStructures/Queue.swift; sourceTree = ""; }; + 2EB348CE3CACD71C50B0C6D3146A756F /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; + 2F3E2F16D7C1C5D2067B9B2C0A147E32 /* Pods-RRAlamofireRxAPI_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RRAlamofireRxAPI_Example-dummy.m"; sourceTree = ""; }; + 31B5A4436EEB323A178EC0AFB14371E5 /* ControlEvent+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ControlEvent+Driver.swift"; path = "RxCocoa/Traits/Driver/ControlEvent+Driver.swift"; sourceTree = ""; }; + 31BA528D9AD154F8108D55573412BB53 /* RxCocoaObjCRuntimeError+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "RxCocoaObjCRuntimeError+Extensions.swift"; path = "RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift"; sourceTree = ""; }; + 334F3E102376018988A23452EF622D11 /* Empty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Empty.swift; path = RxSwift/Observables/Empty.swift; sourceTree = ""; }; + 33E16242DEA9785053FD4B6E48DB0279 /* SchedulerType+SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SchedulerType+SharedSequence.swift"; path = "RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift"; sourceTree = ""; }; + 341E0F8B3A659221DC7EC0C49AC2B98D /* Platform.Darwin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Darwin.swift; path = Platform/Platform.Darwin.swift; sourceTree = ""; }; + 34F5F3E2188C0AED0E87BF8B735ACA4E /* Platform.Linux.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Linux.swift; path = Platform/Platform.Linux.swift; sourceTree = ""; }; + 353591DFD0763A74487ABC5AB2D80ABE /* NSObject+Rx+RawRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx+RawRepresentable.swift"; path = "RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift"; sourceTree = ""; }; + 3560071CF05E5BB984881762EBCD1568 /* UITextView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITextView+Rx.swift"; path = "RxCocoa/iOS/UITextView+Rx.swift"; sourceTree = ""; }; + 3572C7B325F8030DC38651B80B9CA5CB /* AsSingle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsSingle.swift; path = RxSwift/Observables/AsSingle.swift; sourceTree = ""; }; + 358AC9B46E8DEE2431EF9B34A6EAD102 /* UISlider+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UISlider+Rx.swift"; path = "RxCocoa/iOS/UISlider+Rx.swift"; sourceTree = ""; }; + 35A354E1EC51F0FA666C107044C65FFE /* Take.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Take.swift; path = RxSwift/Observables/Take.swift; sourceTree = ""; }; + 37400B01223A58E9D960E919B1A6AF59 /* NSButton+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSButton+Rx.swift"; path = "RxCocoa/macOS/NSButton+Rx.swift"; sourceTree = ""; }; + 3815C0670132B4813F089FE5570755C5 /* _RX.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RX.m; path = RxCocoa/Runtime/_RX.m; sourceTree = ""; }; + 38A45D52D1594E7C4C0499BA1580DFD0 /* UIControl+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIControl+Rx.swift"; path = "RxCocoa/iOS/UIControl+Rx.swift"; sourceTree = ""; }; + 3920B4EA8C8704B591326F3369F79E3A /* ElementAt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ElementAt.swift; path = RxSwift/Observables/ElementAt.swift; sourceTree = ""; }; + 39455345DC2CF65645FDA90C7CB11194 /* Dematerialize.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Dematerialize.swift; path = RxSwift/Observables/Dematerialize.swift; sourceTree = ""; }; + 39C9CD83A4F41884DA60F1FA93DDF382 /* TakeWithPredicate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeWithPredicate.swift; path = RxSwift/Observables/TakeWithPredicate.swift; sourceTree = ""; }; + 3B3E7DDA0E6D4D73CE5FB8847BC1EFFD /* Reduce.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reduce.swift; path = RxSwift/Observables/Reduce.swift; sourceTree = ""; }; + 3C4ED0C96D6BDF436D526068E6EDC12D /* ControlProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlProperty.swift; path = RxCocoa/Traits/ControlProperty.swift; sourceTree = ""; }; + 3D7A4590E795CC6C113448D0D90035A4 /* RxTableViewDataSourcePrefetchingProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTableViewDataSourcePrefetchingProxy.swift; path = RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift; sourceTree = ""; }; + 3E213015BD7AA2992413DC68867A614D /* Bag+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bag+Rx.swift"; path = "RxSwift/Extensions/Bag+Rx.swift"; sourceTree = ""; }; + 3E27AA1530866875ED2E80B00172863E /* AnonymousDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousDisposable.swift; path = RxSwift/Disposables/AnonymousDisposable.swift; sourceTree = ""; }; + 3E88697878DDAF643CA9E0A9A596CC5B /* First.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = First.swift; path = RxSwift/Observables/First.swift; sourceTree = ""; }; + 3F729E640D091989C0924E0D084DF526 /* UIRefreshControl+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIRefreshControl+Rx.swift"; path = "RxCocoa/iOS/UIRefreshControl+Rx.swift"; sourceTree = ""; }; + 3FBBCCEF4C0861B24A14605E09F13E09 /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = ""; }; + 41A460D6607081122114CE138C088407 /* OperationQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OperationQueueScheduler.swift; path = RxSwift/Schedulers/OperationQueueScheduler.swift; sourceTree = ""; }; + 41D73DEA8DEDEC817B200CB63CAB2CF6 /* Reactive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Reactive.swift; path = RxSwift/Reactive.swift; sourceTree = ""; }; + 4210F0FA732363276F935A9DEBF762F3 /* DisposeBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisposeBase.swift; path = RxSwift/Disposables/DisposeBase.swift; sourceTree = ""; }; + 429B027E64F97AE3F4CC37E10FC2A2BA /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; + 4545B36169281E376594F226186F12D2 /* Disposables.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposables.swift; path = RxSwift/Disposables/Disposables.swift; sourceTree = ""; }; + 45AACED65B98397576B882833D154470 /* Pods-RRAlamofireRxAPI_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RRAlamofireRxAPI_Tests-dummy.m"; sourceTree = ""; }; + 46433D78BE950BD146A77C6B66C79731 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; + 46A000F55431CC4B86108F3B3861F281 /* NSObject+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx.swift"; path = "RxCocoa/Foundation/NSObject+Rx.swift"; sourceTree = ""; }; + 473A0466ACCBF27E5EEBCB9E8E30B032 /* Pods-RRAlamofireRxAPI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RRAlamofireRxAPI_Example.debug.xcconfig"; sourceTree = ""; }; + 47FCD864073533646375F3B45121794F /* Disposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposable.swift; path = RxSwift/Disposable.swift; sourceTree = ""; }; + 486EB92566228EC43FED66966AAAF5F7 /* StartWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StartWith.swift; path = RxSwift/Observables/StartWith.swift; sourceTree = ""; }; + 4A109F2D74C62A0E673D797CABF504FC /* _RXDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXDelegateProxy.h; path = RxCocoa/Runtime/include/_RXDelegateProxy.h; sourceTree = ""; }; + 4A26F6EB6C977432DF7DD2E2DA1DA985 /* NSTextStorage+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextStorage+Rx.swift"; path = "RxCocoa/iOS/NSTextStorage+Rx.swift"; sourceTree = ""; }; + 4A65190F438B4F67B9FB56DCAA38942E /* Pods-RRAlamofireRxAPI_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RRAlamofireRxAPI_Example-acknowledgements.plist"; sourceTree = ""; }; + 4C2DAB7B71F48E0EB42D9012C2E6A2EA /* TextInput.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextInput.swift; path = RxCocoa/Common/TextInput.swift; sourceTree = ""; }; + 4C7D6F75090AC70304C2C6259C924BE1 /* SharedSequence+Operators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SharedSequence+Operators.swift"; path = "RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift"; sourceTree = ""; }; + 4C989F0E9BCEDAB474B38401835728C4 /* RxRelay-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxRelay-umbrella.h"; sourceTree = ""; }; + 4D0A9168E3E7D85F64C8C54A3016653A /* PriorityQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PriorityQueue.swift; path = Platform/DataStructures/PriorityQueue.swift; sourceTree = ""; }; + 4F24C0410A8C95773F57446A7406DC6F /* Sequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sequence.swift; path = RxSwift/Observables/Sequence.swift; sourceTree = ""; }; + 5000ECE1FE664974E606EE6BE7812D1D /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; + 522A8F3261E1AEA4E54AC0949D762674 /* Throttle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Throttle.swift; path = RxSwift/Observables/Throttle.swift; sourceTree = ""; }; + 526DD19B47621DC43D57EB64D8664F1B /* ObserverType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserverType.swift; path = RxSwift/ObserverType.swift; sourceTree = ""; }; + 52D8AAEFF4EA15CBA99AEF68696A5929 /* SubscriptionDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscriptionDisposable.swift; path = RxSwift/Disposables/SubscriptionDisposable.swift; sourceTree = ""; }; + 5327D44D0310315A6A64E2D1018AD678 /* RxCocoa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RxCocoa.h; path = RxCocoa/RxCocoa.h; sourceTree = ""; }; + 54A337FF7903E6D5BEC9B6F6FA2090F0 /* Optional.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Optional.swift; path = RxSwift/Observables/Optional.swift; sourceTree = ""; }; + 54FC1FBDAB623FEDE1C333502F465598 /* Observable+Bind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Bind.swift"; path = "RxCocoa/Common/Observable+Bind.swift"; sourceTree = ""; }; + 55D67BE0618A65959A9FF84058B2AB0F /* RRAlamofireRxAPI-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RRAlamofireRxAPI-Info.plist"; sourceTree = ""; }; + 55D94E8505C5893FF8F0BC5BB4D5535F /* Platform.Linux.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Linux.swift; path = Platform/Platform.Linux.swift; sourceTree = ""; }; + 55F087ADE0D999055129AE6ED6B47506 /* UIStepper+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIStepper+Rx.swift"; path = "RxCocoa/iOS/UIStepper+Rx.swift"; sourceTree = ""; }; + 56B220DC41ED06A74849CF7723396E06 /* ShareReplayScope.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShareReplayScope.swift; path = RxSwift/Observables/ShareReplayScope.swift; sourceTree = ""; }; + 578FB1174A551BC18EDB6DFAF8F44D21 /* SchedulerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SchedulerType.swift; path = RxSwift/SchedulerType.swift; sourceTree = ""; }; + 57B9339F4303B39D0D7E313E37848163 /* SchedulerServices+Emulation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SchedulerServices+Emulation.swift"; path = "RxSwift/Schedulers/SchedulerServices+Emulation.swift"; sourceTree = ""; }; + 597C2F09085AB6FAAB30F269DF1CAA03 /* RxSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RxSwift-Info.plist"; sourceTree = ""; }; + 5B03DB256AFB61D7445B42C7A004D34B /* Amb.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Amb.swift; path = RxSwift/Observables/Amb.swift; sourceTree = ""; }; + 5B9222385FF28D891C1990E02655EE7E /* RxTableViewDataSourceProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTableViewDataSourceProxy.swift; path = RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift; sourceTree = ""; }; + 5C5419FB172272BA12A77C11B500838F /* AtomicInt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AtomicInt.swift; path = Platform/AtomicInt.swift; sourceTree = ""; }; + 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire.framework; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5D90E5F7FB4CAB81EB1A3A0DD4194527 /* ToArray.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToArray.swift; path = RxSwift/Observables/ToArray.swift; sourceTree = ""; }; + 5FD24B6B9D7897D75ABD48A225B947DE /* Queue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Queue.swift; path = Platform/DataStructures/Queue.swift; sourceTree = ""; }; + 6192C72A1ABC38A14666367CB1F7FA00 /* _RXObjCRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RXObjCRuntime.h; path = RxCocoa/Runtime/include/_RXObjCRuntime.h; sourceTree = ""; }; + 61A276B594CBEBCE91C27D74C96D3266 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; + 620007F1A4CB48F039A8AE73B3A89CE3 /* Alamofire.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.debug.xcconfig; sourceTree = ""; }; + 62102C57B96F32CC92298EFAD24508FB /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Observable.swift; path = RxSwift/Observable.swift; sourceTree = ""; }; + 62A9370547D8628C9B1EFC4A93A32C81 /* RxSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RxSwift-dummy.m"; sourceTree = ""; }; + 6329E2063F30B3FE225CADABE78FF0B4 /* URLSession+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSession+Rx.swift"; path = "RxCocoa/Foundation/URLSession+Rx.swift"; sourceTree = ""; }; + 63757339E24BF22D684FB68F14209436 /* Completable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Completable.swift; path = RxSwift/Traits/PrimitiveSequence/Completable.swift; sourceTree = ""; }; + 644E1D1A9521DF0DB48743D57F528F48 /* RRAlamofireRxAPI.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RRAlamofireRxAPI.debug.xcconfig; sourceTree = ""; }; + 649A875FC6FE9935D07D96DDAC06FB4B /* AsyncLock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncLock.swift; path = RxSwift/Concurrency/AsyncLock.swift; sourceTree = ""; }; + 674A8133B681DEB5AD47861C5AFA52A7 /* ControlProperty+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ControlProperty+Driver.swift"; path = "RxCocoa/Traits/Driver/ControlProperty+Driver.swift"; sourceTree = ""; }; + 678F1754A58C490086C64F42B13DBDCA /* UISegmentedControl+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UISegmentedControl+Rx.swift"; path = "RxCocoa/iOS/UISegmentedControl+Rx.swift"; sourceTree = ""; }; + 6A315FEE253EE95D37F8B9FAB2DF6E70 /* BehaviorRelay+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "BehaviorRelay+Driver.swift"; path = "RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift"; sourceTree = ""; }; + 6A59C4DED4E9DC3EDF1BD8755F1A18F7 /* RxCollectionViewDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCollectionViewDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift; sourceTree = ""; }; + 6B0244F045E455385FB9792B86F6D391 /* UITabBar+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITabBar+Rx.swift"; path = "RxCocoa/iOS/UITabBar+Rx.swift"; sourceTree = ""; }; + 6B69AD27E7A5604BFA9099D5845A99D7 /* Generate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Generate.swift; path = RxSwift/Observables/Generate.swift; sourceTree = ""; }; + 6DBB07A683ED35499083C09B308558BD /* InfiniteSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InfiniteSequence.swift; path = Platform/DataStructures/InfiniteSequence.swift; sourceTree = ""; }; + 6EC3FD8BF7BC5C66DC73EB3C13730295 /* SerialDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialDisposable.swift; path = RxSwift/Disposables/SerialDisposable.swift; sourceTree = ""; }; + 6F1C32E539A269DB8CBEB4F40B5BE200 /* Enumerated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Enumerated.swift; path = RxSwift/Observables/Enumerated.swift; sourceTree = ""; }; + 70371B2593732BBBED56F609E2087C15 /* ScheduledDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledDisposable.swift; path = RxSwift/Disposables/ScheduledDisposable.swift; sourceTree = ""; }; + 70B3330A574A7646B8EAD9501846EEAF /* ConcurrentDispatchQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConcurrentDispatchQueueScheduler.swift; path = RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift; sourceTree = ""; }; + 7108E198B791465D50E0683CF1141B86 /* RefCountDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RefCountDisposable.swift; path = RxSwift/Disposables/RefCountDisposable.swift; sourceTree = ""; }; + 72039EB659556D0891DE5238E9F0A456 /* DelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelegateProxy.swift; path = RxCocoa/Common/DelegateProxy.swift; sourceTree = ""; }; + 7273D8A58607F6E924E7CE999078E4EE /* AnonymousObserver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnonymousObserver.swift; path = RxSwift/Observers/AnonymousObserver.swift; sourceTree = ""; }; + 73F2CB48A239D05A871466A4C1B875FC /* ReplaySubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReplaySubject.swift; path = RxSwift/Subjects/ReplaySubject.swift; sourceTree = ""; }; + 757C1AA3B31B2C24780F1ADA4B408A85 /* VirtualTimeScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VirtualTimeScheduler.swift; path = RxSwift/Schedulers/VirtualTimeScheduler.swift; sourceTree = ""; }; + 75EEC30A30F239FACEFA60AD6E9ACC45 /* Range.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Range.swift; path = RxSwift/Observables/Range.swift; sourceTree = ""; }; + 760F1D6451B5BE052B6C8960719B1D5C /* RecursiveLock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RecursiveLock.swift; path = Platform/RecursiveLock.swift; sourceTree = ""; }; + 76CEDEC3592CD332F4DE1AFC8944BB71 /* Zip+Collection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Zip+Collection.swift"; path = "RxSwift/Observables/Zip+Collection.swift"; sourceTree = ""; }; + 76D8C3953A9CD5EF378B3131313B6284 /* RxNavigationControllerDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxNavigationControllerDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift; sourceTree = ""; }; + 7748003DE32BC1513F34FF67999AAE63 /* NSTextField+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextField+Rx.swift"; path = "RxCocoa/macOS/NSTextField+Rx.swift"; sourceTree = ""; }; + 77C766557DF4CC556D8A1D55815210AD /* WithLatestFrom.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WithLatestFrom.swift; path = RxSwift/Observables/WithLatestFrom.swift; sourceTree = ""; }; + 77F446123673774E63E426337B6A4121 /* ObserverBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserverBase.swift; path = RxSwift/Observers/ObserverBase.swift; sourceTree = ""; }; + 782540E77B3CE26F3BB7EA33423B1BBB /* BooleanDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BooleanDisposable.swift; path = RxSwift/Disposables/BooleanDisposable.swift; sourceTree = ""; }; + 791C045FF0003E09983C10224495632F /* Pods-RRAlamofireRxAPI_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RRAlamofireRxAPI_Tests.release.xcconfig"; sourceTree = ""; }; + 79AACD21868A33090E3805E26B9F46F9 /* Alamofire.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.release.xcconfig; sourceTree = ""; }; + 7AAF99AC66E18EA8B948A33967E1CE6F /* Cancelable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cancelable.swift; path = RxSwift/Cancelable.swift; sourceTree = ""; }; + 7AF06012E135F6A0ED1F87985A2C5295 /* Signal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Signal.swift; path = RxCocoa/Traits/Signal/Signal.swift; sourceTree = ""; }; + 7B7A89908D8B57BF28FBFF8CBA9288BB /* ObservableConvertibleType+Infallible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+Infallible.swift"; path = "RxSwift/Traits/Infallible/ObservableConvertibleType+Infallible.swift"; sourceTree = ""; }; + 7C4FD003C63C3AFA1EB684FA0393597B /* Buffer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Buffer.swift; path = RxSwift/Observables/Buffer.swift; sourceTree = ""; }; + 7C88C661DD225F73B5FF885C64495485 /* RxScrollViewDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxScrollViewDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift; sourceTree = ""; }; + 7CDA84DD9C37788EF13B29CBBC411B41 /* RxCocoa-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxCocoa-prefix.pch"; sourceTree = ""; }; + 7DFA36A6E27AAFCF06D3013EB0D5D8CA /* BinaryDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BinaryDisposable.swift; path = RxSwift/Disposables/BinaryDisposable.swift; sourceTree = ""; }; + 7E77665A9AA213C30E94404968FE397F /* DispatchQueue+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Extensions.swift"; path = "Platform/DispatchQueue+Extensions.swift"; sourceTree = ""; }; + 7EBFC416B1AFDBAF54CB657770D5D0C5 /* Deferred.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deferred.swift; path = RxSwift/Observables/Deferred.swift; sourceTree = ""; }; + 7F1B60AEADAF4DCD399241CD33A8E8C5 /* BehaviorRelay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BehaviorRelay.swift; path = RxRelay/BehaviorRelay.swift; sourceTree = ""; }; + 8017A3694A82B47110F6CF4380DE68F1 /* RxCocoa.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxCocoa.release.xcconfig; sourceTree = ""; }; + 809C5FAB588354C9BA37DC3EAB8CB45C /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RxSwift.framework; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 815A49079565D76A3F211A5820332A62 /* ObservableConvertibleType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableConvertibleType.swift; path = RxSwift/ObservableConvertibleType.swift; sourceTree = ""; }; + 81675BD9C86DC302E808B9AA8E9DFFB6 /* UITabBarController+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITabBarController+Rx.swift"; path = "RxCocoa/iOS/UITabBarController+Rx.swift"; sourceTree = ""; }; + 81836D76961454B3758DD116C8CB18D2 /* RecursiveScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RecursiveScheduler.swift; path = RxSwift/Schedulers/RecursiveScheduler.swift; sourceTree = ""; }; + 819187C7DD71E69EFB906C19B1EBC874 /* RxRelay.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RxRelay.modulemap; sourceTree = ""; }; + 82FFE3336E040E0FD4E87BD4A8C9D9E5 /* UITableView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UITableView+Rx.swift"; path = "RxCocoa/iOS/UITableView+Rx.swift"; sourceTree = ""; }; + 8345F7B6AD763344B796FE0D298F1B32 /* DisposeBag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisposeBag.swift; path = RxSwift/Disposables/DisposeBag.swift; sourceTree = ""; }; + 83FF6FD16580164BCDF295B6BA911BF5 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = ""; }; + 84739D4197F813F38B6653E7283A3FC2 /* LockOwnerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LockOwnerType.swift; path = RxSwift/Concurrency/LockOwnerType.swift; sourceTree = ""; }; + 84A693C5E5BBE2F9AAC8A3EE1BE28FF0 /* ScheduledItemType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScheduledItemType.swift; path = RxSwift/Schedulers/Internal/ScheduledItemType.swift; sourceTree = ""; }; + 860AFBA5B979AE505D2A32A326418FBF /* InvocableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InvocableType.swift; path = RxSwift/Schedulers/Internal/InvocableType.swift; sourceTree = ""; }; + 866218B8DB32ADE28B252783A7BF2322 /* PrimitiveSequence+Zip+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PrimitiveSequence+Zip+arity.swift"; path = "RxSwift/Traits/PrimitiveSequence/PrimitiveSequence+Zip+arity.swift"; sourceTree = ""; }; + 86CFC88F19E94510509B2457D4ECE548 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; + 8758841F3B4C072CE8086A40A4320EF2 /* Merge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Merge.swift; path = RxSwift/Observables/Merge.swift; sourceTree = ""; }; + 87E84C58FFC8AE6396B7EC9F38B3B892 /* RxRelay-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RxRelay-Info.plist"; sourceTree = ""; }; + 88CDDA5CCE8CFF9CAB5811A8EB02B3F6 /* _RXDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXDelegateProxy.m; path = RxCocoa/Runtime/_RXDelegateProxy.m; sourceTree = ""; }; + 89A52BC27B7D026A9279115A1246F66E /* SwitchIfEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwitchIfEmpty.swift; path = RxSwift/Observables/SwitchIfEmpty.swift; sourceTree = ""; }; + 89D9F47FB672D712349F8D4ADDB4522E /* Pods-RRAlamofireRxAPI_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-RRAlamofireRxAPI_Tests-acknowledgements.markdown"; sourceTree = ""; }; + 8ACF3F1B927742CDCAE13A46E33AEBA4 /* RxRelay.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxRelay.debug.xcconfig; sourceTree = ""; }; + 8BF441A91CB2F3177CE33A10125FC4C8 /* UIActivityIndicatorView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIActivityIndicatorView+Rx.swift"; path = "RxCocoa/iOS/UIActivityIndicatorView+Rx.swift"; sourceTree = ""; }; + 8CF2A0900367E7E51BA84A5875775DD4 /* Observable+Bind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Bind.swift"; path = "RxRelay/Observable+Bind.swift"; sourceTree = ""; }; + 8F823D72123E5A6A2124B50C7EEB1949 /* UIBarButtonItem+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+Rx.swift"; path = "RxCocoa/iOS/UIBarButtonItem+Rx.swift"; sourceTree = ""; }; + 8FA12AC9F2741A51DEDC273383EA537E /* RxCocoa.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxCocoa.debug.xcconfig; sourceTree = ""; }; + 902F85342BC8A0BAFF92066A8CDE5B3D /* SkipUntil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SkipUntil.swift; path = RxSwift/Observables/SkipUntil.swift; sourceTree = ""; }; + 90BB5C209C3C05CC2A324241613C8ECF /* _RXObjCRuntime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXObjCRuntime.m; path = RxCocoa/Runtime/_RXObjCRuntime.m; sourceTree = ""; }; + 91927C097B0E5DA69B355C886588437F /* SharedSequence+Operators+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "SharedSequence+Operators+arity.swift"; path = "RxCocoa/Traits/SharedSequence/SharedSequence+Operators+arity.swift"; sourceTree = ""; }; + 924AB5EB3352679C74C2A53B0BDBF978 /* ConnectableObservableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConnectableObservableType.swift; path = RxSwift/ConnectableObservableType.swift; sourceTree = ""; }; + 92A42A36AAEF296D549075AB1C21F03B /* Skip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Skip.swift; path = RxSwift/Observables/Skip.swift; sourceTree = ""; }; + 93023386F4CFFEB2A050BA2C9B0E6774 /* Pods-RRAlamofireRxAPI_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RRAlamofireRxAPI_Tests-Info.plist"; sourceTree = ""; }; + 93324C76ECD8D2A77DAB476E9F688FD3 /* Decode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Decode.swift; path = RxSwift/Observables/Decode.swift; sourceTree = ""; }; + 954A2FB2FB6B30104BF2D9C711CE98C0 /* NSSlider+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSSlider+Rx.swift"; path = "RxCocoa/macOS/NSSlider+Rx.swift"; sourceTree = ""; }; + 96FFF9F1C2CBDFBB419536DF811009E8 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; + 975109020306FE2A8295BB64E141EDCD /* RxCollectionViewDataSourceProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCollectionViewDataSourceProxy.swift; path = RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift; sourceTree = ""; }; + 9921F11DAF1B0702506BEBB68C852B77 /* CombineLatest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CombineLatest.swift; path = RxSwift/Observables/CombineLatest.swift; sourceTree = ""; }; + 99A8316EAEE2B14E288921F5DBEC47B8 /* RxSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxSwift-umbrella.h"; sourceTree = ""; }; + 9A730CFAFF455BDD0236C86453797E49 /* Map.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Map.swift; path = RxSwift/Observables/Map.swift; sourceTree = ""; }; + 9BB1A73E57CC80F5981A783B12AD14AA /* WithUnretained.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WithUnretained.swift; path = RxSwift/Observables/WithUnretained.swift; sourceTree = ""; }; + 9BBF67F25E7F426FA79E18E3206CAC82 /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = ""; }; + 9BC9CA2E8267FE724C78D1BF1679897B /* SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SharedSequence.swift; path = RxCocoa/Traits/SharedSequence/SharedSequence.swift; sourceTree = ""; }; + 9BCC2AB5F996634A793D95FDEC5EAE9F /* Pods-RRAlamofireRxAPI_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RRAlamofireRxAPI_Tests-umbrella.h"; sourceTree = ""; }; + 9BE962803E463391AC19DEF993548CF2 /* AddRef.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AddRef.swift; path = RxSwift/Observables/AddRef.swift; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9E331B4A6FE6F067195AB707F8705431 /* CompositeDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CompositeDisposable.swift; path = RxSwift/Disposables/CompositeDisposable.swift; sourceTree = ""; }; + A15D7E5A307D31EF687E09D2A4335BA7 /* ObservableType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObservableType.swift; path = RxSwift/ObservableType.swift; sourceTree = ""; }; + A1D039C04088FF486EC34F5F3C6CF7F6 /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = ""; }; + A25BCFECC7040F4F111FAF698AC44A59 /* CompactMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CompactMap.swift; path = RxSwift/Observables/CompactMap.swift; sourceTree = ""; }; + A35B67708AA0ED5D9E696DED132F1BE5 /* DelaySubscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelaySubscription.swift; path = RxSwift/Observables/DelaySubscription.swift; sourceTree = ""; }; + A3B30979EE8C7A3FFF6304632D82DD0A /* UISearchBar+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UISearchBar+Rx.swift"; path = "RxCocoa/iOS/UISearchBar+Rx.swift"; sourceTree = ""; }; + A3DA63DE1C070A6C26F074315A518ED2 /* RxWKNavigationDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxWKNavigationDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxWKNavigationDelegateProxy.swift; sourceTree = ""; }; + A47D23133042F66FA2A9FCC8F46837DD /* UISearchController+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UISearchController+Rx.swift"; path = "RxCocoa/iOS/UISearchController+Rx.swift"; sourceTree = ""; }; + A4844D973E858D2C93E9BDCB0031BC85 /* UIDatePicker+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIDatePicker+Rx.swift"; path = "RxCocoa/iOS/UIDatePicker+Rx.swift"; sourceTree = ""; }; + A48D6DE020ED5004B49941F99B12A346 /* SectionedViewDataSourceType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SectionedViewDataSourceType.swift; path = RxCocoa/Common/SectionedViewDataSourceType.swift; sourceTree = ""; }; + A5680330E36BABA82E8B9C5EA75AEBAD /* RxSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxSwift-prefix.pch"; sourceTree = ""; }; + A56BEB333099C36BD3C052E978431D87 /* Pods_RRAlamofireRxAPI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_RRAlamofireRxAPI_Example.framework; path = "Pods-RRAlamofireRxAPI_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + A593D1F995F7F512AFDB6312AA4ED8FF /* RxRelay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxRelay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A9F63038D9B456CEBB9C1FEBA8559D78 /* Using.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Using.swift; path = RxSwift/Observables/Using.swift; sourceTree = ""; }; + ACFDB306B6B3C678E511134B43F43335 /* RxSearchBarDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxSearchBarDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift; sourceTree = ""; }; + ADC9B4275875E49B6503123FC6D519C1 /* ControlEvent+Signal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ControlEvent+Signal.swift"; path = "RxCocoa/Traits/Signal/ControlEvent+Signal.swift"; sourceTree = ""; }; + AE005B984272D269BD3EFF7D4EFB9BF9 /* ObservableType+PrimitiveSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableType+PrimitiveSequence.swift"; path = "RxSwift/Traits/PrimitiveSequence/ObservableType+PrimitiveSequence.swift"; sourceTree = ""; }; + AE63D583B78F269C609064C4F3B827F0 /* NSObject+Rx+KVORepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Rx+KVORepresentable.swift"; path = "RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift"; sourceTree = ""; }; + AF4D007C67166DD65ECE90F2644C1E89 /* SingleAsync.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SingleAsync.swift; path = RxSwift/Observables/SingleAsync.swift; sourceTree = ""; }; + AF6173972A0896CC90AC1F736A7FA9F6 /* RxPickerViewDataSourceType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxPickerViewDataSourceType.swift; path = RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift; sourceTree = ""; }; + AF966C8AC793E5311C1E1B06FC956137 /* DispatchQueue+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Extensions.swift"; path = "Platform/DispatchQueue+Extensions.swift"; sourceTree = ""; }; + AFDE891551FF6E2BD5BB1A852A79DEEF /* _RX.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _RX.h; path = RxCocoa/Runtime/include/_RX.h; sourceTree = ""; }; + B01E429004CC2118D5F437360FE3D579 /* Completable+AndThen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Completable+AndThen.swift"; path = "RxSwift/Traits/PrimitiveSequence/Completable+AndThen.swift"; sourceTree = ""; }; + B07A331BDBE2D6154D45D23A876094C7 /* ObservableType+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableType+Extensions.swift"; path = "RxSwift/ObservableType+Extensions.swift"; sourceTree = ""; }; + B132374C07E018A6C1C49B4D159B3CF1 /* KVORepresentable+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "KVORepresentable+Swift.swift"; path = "RxCocoa/Foundation/KVORepresentable+Swift.swift"; sourceTree = ""; }; + B16A1DD65A5849955E6CEEC1BE372DAE /* VirtualTimeConverterType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VirtualTimeConverterType.swift; path = RxSwift/Schedulers/VirtualTimeConverterType.swift; sourceTree = ""; }; + B297D98097A16A541FAFB833934B5C82 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; + B2982030FF1EF222974B01E0C9D68AA4 /* Error.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Error.swift; path = RxSwift/Observables/Error.swift; sourceTree = ""; }; + B2E9C8CEE2FDEA3C4BEDCE2175F1B7FA /* ObservableConvertibleType+Signal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+Signal.swift"; path = "RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift"; sourceTree = ""; }; + B3B5D90315E12022B35BFB5CFCF2304A /* NotificationCenter+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NotificationCenter+Rx.swift"; path = "RxCocoa/Foundation/NotificationCenter+Rx.swift"; sourceTree = ""; }; + B4834D801D8AF01D06789949CF8F4BFA /* UINavigationController+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UINavigationController+Rx.swift"; path = "RxCocoa/iOS/UINavigationController+Rx.swift"; sourceTree = ""; }; + B5067F995C125ACC36BECB1058423F4C /* ControlEvent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlEvent.swift; path = RxCocoa/Traits/ControlEvent.swift; sourceTree = ""; }; + B5932A72FD31457B98D8FE06561F8181 /* Binder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Binder.swift; path = RxSwift/Binder.swift; sourceTree = ""; }; + B5F77F6C7206E161946EB463E4D0C60D /* NopDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NopDisposable.swift; path = RxSwift/Disposables/NopDisposable.swift; sourceTree = ""; }; + B69636494D79C313397BAF4427C95D1B /* Pods-RRAlamofireRxAPI_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RRAlamofireRxAPI_Example-Info.plist"; sourceTree = ""; }; + B6B864AB65B9252F06011CF64C541532 /* RRAlamofireRxAPI.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RRAlamofireRxAPI.release.xcconfig; sourceTree = ""; }; + B7388B673C000F31CAA4C041D60C91E4 /* Pods-RRAlamofireRxAPI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RRAlamofireRxAPI_Tests.debug.xcconfig"; sourceTree = ""; }; + B8AF5C61F779BFE6FF524F74FC6A5928 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; + B8C9397E7524F2FCD13E24E21E07EEC2 /* InfiniteSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InfiniteSequence.swift; path = Platform/DataStructures/InfiniteSequence.swift; sourceTree = ""; }; + B99BAA8D31124D07F940968853CFCD99 /* RRAlamofireRxAPI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RRAlamofireRxAPI-dummy.m"; sourceTree = ""; }; + BA18D5295FE47E7142D89CEEC1852120 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + BA42F9BEB33F2A917C26318A278A144F /* NSView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSView+Rx.swift"; path = "RxCocoa/macOS/NSView+Rx.swift"; sourceTree = ""; }; + BB2C482249E4C0BC15A761DA3A3B1BA8 /* RxCocoa.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCocoa.swift; path = RxCocoa/RxCocoa.swift; sourceTree = ""; }; + BC432FD48A5932251F1CAFBC4BF74894 /* RxCocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RxCocoa.framework; path = RxCocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BE34958226AADBC1222B905487891E0F /* Infallible+Operators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Infallible+Operators.swift"; path = "RxSwift/Traits/Infallible/Infallible+Operators.swift"; sourceTree = ""; }; + BEA57BA60BCD86D699057D35360DB517 /* Infallible+CombineLatest+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Infallible+CombineLatest+arity.swift"; path = "RxSwift/Traits/Infallible/Infallible+CombineLatest+arity.swift"; sourceTree = ""; }; + BFB062F5FA138B9BB2C0F1A277D706BD /* ObservableConvertibleType+Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+Driver.swift"; path = "RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift"; sourceTree = ""; }; + BFD953D814665609D4B820419F3FA088 /* RxTextStorageDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTextStorageDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift; sourceTree = ""; }; + BFFFB0437F463AA38FAE70AB0FDEEF4B /* TailRecursiveSink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TailRecursiveSink.swift; path = RxSwift/Observers/TailRecursiveSink.swift; sourceTree = ""; }; + C033311DED642F19222B8251F8380A28 /* Timer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timer.swift; path = RxSwift/Observables/Timer.swift; sourceTree = ""; }; + C035A21112F20E86674EF314C54FE89C /* CombineLatest+Collection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CombineLatest+Collection.swift"; path = "RxSwift/Observables/CombineLatest+Collection.swift"; sourceTree = ""; }; + C07A658B0C114245886C62DA42BCEE99 /* Maybe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Maybe.swift; path = RxSwift/Traits/PrimitiveSequence/Maybe.swift; sourceTree = ""; }; + C25F62A5E85F8D0935DB0D6F1BCDB2C4 /* SerialDispatchQueueScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialDispatchQueueScheduler.swift; path = RxSwift/Schedulers/SerialDispatchQueueScheduler.swift; sourceTree = ""; }; + C2C8891B74150C396DDDF13935ADC26B /* DefaultIfEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultIfEmpty.swift; path = RxSwift/Observables/DefaultIfEmpty.swift; sourceTree = ""; }; + C34DE99EC1E1D6A31D4FC3C192192641 /* RxTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTarget.swift; path = RxCocoa/Common/RxTarget.swift; sourceTree = ""; }; + C359E34D8CF9BA270781CF0AD3E25535 /* Driver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Driver.swift; path = RxCocoa/Traits/Driver/Driver.swift; sourceTree = ""; }; + C372A4AEEEAF8C3C8DD1BDDEDAE673E8 /* Infallible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Infallible.swift; path = RxSwift/Traits/Infallible/Infallible.swift; sourceTree = ""; }; + C38F900B66F23A85BA7E115C9615E5E7 /* ObserveOn.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ObserveOn.swift; path = RxSwift/Observables/ObserveOn.swift; sourceTree = ""; }; + C3E559690B41943CE2B419AC30E02EEE /* Switch.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Switch.swift; path = RxSwift/Observables/Switch.swift; sourceTree = ""; }; + C418C6C4D5C2A1EB6DCAD1C7D5FCE655 /* RxCocoa.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RxCocoa.modulemap; sourceTree = ""; }; + C49400254CF3CD2CD9764B9EE6B2A402 /* PrimitiveSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PrimitiveSequence.swift; path = RxSwift/Traits/PrimitiveSequence/PrimitiveSequence.swift; sourceTree = ""; }; + C4A31362AE4057E4DB7561B2E247AF2C /* PublishSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PublishSubject.swift; path = RxSwift/Subjects/PublishSubject.swift; sourceTree = ""; }; + C4CDAC26E5E0AABEFCFB9B6EE71197EA /* DispatchQueueConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DispatchQueueConfiguration.swift; path = RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift; sourceTree = ""; }; + C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + C686F48EEFB8BBDDAD834F0009701E79 /* RxTabBarControllerDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTabBarControllerDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift; sourceTree = ""; }; + C6BE792B8329AB4548F2E6057C43CCC2 /* CombineLatest+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CombineLatest+arity.swift"; path = "RxSwift/Observables/CombineLatest+arity.swift"; sourceTree = ""; }; + C796D8F8DC46E2DC93484930422BC1CB /* ReplayRelay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReplayRelay.swift; path = RxRelay/ReplayRelay.swift; sourceTree = ""; }; + C7C1E06CCC637A5A582C7A4B4361051F /* Infallible+Create.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Infallible+Create.swift"; path = "RxSwift/Traits/Infallible/Infallible+Create.swift"; sourceTree = ""; }; + C899DEA9078C875397DF3B4E7679FF92 /* RxCollectionViewReactiveArrayDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCollectionViewReactiveArrayDataSource.swift; path = RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift; sourceTree = ""; }; + CA62BF656D2C53390FCF4F9AFE2FD357 /* RxCocoa-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxCocoa-umbrella.h"; sourceTree = ""; }; + CB2E1F967D72BFD69786EF53E2AD6828 /* RRAlamofireRxAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RRAlamofireRxAPI.framework; path = RRAlamofireRxAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CB5B99FB9F0F74A595480E7909F0C62E /* Infallible+Bind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Infallible+Bind.swift"; path = "RxCocoa/Common/Infallible+Bind.swift"; sourceTree = ""; }; + CC4CB10E3C8386DF216CA18766130667 /* RxPickerViewAdapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxPickerViewAdapter.swift; path = RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift; sourceTree = ""; }; + CD04DA067054384D87D98C09E4AFF343 /* UIApplication+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIApplication+Rx.swift"; path = "RxCocoa/iOS/UIApplication+Rx.swift"; sourceTree = ""; }; + CE943B6EEC95DE28220E9A064B0DD1B7 /* RRAlamofireRxAPI.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = RRAlamofireRxAPI.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + CFCF8E0953F2868714230B9591E02098 /* UIScrollView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIScrollView+Rx.swift"; path = "RxCocoa/iOS/UIScrollView+Rx.swift"; sourceTree = ""; }; + D105DD819619BA7E6BC2924F9BAE39F6 /* WKWebView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "WKWebView+Rx.swift"; path = "RxCocoa/iOS/WKWebView+Rx.swift"; sourceTree = ""; }; + D1F62E18F3BFF6DC296DF0E5311B6FFA /* Scan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scan.swift; path = RxSwift/Observables/Scan.swift; sourceTree = ""; }; + D27303C28C8063D576AC4D541E0EDA05 /* Bag.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bag.swift; path = Platform/DataStructures/Bag.swift; sourceTree = ""; }; + D295B5B6857CAE57EF575371DEEC71AA /* UIPickerView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIPickerView+Rx.swift"; path = "RxCocoa/iOS/UIPickerView+Rx.swift"; sourceTree = ""; }; + D2A5BE93D5F8ECFDCF17EC4E572DBEB7 /* HistoricalScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HistoricalScheduler.swift; path = RxSwift/Schedulers/HistoricalScheduler.swift; sourceTree = ""; }; + D32A9D37A68A0D32AA5FCD04825FA23E /* RxTableViewDataSourceType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTableViewDataSourceType.swift; path = RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift; sourceTree = ""; }; + D357CA528F40CA868DC9FF67E6FE2492 /* Sample.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sample.swift; path = RxSwift/Observables/Sample.swift; sourceTree = ""; }; + D4B53D84C76266B9A041EB250E2BAD91 /* Concat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Concat.swift; path = RxSwift/Observables/Concat.swift; sourceTree = ""; }; + D5227A0B68477A5DE29DA7413114655F /* RxPickerViewDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxPickerViewDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift; sourceTree = ""; }; + D535A5B58CF5B8D34B1051D482873C6E /* UICollectionView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UICollectionView+Rx.swift"; path = "RxCocoa/iOS/UICollectionView+Rx.swift"; sourceTree = ""; }; + D6FD7E6A63297A50A06D3EBFBA5E8C9B /* Single.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Single.swift; path = RxSwift/Traits/PrimitiveSequence/Single.swift; sourceTree = ""; }; + D81D886F7D54BD477235EF514108A47E /* UISwitch+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UISwitch+Rx.swift"; path = "RxCocoa/iOS/UISwitch+Rx.swift"; sourceTree = ""; }; + D8E9CF8C242FD3A4D7CFF7ECAE42AE34 /* RxTabBarDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTabBarDelegateProxy.swift; path = RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift; sourceTree = ""; }; + D9FBC09BCBCD08EBDEDA4ACFB8ECB774 /* RxSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxSwift.release.xcconfig; sourceTree = ""; }; + DA5752F0D7047FB9A1738DE48428ACB0 /* RxMutableBox.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxMutableBox.swift; path = RxSwift/RxMutableBox.swift; sourceTree = ""; }; + DCA550874A6FEB8F96889FC7CC6704EC /* Catch.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Catch.swift; path = RxSwift/Observables/Catch.swift; sourceTree = ""; }; + DD0BEFBC253FC360FF0563C11F6F7DEA /* AsMaybe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsMaybe.swift; path = RxSwift/Observables/AsMaybe.swift; sourceTree = ""; }; + DD9A95D52E3E645E12510EAE824FB842 /* PublishRelay+Signal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PublishRelay+Signal.swift"; path = "RxCocoa/Traits/Signal/PublishRelay+Signal.swift"; sourceTree = ""; }; + DE3E4E72D86D8A1FAC85FEAA366DF95C /* RetryWhen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryWhen.swift; path = RxSwift/Observables/RetryWhen.swift; sourceTree = ""; }; + DEC32E754607912FA531A7A374717E44 /* ItemEvents.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ItemEvents.swift; path = RxCocoa/iOS/Events/ItemEvents.swift; sourceTree = ""; }; + DF058F0990B58584AD1C7B33C91FF554 /* KVORepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KVORepresentable.swift; path = RxCocoa/Foundation/KVORepresentable.swift; sourceTree = ""; }; + E08E0E4EE5B86B6FD4EC6FBE07398E31 /* Just.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Just.swift; path = RxSwift/Observables/Just.swift; sourceTree = ""; }; + E0FD2805F8F5AB21F36A65116AE7A852 /* HistoricalSchedulerTimeConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HistoricalSchedulerTimeConverter.swift; path = RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift; sourceTree = ""; }; + E22FE909E80D1875EAE68F2F3FA0AF7B /* Pods-RRAlamofireRxAPI_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-RRAlamofireRxAPI_Example.modulemap"; sourceTree = ""; }; + E44E755FFE959255ED18FEF4F315E3D1 /* SynchronizedOnType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedOnType.swift; path = RxSwift/Concurrency/SynchronizedOnType.swift; sourceTree = ""; }; + E4CC7FD0F42527090B229EC67CDFC893 /* Repeat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Repeat.swift; path = RxSwift/Observables/Repeat.swift; sourceTree = ""; }; + E61EB3AA8E353BC831CC1E69C63B5292 /* RxCollectionViewDataSourcePrefetchingProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCollectionViewDataSourcePrefetchingProxy.swift; path = RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift; sourceTree = ""; }; + E6906DF2B237D4C06236D9CCB85E8C85 /* Platform.Darwin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Platform.Darwin.swift; path = Platform/Platform.Darwin.swift; sourceTree = ""; }; + E7D9405FF040B121629D7F0257633BD1 /* Multicast.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Multicast.swift; path = RxSwift/Observables/Multicast.swift; sourceTree = ""; }; + E9E6400C46E029F0A9FDE5473EEB2AA7 /* Materialize.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Materialize.swift; path = RxSwift/Observables/Materialize.swift; sourceTree = ""; }; + EA694F76A6017B38D3FEDFAB5B2AA3AA /* Pods_RRAlamofireRxAPI_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_RRAlamofireRxAPI_Tests.framework; path = "Pods-RRAlamofireRxAPI_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + EB85A7FC4AA28B68BB9AA8B25001DD59 /* RRAPIRxManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RRAPIRxManager.swift; path = Source/RRAPIRxManager.swift; sourceTree = ""; }; + EBF9F7D9AFFE8377D9B20798E73A7026 /* Window.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Window.swift; path = RxSwift/Observables/Window.swift; sourceTree = ""; }; + EBFBF72F9F724CA4B7D71047B68C005E /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; + EC9E06356BA2D0C4D0D16AB82C56CF21 /* ObservableConvertibleType+SharedSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ObservableConvertibleType+SharedSequence.swift"; path = "RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift"; sourceTree = ""; }; + ECB5CE1AFA3386CCC0FFFE8902EAA2F4 /* RxRelay-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RxRelay-prefix.pch"; sourceTree = ""; }; + ED0C3D8C74184795E6C0207138DF9FAD /* Date+Dispatch.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Dispatch.swift"; path = "RxSwift/Date+Dispatch.swift"; sourceTree = ""; }; + ED1A756353E17DAE7E935C5CDEE7D609 /* NSTextView+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextView+Rx.swift"; path = "RxCocoa/macOS/NSTextView+Rx.swift"; sourceTree = ""; }; + ED372D31861D13CA9B01475D5E855768 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; + EDBC32F890F842E54799D022C5BCA39E /* RxSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxSwift.debug.xcconfig; sourceTree = ""; }; + EDBDEF15870475C70D3491A413EA7316 /* Debounce.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debounce.swift; path = RxSwift/Observables/Debounce.swift; sourceTree = ""; }; + EDD8CB965C10D5E33E8B6A9C2D2CB6F7 /* _RXKVOObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _RXKVOObserver.m; path = RxCocoa/Runtime/_RXKVOObserver.m; sourceTree = ""; }; + EDDCD6AB0CEECCB3AB43531DCE5CE251 /* Sink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sink.swift; path = RxSwift/Observables/Sink.swift; sourceTree = ""; }; + EFFC63D28579F3571A659267FAC15419 /* Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Rx.swift; path = RxSwift/Rx.swift; sourceTree = ""; }; + F17B4FF2CEBC590B281F338AF2E51B51 /* RRAlamofireRxAPI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RRAlamofireRxAPI-prefix.pch"; sourceTree = ""; }; + F17E7B2A549DDF11BBF88445EAFF46E1 /* Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debug.swift; path = RxSwift/Observables/Debug.swift; sourceTree = ""; }; + F1BCFDA7FB0064C76C2DF8C0788CDDF5 /* MainScheduler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MainScheduler.swift; path = RxSwift/Schedulers/MainScheduler.swift; sourceTree = ""; }; + F2231D72F1160C74E2133DF75BB5FBE4 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; + F2AEF46A7A73460A857CFF9FF0A8032A /* SubscribeOn.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SubscribeOn.swift; path = RxSwift/Observables/SubscribeOn.swift; sourceTree = ""; }; + F2B275744377AF2C42F20A6AE4224A82 /* Lock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Lock.swift; path = RxSwift/Concurrency/Lock.swift; sourceTree = ""; }; + F3270F9C706BBB358402A3293BAE1924 /* Create.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Create.swift; path = RxSwift/Observables/Create.swift; sourceTree = ""; }; + F3BB1CD1B3BA9383614CD2E82FA49706 /* Signal+Subscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Signal+Subscription.swift"; path = "RxCocoa/Traits/Signal/Signal+Subscription.swift"; sourceTree = ""; }; + F3CE35307E9AD045F7B6F30DA37309B4 /* RxCollectionViewDataSourceType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxCollectionViewDataSourceType.swift; path = RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift; sourceTree = ""; }; + F3D82FF5D6467211D3A902B4FD4B7551 /* RRAlamofireRxAPI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RRAlamofireRxAPI-umbrella.h"; sourceTree = ""; }; + F423D93CECEE5265CFDDF182E4F484B1 /* RxTableViewReactiveArrayDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RxTableViewReactiveArrayDataSource.swift; path = RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift; sourceTree = ""; }; + F45921F52137ACD33B61F2B4DC15CB72 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + F6B3D48D2AF3E0D6EEEF92ED72143262 /* TakeLast.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TakeLast.swift; path = RxSwift/Observables/TakeLast.swift; sourceTree = ""; }; + F8123C40BE81B4A256A74EA09A747017 /* DelegateProxyType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DelegateProxyType.swift; path = RxCocoa/Common/DelegateProxyType.swift; sourceTree = ""; }; + F9204073CAC5908CAD174758321F46F1 /* ControlTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ControlTarget.swift; path = RxCocoa/Common/ControlTarget.swift; sourceTree = ""; }; + F9BDD00AFD8F7D5654AA12B69E7CCA22 /* Pods-RRAlamofireRxAPI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RRAlamofireRxAPI_Example.release.xcconfig"; sourceTree = ""; }; + FBA3E387DEA6090608A19DC1D9AF2E28 /* RxSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RxSwift.modulemap; sourceTree = ""; }; + FBA42F5582C55942D3865A62DFE1B897 /* RxRelay.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RxRelay.release.xcconfig; sourceTree = ""; }; + FC7E5978FF43F0A75A35575A1C8D0A46 /* PriorityQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PriorityQueue.swift; path = Platform/DataStructures/PriorityQueue.swift; sourceTree = ""; }; + FCA2C2B5902751CD24CD5A7CEA4F87DF /* UIButton+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIButton+Rx.swift"; path = "RxCocoa/iOS/UIButton+Rx.swift"; sourceTree = ""; }; + FCDEBAA6C7D132433C8CA12CAEA73BD0 /* RRAlamofireRxAPI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RRAlamofireRxAPI.modulemap; sourceTree = ""; }; + FD2CD7A52A861D742B3E6302BA594BBC /* UIGestureRecognizer+Rx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIGestureRecognizer+Rx.swift"; path = "RxCocoa/iOS/UIGestureRecognizer+Rx.swift"; sourceTree = ""; }; + FD32A46B988746BAC09820C1028BDFA6 /* Zip+arity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Zip+arity.swift"; path = "RxSwift/Observables/Zip+arity.swift"; sourceTree = ""; }; + FE0A6602C51DF8D9D3F84C4F2C669EE8 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; + FE4D285A0581D6FCDF1A3BBFB26B26B7 /* SynchronizedDisposeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SynchronizedDisposeType.swift; path = RxSwift/Concurrency/SynchronizedDisposeType.swift; sourceTree = ""; }; + FEAFD51D17A1C5FF63D108389E84EBE3 /* SingleAssignmentDisposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SingleAssignmentDisposable.swift; path = RxSwift/Disposables/SingleAssignmentDisposable.swift; sourceTree = ""; }; + FF8B264DFE802855D5D67E7CDDABFC3C /* RxRelay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RxRelay.framework; path = RxRelay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FFD893D647683A7ABB7D79AFD5302A04 /* Pods-RRAlamofireRxAPI_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RRAlamofireRxAPI_Example-umbrella.h"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 05A69CEB07DF83173E1AECCCD49C9114 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1C353ED28D0C5BC6CBA6D9947196838F /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 090C1D63463ACF622287EFF9D5C9392D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 50013C33D35EBAF31ACF3A8B3A9A3FB4 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2985B582B007F940291FDDA88F401395 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2C6CC69968C23C696B23AC3FDAF46CEE /* Foundation.framework in Frameworks */, + 3D257520943D14B1586A7862FFDAB103 /* RxSwift.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6AA51315ED6F1082C04F24D1A1F616C9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 40B6383F008CDB52C355B939F568165C /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A3B831BFA53BF324FD4C01F6FB57C599 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5C92F57E0B2D107615FC893E5A91ACDB /* Foundation.framework in Frameworks */, + 2DEB68F3A6AD2743CCBF7AADB54D636E /* RxRelay.framework in Frameworks */, + 7EB416AE20D75C8F24F0359353C7DB06 /* RxSwift.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B96FD5FF599E6E88C8AC3E287708743E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9DE01E6629A0B7A2DC47EDB39EE2E4EA /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C3D3DA41ADDDDC353D3B48AA7D61C568 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E7DE33E0746DC97B6B450B2F98032DB0 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 06D2D3AC74E4F014FD052C7CE812B57F /* Alamofire */ = { + isa = PBXGroup; + children = ( + B297D98097A16A541FAFB833934B5C82 /* AFError.swift */, + 1612FC132064FE7CBE0582653297AF83 /* Alamofire.swift */, + 96FFF9F1C2CBDFBB419536DF811009E8 /* DispatchQueue+Alamofire.swift */, + 20106E5F3C0B65B287BD422532ACB287 /* MultipartFormData.swift */, + F2231D72F1160C74E2133DF75BB5FBE4 /* NetworkReachabilityManager.swift */, + FE0A6602C51DF8D9D3F84C4F2C669EE8 /* Notifications.swift */, + 2EB348CE3CACD71C50B0C6D3146A756F /* ParameterEncoding.swift */, + 5000ECE1FE664974E606EE6BE7812D1D /* Request.swift */, + EBFBF72F9F724CA4B7D71047B68C005E /* Response.swift */, + B8AF5C61F779BFE6FF524F74FC6A5928 /* ResponseSerialization.swift */, + 0084B3E1A49DEA57F5FA06EDCF58B4B4 /* Result.swift */, + 9BBF67F25E7F426FA79E18E3206CAC82 /* ServerTrustPolicy.swift */, + 03F4493AA0FE74495CEBA81C0D4F6B28 /* SessionDelegate.swift */, + 83FF6FD16580164BCDF295B6BA911BF5 /* SessionManager.swift */, + 3FBBCCEF4C0861B24A14605E09F13E09 /* TaskDelegate.swift */, + A1D039C04088FF486EC34F5F3C6CF7F6 /* Timeline.swift */, + 46433D78BE950BD146A77C6B66C79731 /* Validation.swift */, + ABFA78E878C1AE5268C79B9996993409 /* Support Files */, + ); + name = Alamofire; + path = Alamofire; + sourceTree = ""; + }; + 23530B31FDDD4011D6B780AABA32312B /* RxRelay */ = { + isa = PBXGroup; + children = ( + 7F1B60AEADAF4DCD399241CD33A8E8C5 /* BehaviorRelay.swift */, + 8CF2A0900367E7E51BA84A5875775DD4 /* Observable+Bind.swift */, + 2A1EAE89CE47C4CE086D2819D410AB3D /* PublishRelay.swift */, + C796D8F8DC46E2DC93484930422BC1CB /* ReplayRelay.swift */, + 2998AE78DEF02935DB1EDAACAB8168BE /* Utils.swift */, + E40068559A94FBCE465112BC82002FFA /* Support Files */, + ); + name = RxRelay; + path = RxRelay; + sourceTree = ""; + }; + 2392F6881730073B093E779F9CCEF6E2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A593D1F995F7F512AFDB6312AA4ED8FF /* RxRelay.framework */, + 14A999CEA14A616176F4792BAAE987C5 /* RxSwift.framework */, + 9CF2E404F424D1AAD084181E3650E6C0 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 258C01992220B85CE874DD77F36A8D82 /* Support Files */ = { + isa = PBXGroup; + children = ( + FCDEBAA6C7D132433C8CA12CAEA73BD0 /* RRAlamofireRxAPI.modulemap */, + B99BAA8D31124D07F940968853CFCD99 /* RRAlamofireRxAPI-dummy.m */, + 55D67BE0618A65959A9FF84058B2AB0F /* RRAlamofireRxAPI-Info.plist */, + F17B4FF2CEBC590B281F338AF2E51B51 /* RRAlamofireRxAPI-prefix.pch */, + F3D82FF5D6467211D3A902B4FD4B7551 /* RRAlamofireRxAPI-umbrella.h */, + 644E1D1A9521DF0DB48743D57F528F48 /* RRAlamofireRxAPI.debug.xcconfig */, + B6B864AB65B9252F06011CF64C541532 /* RRAlamofireRxAPI.release.xcconfig */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/RRAlamofireRxAPI"; + sourceTree = ""; + }; + 2C4BADED4BA68F7A195A3F5C7AFF7E75 /* RxSwift */ = { + isa = PBXGroup; + children = ( + 9BE962803E463391AC19DEF993548CF2 /* AddRef.swift */, + 5B03DB256AFB61D7445B42C7A004D34B /* Amb.swift */, + 3E27AA1530866875ED2E80B00172863E /* AnonymousDisposable.swift */, + 7273D8A58607F6E924E7CE999078E4EE /* AnonymousObserver.swift */, + 08F8B28490A7384E5A3A16A6098F5693 /* AnyObserver.swift */, + DD0BEFBC253FC360FF0563C11F6F7DEA /* AsMaybe.swift */, + 3572C7B325F8030DC38651B80B9CA5CB /* AsSingle.swift */, + 649A875FC6FE9935D07D96DDAC06FB4B /* AsyncLock.swift */, + 2D64B467CA706B8C6E83C60180EF3AD5 /* AsyncSubject.swift */, + 5C5419FB172272BA12A77C11B500838F /* AtomicInt.swift */, + 29AE60F6FD2EB6129A9D3CC599F5BF10 /* Bag.swift */, + 3E213015BD7AA2992413DC68867A614D /* Bag+Rx.swift */, + 1F64B2917511EB8617219BE5DC0E9532 /* BehaviorSubject.swift */, + 7DFA36A6E27AAFCF06D3013EB0D5D8CA /* BinaryDisposable.swift */, + B5932A72FD31457B98D8FE06561F8181 /* Binder.swift */, + 782540E77B3CE26F3BB7EA33423B1BBB /* BooleanDisposable.swift */, + 7C4FD003C63C3AFA1EB684FA0393597B /* Buffer.swift */, + 7AAF99AC66E18EA8B948A33967E1CE6F /* Cancelable.swift */, + DCA550874A6FEB8F96889FC7CC6704EC /* Catch.swift */, + 9921F11DAF1B0702506BEBB68C852B77 /* CombineLatest.swift */, + C6BE792B8329AB4548F2E6057C43CCC2 /* CombineLatest+arity.swift */, + C035A21112F20E86674EF314C54FE89C /* CombineLatest+Collection.swift */, + A25BCFECC7040F4F111FAF698AC44A59 /* CompactMap.swift */, + 63757339E24BF22D684FB68F14209436 /* Completable.swift */, + B01E429004CC2118D5F437360FE3D579 /* Completable+AndThen.swift */, + 9E331B4A6FE6F067195AB707F8705431 /* CompositeDisposable.swift */, + D4B53D84C76266B9A041EB250E2BAD91 /* Concat.swift */, + 70B3330A574A7646B8EAD9501846EEAF /* ConcurrentDispatchQueueScheduler.swift */, + 002B32B8D7F6A8C80741BED931607A42 /* ConcurrentMainScheduler.swift */, + 924AB5EB3352679C74C2A53B0BDBF978 /* ConnectableObservableType.swift */, + F3270F9C706BBB358402A3293BAE1924 /* Create.swift */, + 0887DC082E47F7704B1362336371843E /* CurrentThreadScheduler.swift */, + ED0C3D8C74184795E6C0207138DF9FAD /* Date+Dispatch.swift */, + EDBDEF15870475C70D3491A413EA7316 /* Debounce.swift */, + F17E7B2A549DDF11BBF88445EAFF46E1 /* Debug.swift */, + 93324C76ECD8D2A77DAB476E9F688FD3 /* Decode.swift */, + C2C8891B74150C396DDDF13935ADC26B /* DefaultIfEmpty.swift */, + 7EBFC416B1AFDBAF54CB657770D5D0C5 /* Deferred.swift */, + 2BA88189B95E974804E08952B6FD0A5B /* Delay.swift */, + A35B67708AA0ED5D9E696DED132F1BE5 /* DelaySubscription.swift */, + 39455345DC2CF65645FDA90C7CB11194 /* Dematerialize.swift */, + AF966C8AC793E5311C1E1B06FC956137 /* DispatchQueue+Extensions.swift */, + C4CDAC26E5E0AABEFCFB9B6EE71197EA /* DispatchQueueConfiguration.swift */, + 47FCD864073533646375F3B45121794F /* Disposable.swift */, + 4545B36169281E376594F226186F12D2 /* Disposables.swift */, + 8345F7B6AD763344B796FE0D298F1B32 /* DisposeBag.swift */, + 4210F0FA732363276F935A9DEBF762F3 /* DisposeBase.swift */, + 08D79C405D3F3CB10455E0A853C0142D /* DistinctUntilChanged.swift */, + 094CE3E277E858E843C13B101C4DB489 /* Do.swift */, + 3920B4EA8C8704B591326F3369F79E3A /* ElementAt.swift */, + 334F3E102376018988A23452EF622D11 /* Empty.swift */, + 6F1C32E539A269DB8CBEB4F40B5BE200 /* Enumerated.swift */, + B2982030FF1EF222974B01E0C9D68AA4 /* Error.swift */, + 19C1D4AF83BBC2BC2AE911CF3916F9BD /* Errors.swift */, + 1281A01B1D18A3CFC62D2E8C6D84CC50 /* Event.swift */, + 147B40BEEFD9A0D7D37025648226B261 /* Filter.swift */, + 3E88697878DDAF643CA9E0A9A596CC5B /* First.swift */, + 6B69AD27E7A5604BFA9099D5845A99D7 /* Generate.swift */, + 1EB36CF0A79DBEBBDE7BB52775BDD150 /* GroupBy.swift */, + 01F1D0EFD393B36ADFB31646E5C0B1CB /* GroupedObservable.swift */, + D2A5BE93D5F8ECFDCF17EC4E572DBEB7 /* HistoricalScheduler.swift */, + E0FD2805F8F5AB21F36A65116AE7A852 /* HistoricalSchedulerTimeConverter.swift */, + 0C8CC5F600E4D11B598B502912D778C5 /* ImmediateSchedulerType.swift */, + C372A4AEEEAF8C3C8DD1BDDEDAE673E8 /* Infallible.swift */, + BEA57BA60BCD86D699057D35360DB517 /* Infallible+CombineLatest+arity.swift */, + C7C1E06CCC637A5A582C7A4B4361051F /* Infallible+Create.swift */, + BE34958226AADBC1222B905487891E0F /* Infallible+Operators.swift */, + 252ECC1A83CCA13C6A7C8EA56461EC93 /* Infallible+Zip+arity.swift */, + B8C9397E7524F2FCD13E24E21E07EEC2 /* InfiniteSequence.swift */, + 117960B63496E603940399CAF93ABDB6 /* InvocableScheduledItem.swift */, + 860AFBA5B979AE505D2A32A326418FBF /* InvocableType.swift */, + E08E0E4EE5B86B6FD4EC6FBE07398E31 /* Just.swift */, + F2B275744377AF2C42F20A6AE4224A82 /* Lock.swift */, + 84739D4197F813F38B6653E7283A3FC2 /* LockOwnerType.swift */, + F1BCFDA7FB0064C76C2DF8C0788CDDF5 /* MainScheduler.swift */, + 9A730CFAFF455BDD0236C86453797E49 /* Map.swift */, + E9E6400C46E029F0A9FDE5473EEB2AA7 /* Materialize.swift */, + C07A658B0C114245886C62DA42BCEE99 /* Maybe.swift */, + 8758841F3B4C072CE8086A40A4320EF2 /* Merge.swift */, + E7D9405FF040B121629D7F0257633BD1 /* Multicast.swift */, + 1A3F91D6D64C907592654E4F9C1E5C54 /* Never.swift */, + B5F77F6C7206E161946EB463E4D0C60D /* NopDisposable.swift */, + 62102C57B96F32CC92298EFAD24508FB /* Observable.swift */, + 815A49079565D76A3F211A5820332A62 /* ObservableConvertibleType.swift */, + 7B7A89908D8B57BF28FBFF8CBA9288BB /* ObservableConvertibleType+Infallible.swift */, + A15D7E5A307D31EF687E09D2A4335BA7 /* ObservableType.swift */, + B07A331BDBE2D6154D45D23A876094C7 /* ObservableType+Extensions.swift */, + AE005B984272D269BD3EFF7D4EFB9BF9 /* ObservableType+PrimitiveSequence.swift */, + C38F900B66F23A85BA7E115C9615E5E7 /* ObserveOn.swift */, + 77F446123673774E63E426337B6A4121 /* ObserverBase.swift */, + 526DD19B47621DC43D57EB64D8664F1B /* ObserverType.swift */, + 41A460D6607081122114CE138C088407 /* OperationQueueScheduler.swift */, + 54A337FF7903E6D5BEC9B6F6FA2090F0 /* Optional.swift */, + E6906DF2B237D4C06236D9CCB85E8C85 /* Platform.Darwin.swift */, + 34F5F3E2188C0AED0E87BF8B735ACA4E /* Platform.Linux.swift */, + C49400254CF3CD2CD9764B9EE6B2A402 /* PrimitiveSequence.swift */, + 866218B8DB32ADE28B252783A7BF2322 /* PrimitiveSequence+Zip+arity.swift */, + FC7E5978FF43F0A75A35575A1C8D0A46 /* PriorityQueue.swift */, + 1FBDE1B39902E5B28FC3162AA3C77F48 /* Producer.swift */, + C4A31362AE4057E4DB7561B2E247AF2C /* PublishSubject.swift */, + 5FD24B6B9D7897D75ABD48A225B947DE /* Queue.swift */, + 75EEC30A30F239FACEFA60AD6E9ACC45 /* Range.swift */, + 41D73DEA8DEDEC817B200CB63CAB2CF6 /* Reactive.swift */, + 760F1D6451B5BE052B6C8960719B1D5C /* RecursiveLock.swift */, + 81836D76961454B3758DD116C8CB18D2 /* RecursiveScheduler.swift */, + 3B3E7DDA0E6D4D73CE5FB8847BC1EFFD /* Reduce.swift */, + 7108E198B791465D50E0683CF1141B86 /* RefCountDisposable.swift */, + E4CC7FD0F42527090B229EC67CDFC893 /* Repeat.swift */, + 73F2CB48A239D05A871466A4C1B875FC /* ReplaySubject.swift */, + DE3E4E72D86D8A1FAC85FEAA366DF95C /* RetryWhen.swift */, + EFFC63D28579F3571A659267FAC15419 /* Rx.swift */, + DA5752F0D7047FB9A1738DE48428ACB0 /* RxMutableBox.swift */, + D357CA528F40CA868DC9FF67E6FE2492 /* Sample.swift */, + D1F62E18F3BFF6DC296DF0E5311B6FFA /* Scan.swift */, + 70371B2593732BBBED56F609E2087C15 /* ScheduledDisposable.swift */, + 15CDF4BB6A7E02D621803DDE13E767AF /* ScheduledItem.swift */, + 84A693C5E5BBE2F9AAC8A3EE1BE28FF0 /* ScheduledItemType.swift */, + 57B9339F4303B39D0D7E313E37848163 /* SchedulerServices+Emulation.swift */, + 578FB1174A551BC18EDB6DFAF8F44D21 /* SchedulerType.swift */, + 4F24C0410A8C95773F57446A7406DC6F /* Sequence.swift */, + C25F62A5E85F8D0935DB0D6F1BCDB2C4 /* SerialDispatchQueueScheduler.swift */, + 6EC3FD8BF7BC5C66DC73EB3C13730295 /* SerialDisposable.swift */, + 56B220DC41ED06A74849CF7723396E06 /* ShareReplayScope.swift */, + D6FD7E6A63297A50A06D3EBFBA5E8C9B /* Single.swift */, + FEAFD51D17A1C5FF63D108389E84EBE3 /* SingleAssignmentDisposable.swift */, + AF4D007C67166DD65ECE90F2644C1E89 /* SingleAsync.swift */, + EDDCD6AB0CEECCB3AB43531DCE5CE251 /* Sink.swift */, + 92A42A36AAEF296D549075AB1C21F03B /* Skip.swift */, + 902F85342BC8A0BAFF92066A8CDE5B3D /* SkipUntil.swift */, + 218BB497FB7FC333223BF7B238BB59A1 /* SkipWhile.swift */, + 486EB92566228EC43FED66966AAAF5F7 /* StartWith.swift */, + 25993E40BB8CDAD075A0E37FEC1D5F8F /* SubjectType.swift */, + F2AEF46A7A73460A857CFF9FF0A8032A /* SubscribeOn.swift */, + 52D8AAEFF4EA15CBA99AEF68696A5929 /* SubscriptionDisposable.swift */, + 0BFAD08C802EDFA78E136B8DC654816F /* SwiftSupport.swift */, + C3E559690B41943CE2B419AC30E02EEE /* Switch.swift */, + 89A52BC27B7D026A9279115A1246F66E /* SwitchIfEmpty.swift */, + FE4D285A0581D6FCDF1A3BBFB26B26B7 /* SynchronizedDisposeType.swift */, + E44E755FFE959255ED18FEF4F315E3D1 /* SynchronizedOnType.swift */, + 1C15BE876B307C95094D06A23B81C8B4 /* SynchronizedUnsubscribeType.swift */, + BFFFB0437F463AA38FAE70AB0FDEEF4B /* TailRecursiveSink.swift */, + 35A354E1EC51F0FA666C107044C65FFE /* Take.swift */, + F6B3D48D2AF3E0D6EEEF92ED72143262 /* TakeLast.swift */, + 39C9CD83A4F41884DA60F1FA93DDF382 /* TakeWithPredicate.swift */, + 522A8F3261E1AEA4E54AC0949D762674 /* Throttle.swift */, + 2B76266187B6FBD26BE45A478AB59AD5 /* Timeout.swift */, + C033311DED642F19222B8251F8380A28 /* Timer.swift */, + 5D90E5F7FB4CAB81EB1A3A0DD4194527 /* ToArray.swift */, + A9F63038D9B456CEBB9C1FEBA8559D78 /* Using.swift */, + B16A1DD65A5849955E6CEEC1BE372DAE /* VirtualTimeConverterType.swift */, + 757C1AA3B31B2C24780F1ADA4B408A85 /* VirtualTimeScheduler.swift */, + EBF9F7D9AFFE8377D9B20798E73A7026 /* Window.swift */, + 77C766557DF4CC556D8A1D55815210AD /* WithLatestFrom.swift */, + 9BB1A73E57CC80F5981A783B12AD14AA /* WithUnretained.swift */, + 15059BAA598B8DC6F99CCDEFBDBB16D7 /* Zip.swift */, + FD32A46B988746BAC09820C1028BDFA6 /* Zip+arity.swift */, + 76CEDEC3592CD332F4DE1AFC8944BB71 /* Zip+Collection.swift */, + C43897056CF8CE65F74576109E873CD2 /* Support Files */, + ); + name = RxSwift; + path = RxSwift; + sourceTree = ""; + }; + 3A742DB221D149C1EAA7218F488EDAC9 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 3E6F69A9A7EFCED74F0BD525995DE51F /* Pods-RRAlamofireRxAPI_Example */, + 6A9374CBF57B12AF52FAD74D9E0D04D9 /* Pods-RRAlamofireRxAPI_Tests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 3E6F69A9A7EFCED74F0BD525995DE51F /* Pods-RRAlamofireRxAPI_Example */ = { + isa = PBXGroup; + children = ( + E22FE909E80D1875EAE68F2F3FA0AF7B /* Pods-RRAlamofireRxAPI_Example.modulemap */, + 0956F2EC69AD7BAB790F4E11988C51C5 /* Pods-RRAlamofireRxAPI_Example-acknowledgements.markdown */, + 4A65190F438B4F67B9FB56DCAA38942E /* Pods-RRAlamofireRxAPI_Example-acknowledgements.plist */, + 2F3E2F16D7C1C5D2067B9B2C0A147E32 /* Pods-RRAlamofireRxAPI_Example-dummy.m */, + 15ABF61746DB6F3D9BB55D5FBDD1CDB5 /* Pods-RRAlamofireRxAPI_Example-frameworks.sh */, + B69636494D79C313397BAF4427C95D1B /* Pods-RRAlamofireRxAPI_Example-Info.plist */, + FFD893D647683A7ABB7D79AFD5302A04 /* Pods-RRAlamofireRxAPI_Example-umbrella.h */, + 473A0466ACCBF27E5EEBCB9E8E30B032 /* Pods-RRAlamofireRxAPI_Example.debug.xcconfig */, + F9BDD00AFD8F7D5654AA12B69E7CCA22 /* Pods-RRAlamofireRxAPI_Example.release.xcconfig */, + ); + name = "Pods-RRAlamofireRxAPI_Example"; + path = "Target Support Files/Pods-RRAlamofireRxAPI_Example"; + sourceTree = ""; + }; + 657CE9078C9D0A859C36D85E32A5F8D5 /* Products */ = { + isa = PBXGroup; + children = ( + 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire.framework */, + A56BEB333099C36BD3C052E978431D87 /* Pods_RRAlamofireRxAPI_Example.framework */, + EA694F76A6017B38D3FEDFAB5B2AA3AA /* Pods_RRAlamofireRxAPI_Tests.framework */, + CB2E1F967D72BFD69786EF53E2AD6828 /* RRAlamofireRxAPI.framework */, + BC432FD48A5932251F1CAFBC4BF74894 /* RxCocoa.framework */, + FF8B264DFE802855D5D67E7CDDABFC3C /* RxRelay.framework */, + 809C5FAB588354C9BA37DC3EAB8CB45C /* RxSwift.framework */, + ); + name = Products; + sourceTree = ""; + }; + 6A9374CBF57B12AF52FAD74D9E0D04D9 /* Pods-RRAlamofireRxAPI_Tests */ = { + isa = PBXGroup; + children = ( + 12DC780CD51D1AC710D476507EA14E34 /* Pods-RRAlamofireRxAPI_Tests.modulemap */, + 89D9F47FB672D712349F8D4ADDB4522E /* Pods-RRAlamofireRxAPI_Tests-acknowledgements.markdown */, + 10A91AB9FF69846806CC1A090A97F4F3 /* Pods-RRAlamofireRxAPI_Tests-acknowledgements.plist */, + 45AACED65B98397576B882833D154470 /* Pods-RRAlamofireRxAPI_Tests-dummy.m */, + 93023386F4CFFEB2A050BA2C9B0E6774 /* Pods-RRAlamofireRxAPI_Tests-Info.plist */, + 9BCC2AB5F996634A793D95FDEC5EAE9F /* Pods-RRAlamofireRxAPI_Tests-umbrella.h */, + B7388B673C000F31CAA4C041D60C91E4 /* Pods-RRAlamofireRxAPI_Tests.debug.xcconfig */, + 791C045FF0003E09983C10224495632F /* Pods-RRAlamofireRxAPI_Tests.release.xcconfig */, + ); + name = "Pods-RRAlamofireRxAPI_Tests"; + path = "Target Support Files/Pods-RRAlamofireRxAPI_Tests"; + sourceTree = ""; + }; + 8D1A79E705C55F404182ADB850AC7E0F /* RRAlamofireRxAPI */ = { + isa = PBXGroup; + children = ( + EB85A7FC4AA28B68BB9AA8B25001DD59 /* RRAPIRxManager.swift */, + AE42AC87A8C53F9BACB3C0CFD96B607A /* Pod */, + 258C01992220B85CE874DD77F36A8D82 /* Support Files */, + ); + name = RRAlamofireRxAPI; + path = ../..; + sourceTree = ""; + }; + 9CF2E404F424D1AAD084181E3650E6C0 /* iOS */ = { + isa = PBXGroup; + children = ( + C5F154F39370239423B4FF13FB56D2D3 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + ABFA78E878C1AE5268C79B9996993409 /* Support Files */ = { + isa = PBXGroup; + children = ( + 429B027E64F97AE3F4CC37E10FC2A2BA /* Alamofire.modulemap */, + 61A276B594CBEBCE91C27D74C96D3266 /* Alamofire-dummy.m */, + 272608D12988387D540CAAE7C53755B2 /* Alamofire-Info.plist */, + 86CFC88F19E94510509B2457D4ECE548 /* Alamofire-prefix.pch */, + ED372D31861D13CA9B01475D5E855768 /* Alamofire-umbrella.h */, + 620007F1A4CB48F039A8AE73B3A89CE3 /* Alamofire.debug.xcconfig */, + 79AACD21868A33090E3805E26B9F46F9 /* Alamofire.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Alamofire"; + sourceTree = ""; + }; + AE42AC87A8C53F9BACB3C0CFD96B607A /* Pod */ = { + isa = PBXGroup; + children = ( + F45921F52137ACD33B61F2B4DC15CB72 /* LICENSE */, + BA18D5295FE47E7142D89CEEC1852120 /* README.md */, + CE943B6EEC95DE28220E9A064B0DD1B7 /* RRAlamofireRxAPI.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + BFDFBE161873F719DF0A2384891E7A2C /* Pods */ = { + isa = PBXGroup; + children = ( + 06D2D3AC74E4F014FD052C7CE812B57F /* Alamofire */, + F4C1A048F5BFB5F36AA60197A8150563 /* RxCocoa */, + 23530B31FDDD4011D6B780AABA32312B /* RxRelay */, + 2C4BADED4BA68F7A195A3F5C7AFF7E75 /* RxSwift */, + ); + name = Pods; + sourceTree = ""; + }; + C43897056CF8CE65F74576109E873CD2 /* Support Files */ = { + isa = PBXGroup; + children = ( + FBA3E387DEA6090608A19DC1D9AF2E28 /* RxSwift.modulemap */, + 62A9370547D8628C9B1EFC4A93A32C81 /* RxSwift-dummy.m */, + 597C2F09085AB6FAAB30F269DF1CAA03 /* RxSwift-Info.plist */, + A5680330E36BABA82E8B9C5EA75AEBAD /* RxSwift-prefix.pch */, + 99A8316EAEE2B14E288921F5DBEC47B8 /* RxSwift-umbrella.h */, + EDBC32F890F842E54799D022C5BCA39E /* RxSwift.debug.xcconfig */, + D9FBC09BCBCD08EBDEDA4ACFB8ECB774 /* RxSwift.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/RxSwift"; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + E062739ED35385049D8250A0038B6753 /* Development Pods */, + 2392F6881730073B093E779F9CCEF6E2 /* Frameworks */, + BFDFBE161873F719DF0A2384891E7A2C /* Pods */, + 657CE9078C9D0A859C36D85E32A5F8D5 /* Products */, + 3A742DB221D149C1EAA7218F488EDAC9 /* Targets Support Files */, + ); + sourceTree = ""; + }; + E062739ED35385049D8250A0038B6753 /* Development Pods */ = { + isa = PBXGroup; + children = ( + 8D1A79E705C55F404182ADB850AC7E0F /* RRAlamofireRxAPI */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + E40068559A94FBCE465112BC82002FFA /* Support Files */ = { + isa = PBXGroup; + children = ( + 819187C7DD71E69EFB906C19B1EBC874 /* RxRelay.modulemap */, + 0A12618DBDCC300BB063F5E53B881A90 /* RxRelay-dummy.m */, + 87E84C58FFC8AE6396B7EC9F38B3B892 /* RxRelay-Info.plist */, + ECB5CE1AFA3386CCC0FFFE8902EAA2F4 /* RxRelay-prefix.pch */, + 4C989F0E9BCEDAB474B38401835728C4 /* RxRelay-umbrella.h */, + 8ACF3F1B927742CDCAE13A46E33AEBA4 /* RxRelay.debug.xcconfig */, + FBA42F5582C55942D3865A62DFE1B897 /* RxRelay.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/RxRelay"; + sourceTree = ""; + }; + F20CE8E8819331AA841BDDEDA296267E /* Support Files */ = { + isa = PBXGroup; + children = ( + C418C6C4D5C2A1EB6DCAD1C7D5FCE655 /* RxCocoa.modulemap */, + 26AF50B03B63887816299B8AF1E553EC /* RxCocoa-dummy.m */, + 0DF77F1C27B0504FCF77E6FB127CA192 /* RxCocoa-Info.plist */, + 7CDA84DD9C37788EF13B29CBBC411B41 /* RxCocoa-prefix.pch */, + CA62BF656D2C53390FCF4F9AFE2FD357 /* RxCocoa-umbrella.h */, + 8FA12AC9F2741A51DEDC273383EA537E /* RxCocoa.debug.xcconfig */, + 8017A3694A82B47110F6CF4380DE68F1 /* RxCocoa.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/RxCocoa"; + sourceTree = ""; + }; + F4C1A048F5BFB5F36AA60197A8150563 /* RxCocoa */ = { + isa = PBXGroup; + children = ( + AFDE891551FF6E2BD5BB1A852A79DEEF /* _RX.h */, + 3815C0670132B4813F089FE5570755C5 /* _RX.m */, + 4A109F2D74C62A0E673D797CABF504FC /* _RXDelegateProxy.h */, + 88CDDA5CCE8CFF9CAB5811A8EB02B3F6 /* _RXDelegateProxy.m */, + 1842F4BDA22D55C2ED44EA52A420D368 /* _RXKVOObserver.h */, + EDD8CB965C10D5E33E8B6A9C2D2CB6F7 /* _RXKVOObserver.m */, + 6192C72A1ABC38A14666367CB1F7FA00 /* _RXObjCRuntime.h */, + 90BB5C209C3C05CC2A324241613C8ECF /* _RXObjCRuntime.m */, + D27303C28C8063D576AC4D541E0EDA05 /* Bag.swift */, + 6A315FEE253EE95D37F8B9FAB2DF6E70 /* BehaviorRelay+Driver.swift */, + B5067F995C125ACC36BECB1058423F4C /* ControlEvent.swift */, + 31B5A4436EEB323A178EC0AFB14371E5 /* ControlEvent+Driver.swift */, + ADC9B4275875E49B6503123FC6D519C1 /* ControlEvent+Signal.swift */, + 3C4ED0C96D6BDF436D526068E6EDC12D /* ControlProperty.swift */, + 674A8133B681DEB5AD47861C5AFA52A7 /* ControlProperty+Driver.swift */, + F9204073CAC5908CAD174758321F46F1 /* ControlTarget.swift */, + 72039EB659556D0891DE5238E9F0A456 /* DelegateProxy.swift */, + F8123C40BE81B4A256A74EA09A747017 /* DelegateProxyType.swift */, + 7E77665A9AA213C30E94404968FE397F /* DispatchQueue+Extensions.swift */, + C359E34D8CF9BA270781CF0AD3E25535 /* Driver.swift */, + 04E86B93B248FA1D25807AC3A356C8F7 /* Driver+Subscription.swift */, + CB5B99FB9F0F74A595480E7909F0C62E /* Infallible+Bind.swift */, + 6DBB07A683ED35499083C09B308558BD /* InfiniteSequence.swift */, + DEC32E754607912FA531A7A374717E44 /* ItemEvents.swift */, + DF058F0990B58584AD1C7B33C91FF554 /* KVORepresentable.swift */, + 265218B19B275816B9C6AB865ED8E22E /* KVORepresentable+CoreGraphics.swift */, + B132374C07E018A6C1C49B4D159B3CF1 /* KVORepresentable+Swift.swift */, + B3B5D90315E12022B35BFB5CFCF2304A /* NotificationCenter+Rx.swift */, + 37400B01223A58E9D960E919B1A6AF59 /* NSButton+Rx.swift */, + 09528839E10FB01D035CC5392F8B6CAD /* NSControl+Rx.swift */, + 46A000F55431CC4B86108F3B3861F281 /* NSObject+Rx.swift */, + AE63D583B78F269C609064C4F3B827F0 /* NSObject+Rx+KVORepresentable.swift */, + 353591DFD0763A74487ABC5AB2D80ABE /* NSObject+Rx+RawRepresentable.swift */, + 954A2FB2FB6B30104BF2D9C711CE98C0 /* NSSlider+Rx.swift */, + 7748003DE32BC1513F34FF67999AAE63 /* NSTextField+Rx.swift */, + 4A26F6EB6C977432DF7DD2E2DA1DA985 /* NSTextStorage+Rx.swift */, + ED1A756353E17DAE7E935C5CDEE7D609 /* NSTextView+Rx.swift */, + BA42F9BEB33F2A917C26318A278A144F /* NSView+Rx.swift */, + 54FC1FBDAB623FEDE1C333502F465598 /* Observable+Bind.swift */, + BFB062F5FA138B9BB2C0F1A277D706BD /* ObservableConvertibleType+Driver.swift */, + EC9E06356BA2D0C4D0D16AB82C56CF21 /* ObservableConvertibleType+SharedSequence.swift */, + B2E9C8CEE2FDEA3C4BEDCE2175F1B7FA /* ObservableConvertibleType+Signal.swift */, + 341E0F8B3A659221DC7EC0C49AC2B98D /* Platform.Darwin.swift */, + 55D94E8505C5893FF8F0BC5BB4D5535F /* Platform.Linux.swift */, + 4D0A9168E3E7D85F64C8C54A3016653A /* PriorityQueue.swift */, + DD9A95D52E3E645E12510EAE824FB842 /* PublishRelay+Signal.swift */, + 2DA4755B04F4BD7EF3D364D25C6239F7 /* Queue.swift */, + 2042B39D11D71B9D00E4608B83CF260B /* RecursiveLock.swift */, + 5327D44D0310315A6A64E2D1018AD678 /* RxCocoa.h */, + BB2C482249E4C0BC15A761DA3A3B1BA8 /* RxCocoa.swift */, + 31BA528D9AD154F8108D55573412BB53 /* RxCocoaObjCRuntimeError+Extensions.swift */, + 11281E30E47BB45F0E67638CEF1DC2E1 /* RxCocoaRuntime.h */, + E61EB3AA8E353BC831CC1E69C63B5292 /* RxCollectionViewDataSourcePrefetchingProxy.swift */, + 975109020306FE2A8295BB64E141EDCD /* RxCollectionViewDataSourceProxy.swift */, + F3CE35307E9AD045F7B6F30DA37309B4 /* RxCollectionViewDataSourceType.swift */, + 6A59C4DED4E9DC3EDF1BD8755F1A18F7 /* RxCollectionViewDelegateProxy.swift */, + C899DEA9078C875397DF3B4E7679FF92 /* RxCollectionViewReactiveArrayDataSource.swift */, + 76D8C3953A9CD5EF378B3131313B6284 /* RxNavigationControllerDelegateProxy.swift */, + CC4CB10E3C8386DF216CA18766130667 /* RxPickerViewAdapter.swift */, + 2565AA27AD2AF1FF9BF1EC0752030A65 /* RxPickerViewDataSourceProxy.swift */, + AF6173972A0896CC90AC1F736A7FA9F6 /* RxPickerViewDataSourceType.swift */, + D5227A0B68477A5DE29DA7413114655F /* RxPickerViewDelegateProxy.swift */, + 7C88C661DD225F73B5FF885C64495485 /* RxScrollViewDelegateProxy.swift */, + ACFDB306B6B3C678E511134B43F43335 /* RxSearchBarDelegateProxy.swift */, + 110A8DDFE97030E9559694DC864D9983 /* RxSearchControllerDelegateProxy.swift */, + C686F48EEFB8BBDDAD834F0009701E79 /* RxTabBarControllerDelegateProxy.swift */, + D8E9CF8C242FD3A4D7CFF7ECAE42AE34 /* RxTabBarDelegateProxy.swift */, + 3D7A4590E795CC6C113448D0D90035A4 /* RxTableViewDataSourcePrefetchingProxy.swift */, + 5B9222385FF28D891C1990E02655EE7E /* RxTableViewDataSourceProxy.swift */, + D32A9D37A68A0D32AA5FCD04825FA23E /* RxTableViewDataSourceType.swift */, + 0386473777EDFAD38EC410D199B76529 /* RxTableViewDelegateProxy.swift */, + F423D93CECEE5265CFDDF182E4F484B1 /* RxTableViewReactiveArrayDataSource.swift */, + C34DE99EC1E1D6A31D4FC3C192192641 /* RxTarget.swift */, + BFD953D814665609D4B820419F3FA088 /* RxTextStorageDelegateProxy.swift */, + 1CDA72C59E2C6FFADBE82E37CCD88E95 /* RxTextViewDelegateProxy.swift */, + A3DA63DE1C070A6C26F074315A518ED2 /* RxWKNavigationDelegateProxy.swift */, + 33E16242DEA9785053FD4B6E48DB0279 /* SchedulerType+SharedSequence.swift */, + A48D6DE020ED5004B49941F99B12A346 /* SectionedViewDataSourceType.swift */, + 9BC9CA2E8267FE724C78D1BF1679897B /* SharedSequence.swift */, + 4C7D6F75090AC70304C2C6259C924BE1 /* SharedSequence+Operators.swift */, + 91927C097B0E5DA69B355C886588437F /* SharedSequence+Operators+arity.swift */, + 7AF06012E135F6A0ED1F87985A2C5295 /* Signal.swift */, + F3BB1CD1B3BA9383614CD2E82FA49706 /* Signal+Subscription.swift */, + 4C2DAB7B71F48E0EB42D9012C2E6A2EA /* TextInput.swift */, + 8BF441A91CB2F3177CE33A10125FC4C8 /* UIActivityIndicatorView+Rx.swift */, + CD04DA067054384D87D98C09E4AFF343 /* UIApplication+Rx.swift */, + 8F823D72123E5A6A2124B50C7EEB1949 /* UIBarButtonItem+Rx.swift */, + FCA2C2B5902751CD24CD5A7CEA4F87DF /* UIButton+Rx.swift */, + D535A5B58CF5B8D34B1051D482873C6E /* UICollectionView+Rx.swift */, + 38A45D52D1594E7C4C0499BA1580DFD0 /* UIControl+Rx.swift */, + A4844D973E858D2C93E9BDCB0031BC85 /* UIDatePicker+Rx.swift */, + FD2CD7A52A861D742B3E6302BA594BBC /* UIGestureRecognizer+Rx.swift */, + B4834D801D8AF01D06789949CF8F4BFA /* UINavigationController+Rx.swift */, + D295B5B6857CAE57EF575371DEEC71AA /* UIPickerView+Rx.swift */, + 3F729E640D091989C0924E0D084DF526 /* UIRefreshControl+Rx.swift */, + CFCF8E0953F2868714230B9591E02098 /* UIScrollView+Rx.swift */, + A3B30979EE8C7A3FFF6304632D82DD0A /* UISearchBar+Rx.swift */, + A47D23133042F66FA2A9FCC8F46837DD /* UISearchController+Rx.swift */, + 678F1754A58C490086C64F42B13DBDCA /* UISegmentedControl+Rx.swift */, + 358AC9B46E8DEE2431EF9B34A6EAD102 /* UISlider+Rx.swift */, + 55F087ADE0D999055129AE6ED6B47506 /* UIStepper+Rx.swift */, + D81D886F7D54BD477235EF514108A47E /* UISwitch+Rx.swift */, + 6B0244F045E455385FB9792B86F6D391 /* UITabBar+Rx.swift */, + 81675BD9C86DC302E808B9AA8E9DFFB6 /* UITabBarController+Rx.swift */, + 82FFE3336E040E0FD4E87BD4A8C9D9E5 /* UITableView+Rx.swift */, + 0CCB86D623E86939D437FCABBC4899DF /* UITextField+Rx.swift */, + 3560071CF05E5BB984881762EBCD1568 /* UITextView+Rx.swift */, + 6329E2063F30B3FE225CADABE78FF0B4 /* URLSession+Rx.swift */, + D105DD819619BA7E6BC2924F9BAE39F6 /* WKWebView+Rx.swift */, + F20CE8E8819331AA841BDDEDA296267E /* Support Files */, + ); + name = RxCocoa; + path = RxCocoa; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 2582784E4FA6A1AC5D23FC53AC3F6EE2 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F7B74645E07C39771156A1FA413B98D4 /* Alamofire-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 518F7CBD85DBC12E69AC19AE8503C5A7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7AC49F96F0BA23A17F600BE150AFEDA1 /* RxSwift-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5BAA57C454B7D7EA2992F78F652730A3 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 97FC505E15B3A42EEE4A91B862BA4CE6 /* RxRelay-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5DB150D52E83944CD066AD1C71D34E2D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A07F8AF3AFD94AA09B7D1ACBD2778706 /* _RX.h in Headers */, + 866168885B194C363D14A3B22F8CF4AA /* _RXDelegateProxy.h in Headers */, + 994BF7CDA744984D935FA13D8BFEF896 /* _RXKVOObserver.h in Headers */, + 347BE157BF59598C1DA6BE6DEC6C79F1 /* _RXObjCRuntime.h in Headers */, + 79F51075AFE0C407CBF9E4EBB36C0D7D /* RxCocoa-umbrella.h in Headers */, + B6D671EBB45CF2C33442923D9C94F920 /* RxCocoa.h in Headers */, + 816B74FF36A8B431A3E814EFBC406B4E /* RxCocoaRuntime.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 939EE54C4A75D242372046057E5EBB1C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 5038DF694BF767F128343F5CD19E6FC5 /* Pods-RRAlamofireRxAPI_Tests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A94610EAD4DDD476F3BD1A874404E1F4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 752C71F1F3C8B081498B1C91786DE5C4 /* Pods-RRAlamofireRxAPI_Example-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DC1C54D50E2F9DEEB896F349242D77B9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 1DD1578055E6461FB8C061DB38BF84CA /* RRAlamofireRxAPI-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0320E544A709767E8AB97988E4C5C816 /* Pods-RRAlamofireRxAPI_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6BB96D59179C4694E04D562C6645E75E /* Build configuration list for PBXNativeTarget "Pods-RRAlamofireRxAPI_Tests" */; + buildPhases = ( + 939EE54C4A75D242372046057E5EBB1C /* Headers */, + 2BC5155AD447D64C757EA5FAB0F40BB7 /* Sources */, + B96FD5FF599E6E88C8AC3E287708743E /* Frameworks */, + 5BCE1E02E6DF2E15F0920B64378AF1CF /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7A84CA65785C1DF3FDB8428F26EE66FE /* PBXTargetDependency */, + ); + name = "Pods-RRAlamofireRxAPI_Tests"; + productName = "Pods-RRAlamofireRxAPI_Tests"; + productReference = EA694F76A6017B38D3FEDFAB5B2AA3AA /* Pods_RRAlamofireRxAPI_Tests.framework */; + productType = "com.apple.product-type.framework"; + }; + 25307BC393E3D6D7B9A22D115C7ACCE8 /* Pods-RRAlamofireRxAPI_Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = D9D76BA7CE68AB6C28EDBF8569B760DF /* Build configuration list for PBXNativeTarget "Pods-RRAlamofireRxAPI_Example" */; + buildPhases = ( + A94610EAD4DDD476F3BD1A874404E1F4 /* Headers */, + 77B9EBEFDD7DF6F0D2D7025096B839CB /* Sources */, + C3D3DA41ADDDDC353D3B48AA7D61C568 /* Frameworks */, + 79912DE015EE245C13B65B231197B3C3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 2DAC5B100FD4B3D2474C9E11DEFC0FA0 /* PBXTargetDependency */, + 76AC1BBCBA1615F8A3D82D6A30B3DE60 /* PBXTargetDependency */, + 548BAE2511B2C3B62D547CA92F2B1588 /* PBXTargetDependency */, + 591B8FA47A0F54651562769473CD0D07 /* PBXTargetDependency */, + F94EC3AD3FD25A919641737A3F431517 /* PBXTargetDependency */, + ); + name = "Pods-RRAlamofireRxAPI_Example"; + productName = "Pods-RRAlamofireRxAPI_Example"; + productReference = A56BEB333099C36BD3C052E978431D87 /* Pods_RRAlamofireRxAPI_Example.framework */; + productType = "com.apple.product-type.framework"; + }; + 4622BFEF3DC16E8BD15EEFC30D4D0084 /* RxRelay */ = { + isa = PBXNativeTarget; + buildConfigurationList = AAB788BC0704474EBBA2DAA11C7E88D8 /* Build configuration list for PBXNativeTarget "RxRelay" */; + buildPhases = ( + 5BAA57C454B7D7EA2992F78F652730A3 /* Headers */, + 1DF61CE6378BB34B9E14B3023F608D3A /* Sources */, + 2985B582B007F940291FDDA88F401395 /* Frameworks */, + BF66EC96B8230CDCFD5E63E05CB909E4 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 82694D0646DC3F23CAC027BE71727A61 /* PBXTargetDependency */, + ); + name = RxRelay; + productName = RxRelay; + productReference = FF8B264DFE802855D5D67E7CDDABFC3C /* RxRelay.framework */; + productType = "com.apple.product-type.framework"; + }; + 7AD0C6DCDC9CEC8A3C7C10C7FEE07BE6 /* RxCocoa */ = { + isa = PBXNativeTarget; + buildConfigurationList = 20C0F742DE63CBF96502DD15C6282C08 /* Build configuration list for PBXNativeTarget "RxCocoa" */; + buildPhases = ( + 5DB150D52E83944CD066AD1C71D34E2D /* Headers */, + 620D90262B97CA2247190E78D07EBF41 /* Sources */, + A3B831BFA53BF324FD4C01F6FB57C599 /* Frameworks */, + 2039AEA01EAACE455DEA856BCB3AE308 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + B12A9ECFD26156660E5263541DE2287F /* PBXTargetDependency */, + D8C4AF4CFC9061F95AA3585BADC5BE27 /* PBXTargetDependency */, + ); + name = RxCocoa; + productName = RxCocoa; + productReference = BC432FD48A5932251F1CAFBC4BF74894 /* RxCocoa.framework */; + productType = "com.apple.product-type.framework"; + }; + CEED4C2A3FBC3CC434488DF40F1315DC /* RRAlamofireRxAPI */ = { + isa = PBXNativeTarget; + buildConfigurationList = 58AB8013FDA80C0DC823E61DAD21A744 /* Build configuration list for PBXNativeTarget "RRAlamofireRxAPI" */; + buildPhases = ( + DC1C54D50E2F9DEEB896F349242D77B9 /* Headers */, + 9DA71BB9EF6C04972C8DDF0AAA02C8F2 /* Sources */, + 6AA51315ED6F1082C04F24D1A1F616C9 /* Frameworks */, + 5AA6B161F84BE29A1B3DDA79C1692C80 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 084F46E2E283FE8CEE6B885A57BF0959 /* PBXTargetDependency */, + 59CE6E9BDD3FCD92D853480C9DC9F382 /* PBXTargetDependency */, + 6DFA8E45BF6626DF9425B4BE6A976245 /* PBXTargetDependency */, + D2716911CEA1FDF47A87E8EEA2423C0E /* PBXTargetDependency */, + ); + name = RRAlamofireRxAPI; + productName = RRAlamofireRxAPI; + productReference = CB2E1F967D72BFD69786EF53E2AD6828 /* RRAlamofireRxAPI.framework */; + productType = "com.apple.product-type.framework"; + }; + EA9EA43B3B503823EE36C60D9C8A865F /* RxSwift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 81E5FA7126C4F783D4136697D371A498 /* Build configuration list for PBXNativeTarget "RxSwift" */; + buildPhases = ( + 518F7CBD85DBC12E69AC19AE8503C5A7 /* Headers */, + 51EC00EF7ADB95FCC9F8AB7F7888F091 /* Sources */, + 05A69CEB07DF83173E1AECCCD49C9114 /* Frameworks */, + 0870C3B3970BE8F1B02C07270513265E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RxSwift; + productName = RxSwift; + productReference = 809C5FAB588354C9BA37DC3EAB8CB45C /* RxSwift.framework */; + productType = "com.apple.product-type.framework"; + }; + EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */ = { + isa = PBXNativeTarget; + buildConfigurationList = E4A5194ABAF7A4780609E0E581DA6B54 /* Build configuration list for PBXNativeTarget "Alamofire" */; + buildPhases = ( + 2582784E4FA6A1AC5D23FC53AC3F6EE2 /* Headers */, + 2DDFD9AC10F181CD7130BDF5F9E0502B /* Sources */, + 090C1D63463ACF622287EFF9D5C9392D /* Frameworks */, + 473D3E892ABB6C798CFF290644259B34 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Alamofire; + productName = Alamofire; + productReference = 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 657CE9078C9D0A859C36D85E32A5F8D5 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */, + 25307BC393E3D6D7B9A22D115C7ACCE8 /* Pods-RRAlamofireRxAPI_Example */, + 0320E544A709767E8AB97988E4C5C816 /* Pods-RRAlamofireRxAPI_Tests */, + CEED4C2A3FBC3CC434488DF40F1315DC /* RRAlamofireRxAPI */, + 7AD0C6DCDC9CEC8A3C7C10C7FEE07BE6 /* RxCocoa */, + 4622BFEF3DC16E8BD15EEFC30D4D0084 /* RxRelay */, + EA9EA43B3B503823EE36C60D9C8A865F /* RxSwift */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0870C3B3970BE8F1B02C07270513265E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2039AEA01EAACE455DEA856BCB3AE308 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 473D3E892ABB6C798CFF290644259B34 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5AA6B161F84BE29A1B3DDA79C1692C80 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5BCE1E02E6DF2E15F0920B64378AF1CF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 79912DE015EE245C13B65B231197B3C3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BF66EC96B8230CDCFD5E63E05CB909E4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1DF61CE6378BB34B9E14B3023F608D3A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F3D21DD35FC21E91AA960E1CB8C83354 /* BehaviorRelay.swift in Sources */, + 095B69059B9A728F9953F9845D470F78 /* Observable+Bind.swift in Sources */, + 2AC2A92FEC7DF77BA419B3EB66FA4B19 /* PublishRelay.swift in Sources */, + 70874A825263F36C1B192208FB45B46D /* ReplayRelay.swift in Sources */, + 65721047E0EE885E49C5794961BFBC58 /* RxRelay-dummy.m in Sources */, + 742500008E3906411A1EEF6C8043E4C7 /* Utils.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2BC5155AD447D64C757EA5FAB0F40BB7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B215008914BF1325668EB3793D0F0AF4 /* Pods-RRAlamofireRxAPI_Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2DDFD9AC10F181CD7130BDF5F9E0502B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 83956E20859CDBBE7BC38ABADE0170FB /* AFError.swift in Sources */, + 1945CD5D63A1C164AEAAA9A33E85571E /* Alamofire-dummy.m in Sources */, + BEE6B677416CA71C981D1D3F60B18C96 /* Alamofire.swift in Sources */, + D3D8C379C6E4FB487E5ABD6800AD7B7E /* DispatchQueue+Alamofire.swift in Sources */, + 1986B50C74F1697EA43F68335C93CEB3 /* MultipartFormData.swift in Sources */, + 3571F958A3907B3A806E62D50C2550D4 /* NetworkReachabilityManager.swift in Sources */, + 132E0F619E4338E5D1B27E4C72076B3F /* Notifications.swift in Sources */, + 0C5E11DE24DAA737704B355F5F2F3426 /* ParameterEncoding.swift in Sources */, + 98A929C8E9012AB167672714FFD2113C /* Request.swift in Sources */, + D65C254F5ABF2CB5ECEE50FE8F8E1A80 /* Response.swift in Sources */, + E3747EC31FCCA97D75A81FC700CF7E24 /* ResponseSerialization.swift in Sources */, + 64744C911253C3E01461FAD7C935C8D7 /* Result.swift in Sources */, + F13F2AA7F2E6D95A181CAB99B900D531 /* ServerTrustPolicy.swift in Sources */, + 2C61B040BA6A9A7AE66C4D9BA26D5520 /* SessionDelegate.swift in Sources */, + 931BBB8230A25161D5C37528A8F9FECF /* SessionManager.swift in Sources */, + AFC64B1097F7355FF423D6A73E9C7210 /* TaskDelegate.swift in Sources */, + 933FDA5970AA525D6CB92BFEBA2BAB4A /* Timeline.swift in Sources */, + 53791F5E5F07400F92CFDFC89A432305 /* Validation.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 51EC00EF7ADB95FCC9F8AB7F7888F091 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CDD440BC3DFFE89AE9297CB1E8CA65E0 /* AddRef.swift in Sources */, + 365E567C2C8573053B37251E91D77B88 /* Amb.swift in Sources */, + E2D6BDEAFDB2D7574DD36F197B6BE035 /* AnonymousDisposable.swift in Sources */, + AF9DADFA08BD61267AFB3AD464E5B24B /* AnonymousObserver.swift in Sources */, + B27AA5C52504F753072D53B6356D1FA8 /* AnyObserver.swift in Sources */, + 786C793B8134D796E8C6293B76D4682A /* AsMaybe.swift in Sources */, + 216D2D35FD4243DDEA2B799167CAF19F /* AsSingle.swift in Sources */, + 1D5664D7BBBE1DD5919D374FF4BF0EB2 /* AsyncLock.swift in Sources */, + 13A5FA665A486158AD4D457459CD231D /* AsyncSubject.swift in Sources */, + 1E3F88430DD1144F4CB5F51B60396274 /* AtomicInt.swift in Sources */, + DDF8830F791161C2AB709B1BE351EC09 /* Bag+Rx.swift in Sources */, + 3E3AA9AB49F180149EB53A8198CB9DC2 /* Bag.swift in Sources */, + 24317648B2666C762E5D916F7F340BEF /* BehaviorSubject.swift in Sources */, + 1991413A4182DC31BD5E4634290191F8 /* BinaryDisposable.swift in Sources */, + 251277934E87DB3F7CB0754A8BA0AB74 /* Binder.swift in Sources */, + F4EBEDF749F7E4532A8D55C3AA50986C /* BooleanDisposable.swift in Sources */, + 6FBD8FD115417E82274D48197F606274 /* Buffer.swift in Sources */, + 34CE011F943E691C9C8D4FC46D4A66D5 /* Cancelable.swift in Sources */, + EB63FFA803290A2D93CDAE25F66EDDFD /* Catch.swift in Sources */, + E42BC3F9EFA5262293D7FC6360877251 /* CombineLatest+arity.swift in Sources */, + F117A18EA22CD2E150C2FFEA59501256 /* CombineLatest+Collection.swift in Sources */, + 591B5D1B682A9518D169C734A3ED2C6F /* CombineLatest.swift in Sources */, + 0415D9C1945C8D821409C1716AE54222 /* CompactMap.swift in Sources */, + 628FD06B28AD46909917710ADC6E891E /* Completable+AndThen.swift in Sources */, + 2E083D0029EE041D06859D2EA12B5712 /* Completable.swift in Sources */, + 3335BB74B9B63AC7C6455DF439F0EDD8 /* CompositeDisposable.swift in Sources */, + 81C646C1FCE8AF335A9CB84A472793C9 /* Concat.swift in Sources */, + 3002810E89EDD3CE90515325689208C0 /* ConcurrentDispatchQueueScheduler.swift in Sources */, + 6FC4490C08ADA64E7F0102DD8F9BE003 /* ConcurrentMainScheduler.swift in Sources */, + 67E9F210B1578D66EC93F9DFEA11CC78 /* ConnectableObservableType.swift in Sources */, + A93DDF0131DB81A9E11F572EB2F5FA59 /* Create.swift in Sources */, + 3039CA5745A5652A80BCB0C353A23870 /* CurrentThreadScheduler.swift in Sources */, + E2046856C23D6D62596BC59F270D8E4D /* Date+Dispatch.swift in Sources */, + 05F4D69BD01B21B5C29DC78FB7B3BD5C /* Debounce.swift in Sources */, + 676471C5104390DCE491F1084593227C /* Debug.swift in Sources */, + 05483386F648673DCD95DEF8EF6887FF /* Decode.swift in Sources */, + E2DE3BBDC31BAFE10D25D154F99D1A64 /* DefaultIfEmpty.swift in Sources */, + 901955C0F40C705976F99E937E8C98C8 /* Deferred.swift in Sources */, + EDD095451E0FF49606D7B421C876C75C /* Delay.swift in Sources */, + 554854BF9781E4D3CDAE23BC190FDC2A /* DelaySubscription.swift in Sources */, + 454349CCA79348F2948556E45CC90B0D /* Dematerialize.swift in Sources */, + 5E723D89B429AB8D529D6DE63FC51127 /* DispatchQueue+Extensions.swift in Sources */, + 7A7995625F3C94658D7A10B77420CD22 /* DispatchQueueConfiguration.swift in Sources */, + B1399E8F053B11FFD99BF697C120F6DC /* Disposable.swift in Sources */, + 62B80766F1DCFDA0F28A21B9C8C874E9 /* Disposables.swift in Sources */, + 3E9F559594FE23B9BF228F0897E218FB /* DisposeBag.swift in Sources */, + 6A99D043DA531E2EF7E04480289C19C8 /* DisposeBase.swift in Sources */, + 13E143A202FF40BFD4CAA9A6321A7D56 /* DistinctUntilChanged.swift in Sources */, + A7199A048EAB3A747CF99EFF4A0C86A9 /* Do.swift in Sources */, + BD4417BEBE44A9FCE7F531662181D385 /* ElementAt.swift in Sources */, + 153CF151555BC427AA7F4DD8C82DAD27 /* Empty.swift in Sources */, + B72183215CFC37153D64DCD8D8BC519A /* Enumerated.swift in Sources */, + B2B0DD5F2E33F1E6A56B3201D3F19461 /* Error.swift in Sources */, + 7447855952F65EF8CDF6EACCDEB2F7D1 /* Errors.swift in Sources */, + C548B3FBD98BE96F6D201E9B91C3931A /* Event.swift in Sources */, + 0E28C6D1C1C58856075C30447189194D /* Filter.swift in Sources */, + 59F6CBFC67F09E00D54A3CBA13363B0E /* First.swift in Sources */, + C2F99FD565065C6AD37EBA03D5D6E53F /* Generate.swift in Sources */, + 2B3D1F78F83DE8C3C9A445A245E5B2AA /* GroupBy.swift in Sources */, + 1158BEBD79C7E326188D5BAA2B7B7A90 /* GroupedObservable.swift in Sources */, + 9D169AFC6823EE2CF540D87C7E13312F /* HistoricalScheduler.swift in Sources */, + 2235D8D8049384E1E1B21D75523FC667 /* HistoricalSchedulerTimeConverter.swift in Sources */, + EC15F7067294460CB669B07527D2F293 /* ImmediateSchedulerType.swift in Sources */, + 6E408E4B5266025D3EA55749B2C2FE89 /* Infallible+CombineLatest+arity.swift in Sources */, + 9D6095CB1FBCD1706CEBA38369973EDA /* Infallible+Create.swift in Sources */, + 5818D168D692518B7EBEBB6EB0DB70AD /* Infallible+Operators.swift in Sources */, + 647324BC11DB85734A8759A1264D299E /* Infallible+Zip+arity.swift in Sources */, + E2E3A9D0A0C820BF4443B9EA67CDA7F4 /* Infallible.swift in Sources */, + 8E75D720AD3DFEC5B3041A55FDE5666D /* InfiniteSequence.swift in Sources */, + 664E5434D0C2E609489C86592E015B18 /* InvocableScheduledItem.swift in Sources */, + 203BD1EF9BE4003D3B6E856A5F2CB325 /* InvocableType.swift in Sources */, + 56C8BD54DF34FCBA431326552D0DE34B /* Just.swift in Sources */, + 60BF328EA49B1623BC27B69CE2BB2823 /* Lock.swift in Sources */, + B4F0D5637889355EF5BE99E67A98A8AC /* LockOwnerType.swift in Sources */, + C85C71BC1E15196F85001F35CABFBB1E /* MainScheduler.swift in Sources */, + 77C7E71ECD7C1EC0B4009082DBDF9719 /* Map.swift in Sources */, + 32BC7B34CCBBD51D5B518539D020F7F1 /* Materialize.swift in Sources */, + 95CB68E681E8904BDEC2F9BCDA7C2C34 /* Maybe.swift in Sources */, + F4D30B95CA109C7CC19106EAE439F540 /* Merge.swift in Sources */, + 87083FBC1A0087302A9A22749D3DFD51 /* Multicast.swift in Sources */, + 6AFEC8C503B3BB35BD85F2F687F1DD3C /* Never.swift in Sources */, + 6BF95A57F3B7A0A05FC31A8C2154C2EE /* NopDisposable.swift in Sources */, + BB3F4032E7AC9E644E16A896BD508D12 /* Observable.swift in Sources */, + 18F26F1A9071FE48F8C2B344B52BD3B2 /* ObservableConvertibleType+Infallible.swift in Sources */, + 283CC3D0C38EAA488E825743DB7E4F96 /* ObservableConvertibleType.swift in Sources */, + 7538A8FF154A0B9F188386FA7FE6E4E6 /* ObservableType+Extensions.swift in Sources */, + 6F79955D94071844F224BC3C84149B70 /* ObservableType+PrimitiveSequence.swift in Sources */, + 960466E05DD1B9ED4E67639B3D1CB882 /* ObservableType.swift in Sources */, + FAE194F809DE2513B5FF57AA9BADB5F3 /* ObserveOn.swift in Sources */, + DC0D26A69CA0486CC38B6B1C5473D7C7 /* ObserverBase.swift in Sources */, + FAD41E5F00841DE636899D946E7A38AC /* ObserverType.swift in Sources */, + 28F3CFBBE3D84FA71F0226254DC99FBE /* OperationQueueScheduler.swift in Sources */, + F7EBE6683C79940C60070497702BCCC4 /* Optional.swift in Sources */, + 50D3D4E2688416C5F122CB4D11DABDD8 /* Platform.Darwin.swift in Sources */, + 864AAF953406A0BA12BA27FEE10830D0 /* Platform.Linux.swift in Sources */, + 1997CE0F180108AE83BE7DBB5F2BC391 /* PrimitiveSequence+Zip+arity.swift in Sources */, + 0A5B01655EC936D14DED0301E1FD2C97 /* PrimitiveSequence.swift in Sources */, + A3899F9012500139E7A652F0D5BBEEA9 /* PriorityQueue.swift in Sources */, + EE91E9F72BFD988F206B266A74753B98 /* Producer.swift in Sources */, + A7C869CA017B2628758E50A3C44F9636 /* PublishSubject.swift in Sources */, + 44F644E0B2720EA94B8D4C079B1CBF3D /* Queue.swift in Sources */, + 183A5D55D907122A4E39A6772F33EDE7 /* Range.swift in Sources */, + 090604122313F4AD3D2542D1C8F54FBA /* Reactive.swift in Sources */, + 7C0FE7ADC958476BF27EDEB2E80C706A /* RecursiveLock.swift in Sources */, + 8AB26D974E3D69FE8ADEE569BD143A97 /* RecursiveScheduler.swift in Sources */, + A71FA378095853219EBB00E2961E163C /* Reduce.swift in Sources */, + AC9728E5B292EEB3A7DA7D2A54F8439B /* RefCountDisposable.swift in Sources */, + C25AF571EE6E214782B0DF77676E7BB8 /* Repeat.swift in Sources */, + F893C576CBD2B2574D9E23C3FCA81A1D /* ReplaySubject.swift in Sources */, + 45757BC31EA29A3DA500A9D314B400EE /* RetryWhen.swift in Sources */, + 9C6DBA40ECBDC11DA1398730134CEEFC /* Rx.swift in Sources */, + 2FEA83FEE3F07D5137D32905A700FD51 /* RxMutableBox.swift in Sources */, + 3A62B76DD39CC2E6C28EAD1CE9B5BE64 /* RxSwift-dummy.m in Sources */, + 01835F419A70FC2A4D42170527FB9C9D /* Sample.swift in Sources */, + 986DC41A58CF82CDC8C7C125A5A7AB54 /* Scan.swift in Sources */, + 988BB95B94E6B8D9305E5C7335C9560A /* ScheduledDisposable.swift in Sources */, + 8929FBF911EB501F52894C33B6820CA4 /* ScheduledItem.swift in Sources */, + 76CC44C3D4F2095169B796993B32ADA6 /* ScheduledItemType.swift in Sources */, + E62709E00107FED31B06BF0ED6C5F730 /* SchedulerServices+Emulation.swift in Sources */, + 8FA12ED8590B554D7E88689B5D9D2C41 /* SchedulerType.swift in Sources */, + 0A45B5F0AFE1D13B562A5F580AD053F5 /* Sequence.swift in Sources */, + 54534328522B2024908FC55480FDC184 /* SerialDispatchQueueScheduler.swift in Sources */, + F9AD03B7B5927C7AE78CCD2DECDACDD0 /* SerialDisposable.swift in Sources */, + 9BD602B18383D0B71FDACF2A12CD0B0A /* ShareReplayScope.swift in Sources */, + C067E4C93AD0FE5DC1534F3077ACB86C /* Single.swift in Sources */, + A699C012069CA5053DF42C3C35F9986A /* SingleAssignmentDisposable.swift in Sources */, + 6D3D1CE047E06149D40FA5D9C7992ED4 /* SingleAsync.swift in Sources */, + D81406EC513429CDEF733F82756934AA /* Sink.swift in Sources */, + BD53169A6403511F4018A88BB28C1E25 /* Skip.swift in Sources */, + 4B1CF7576DC5DD5D357A617BC4C30C7F /* SkipUntil.swift in Sources */, + 385C351EA6B6D1A3F38415AC01F2412C /* SkipWhile.swift in Sources */, + 97A2A8B3D8F99D97F5963311A8030636 /* StartWith.swift in Sources */, + 45E5A37E8B9225EA1524A147528D29C3 /* SubjectType.swift in Sources */, + E9CA84978D50BCDC31A0F5E6EE44C2B5 /* SubscribeOn.swift in Sources */, + 3BD866729C58458FB0AA08C7513571EC /* SubscriptionDisposable.swift in Sources */, + 642670FC68A0287D742CF5682D0DDF9B /* SwiftSupport.swift in Sources */, + 15B7414D75F0BD1F5377AE4CE8084CAC /* Switch.swift in Sources */, + 29D91AAED672208B04D9895135EB2B52 /* SwitchIfEmpty.swift in Sources */, + 4916BED470FA2984B73ADD3EAC93BBA1 /* SynchronizedDisposeType.swift in Sources */, + A8650E120F3A0AD3B56F1CE9E341A9E9 /* SynchronizedOnType.swift in Sources */, + E5352B42726CF6E1987F573E13028570 /* SynchronizedUnsubscribeType.swift in Sources */, + FF2F8F3E3BD1CEDAA0D044491E1CF0DC /* TailRecursiveSink.swift in Sources */, + B53F84DE5325248F4AB81FAC5B6A6FDA /* Take.swift in Sources */, + DFA7BBB6459803339FEBED3FFEAFE210 /* TakeLast.swift in Sources */, + 009F1C0E24F856D5E5E7F88A38B99770 /* TakeWithPredicate.swift in Sources */, + F95F5F75C994A6DA49DA745D019F736D /* Throttle.swift in Sources */, + 7A582A1EAB5F44B8106292E1B2E9DFAC /* Timeout.swift in Sources */, + 53EEE62CCD1170E03AB2417ACD30C93F /* Timer.swift in Sources */, + B35B8EF98368E9E090EA52A1BAC3171E /* ToArray.swift in Sources */, + AD535A8DD4AAE38189F87C31D4050C00 /* Using.swift in Sources */, + C45E3DA05F3A91EBB939E9BA32FBC2D8 /* VirtualTimeConverterType.swift in Sources */, + 454A5018BE8582CF930E62777EADF19E /* VirtualTimeScheduler.swift in Sources */, + 7CE6291BAA453893F4740B4CDAD2DC4A /* Window.swift in Sources */, + 7CC24988C721BCA9060BAC74EEA11EB0 /* WithLatestFrom.swift in Sources */, + 0BFF6237B8310011288F7B1BB5095E23 /* WithUnretained.swift in Sources */, + DC9B615506FCBB48ED6CC585D10F4EF6 /* Zip+arity.swift in Sources */, + E6ABB8570E064374E7419DACCFE75484 /* Zip+Collection.swift in Sources */, + 3DC27FB5E945C9B99F88C93D7F24953E /* Zip.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 620D90262B97CA2247190E78D07EBF41 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E9A1376539A9AB0A07A28FBF721CD432 /* _RX.m in Sources */, + 8DB6C454834FCF857EDF23A4E628A923 /* _RXDelegateProxy.m in Sources */, + C1C62AF88906F8D610FE8E2BD4389843 /* _RXKVOObserver.m in Sources */, + 560F997AC0B430D4A9B899DC65F473D4 /* _RXObjCRuntime.m in Sources */, + 65E7F430904F3FF61459058541EFE0FF /* Bag.swift in Sources */, + 40C477CC1D6A86F4D21D8F0BBFBA6335 /* BehaviorRelay+Driver.swift in Sources */, + C7DCF8336678A5492FCDD7F83196755B /* ControlEvent+Driver.swift in Sources */, + E35ACC41925F53F6E848E59A568FBA3C /* ControlEvent+Signal.swift in Sources */, + 8E5CD259ECFF56909534D790C6C5CDE8 /* ControlEvent.swift in Sources */, + AC62AE38C544A6F572F499B52B5A5A3A /* ControlProperty+Driver.swift in Sources */, + 805B482AED61D5A3BFA1B971AFE5DA77 /* ControlProperty.swift in Sources */, + 4FFCC45167B6258BA67E60C067197418 /* ControlTarget.swift in Sources */, + EDC1471A35D81E8E4FF81E7AD7F67EE6 /* DelegateProxy.swift in Sources */, + D527DE71ADE4F958B6FC8ACE582B193C /* DelegateProxyType.swift in Sources */, + 45BD5BC2F24D9336187929AE7BC76E2F /* DispatchQueue+Extensions.swift in Sources */, + 9A1D82079B8395277A9B203231E03225 /* Driver+Subscription.swift in Sources */, + 62B182BD79E5B7C0D3D00B1AC0317E17 /* Driver.swift in Sources */, + 09690FDA5FDDB37077A3BE2BEA789F8F /* Infallible+Bind.swift in Sources */, + 28175FF09B3B6D62036F6D756560B2C9 /* InfiniteSequence.swift in Sources */, + 8B14E105F333660C0B9F3FEFA32C2F75 /* ItemEvents.swift in Sources */, + C1D5F02F0EDB47E575D572563D685CB5 /* KVORepresentable+CoreGraphics.swift in Sources */, + 1436C5E1A8630C896B63313BF5648C18 /* KVORepresentable+Swift.swift in Sources */, + 1C1591D2EED0C2E9A1605F620C638AEE /* KVORepresentable.swift in Sources */, + DE680E39FA47FCDB81E5838B1D4BC21B /* NotificationCenter+Rx.swift in Sources */, + 434C78F748614068BFF54CB31895F011 /* NSButton+Rx.swift in Sources */, + 5A8D83CEC993B78AF527C67499AB8DF5 /* NSControl+Rx.swift in Sources */, + 4DA57DD611B6C50D258DBEDDBDB07405 /* NSObject+Rx+KVORepresentable.swift in Sources */, + 3C70D6514F38377F0708BA44AEB92BEA /* NSObject+Rx+RawRepresentable.swift in Sources */, + E8E9BCDE844E06A043A75937BA15A2B3 /* NSObject+Rx.swift in Sources */, + 671D1D49134C31AC2F34ABDFE3DD45AD /* NSSlider+Rx.swift in Sources */, + B5006C885206A8AD3092E1D3972DB452 /* NSTextField+Rx.swift in Sources */, + 5BC18485E6ADBA5307E80A8DA56DD4C5 /* NSTextStorage+Rx.swift in Sources */, + 6D99C821E4067ACF85712F2A663636B8 /* NSTextView+Rx.swift in Sources */, + 04515E24776528B9131C423CA20F781F /* NSView+Rx.swift in Sources */, + 935A61445D0B5BB6672733FB910D3CF4 /* Observable+Bind.swift in Sources */, + F0D32AF4B5A072FBA97CDE3A8C0E8137 /* ObservableConvertibleType+Driver.swift in Sources */, + BC0FE8B207C369B90F16A21F53C4AE56 /* ObservableConvertibleType+SharedSequence.swift in Sources */, + 2CD3771D5DE78A4869AFBF767E89E4A4 /* ObservableConvertibleType+Signal.swift in Sources */, + 757F55A823C56B411AE3F18B1001ED49 /* Platform.Darwin.swift in Sources */, + 10A624C38B6F96763F14019CBC464F6D /* Platform.Linux.swift in Sources */, + 1D85615AB2F7C75CB75C678BE3913DB0 /* PriorityQueue.swift in Sources */, + 5DC79202E6D54F288DE23B3BC1C0FCD5 /* PublishRelay+Signal.swift in Sources */, + 1703F3AE01434D1BB19D99BA52E4AB78 /* Queue.swift in Sources */, + 757B684D3826D49A4647DFE6BDE29415 /* RecursiveLock.swift in Sources */, + 7536FCE8917787B042FD69B9500A1B65 /* RxCocoa-dummy.m in Sources */, + 3C47B6A73A2D53378DEE48683CF91DC1 /* RxCocoa.swift in Sources */, + 7965CBF3AF537567A446F7DE72413B59 /* RxCocoaObjCRuntimeError+Extensions.swift in Sources */, + 4CC509E65945E1D63EDBF607CF4B7E28 /* RxCollectionViewDataSourcePrefetchingProxy.swift in Sources */, + B6F4E438863029EA77CC6CF08991A6A2 /* RxCollectionViewDataSourceProxy.swift in Sources */, + 998A95E29B6835A2625EAC4DD606F127 /* RxCollectionViewDataSourceType.swift in Sources */, + B4F648DDDEAEA3CF6D770D445AA12275 /* RxCollectionViewDelegateProxy.swift in Sources */, + B78B657FD9EB5122E3E37A94583B0305 /* RxCollectionViewReactiveArrayDataSource.swift in Sources */, + 3C678CB2AC9390ADBF6C64457BCB455C /* RxNavigationControllerDelegateProxy.swift in Sources */, + 3C6E25D26B0B4D217B1A8746C67F8A01 /* RxPickerViewAdapter.swift in Sources */, + 0A15FB8D4A8CB0F8F7D9A719CFD2EE13 /* RxPickerViewDataSourceProxy.swift in Sources */, + B037E90C8334DC1ADCBA150D4AFCBC7D /* RxPickerViewDataSourceType.swift in Sources */, + C36CBDE4B8C5C0A839EAB06A3F75FA05 /* RxPickerViewDelegateProxy.swift in Sources */, + 1C8439C0E7AA3FB41C3CD1361F8F8748 /* RxScrollViewDelegateProxy.swift in Sources */, + 718AEE1EF9007D72321039F80C8D8F38 /* RxSearchBarDelegateProxy.swift in Sources */, + CB09D37E42AEF6566651730B1979254F /* RxSearchControllerDelegateProxy.swift in Sources */, + 4E08AA6F3359D812C4A3D390B495BB03 /* RxTabBarControllerDelegateProxy.swift in Sources */, + 8ACF4DB6172B9FAA7AD70910AFB82C4B /* RxTabBarDelegateProxy.swift in Sources */, + C92FEA124183684ECA001C2C0BE138E1 /* RxTableViewDataSourcePrefetchingProxy.swift in Sources */, + AE7BA69337EBE2529C14DB3F49B227BC /* RxTableViewDataSourceProxy.swift in Sources */, + B7862C916CBE8190473B72EFC4818357 /* RxTableViewDataSourceType.swift in Sources */, + 6B93E2B29F500592655E8C9918C9C021 /* RxTableViewDelegateProxy.swift in Sources */, + C63C7EA4AD7A25BB73D18CAC961CFAE8 /* RxTableViewReactiveArrayDataSource.swift in Sources */, + 71E0846063C1BC79F5E7A4BAAC58FBB7 /* RxTarget.swift in Sources */, + 55FD3032A8F44995BEA268B267316C5A /* RxTextStorageDelegateProxy.swift in Sources */, + 74E8BCE952C526D98295532F126F2E03 /* RxTextViewDelegateProxy.swift in Sources */, + F85FB43672F0483E06839513B452AA72 /* RxWKNavigationDelegateProxy.swift in Sources */, + 26BE1B9F5C8A46A08AC228AA665CB449 /* SchedulerType+SharedSequence.swift in Sources */, + 1C3D71822FFC1688FE1F5CA695D759D9 /* SectionedViewDataSourceType.swift in Sources */, + 1704DA5ED90CD1FAFDA1E3F9D8C55917 /* SharedSequence+Operators+arity.swift in Sources */, + A81EE7B191C8B591D5EBEFC4EBF58137 /* SharedSequence+Operators.swift in Sources */, + A648A3BD482C5A3FD0EE2F832009531B /* SharedSequence.swift in Sources */, + 1F1C7D62A7E293F8C31F0E7694806584 /* Signal+Subscription.swift in Sources */, + C41177774D04F2C6062740F24C3E0188 /* Signal.swift in Sources */, + 46230D0CDAC5F69CCD852B80EA539B38 /* TextInput.swift in Sources */, + EE7DC6383738892EB44C22DFE0C07EE5 /* UIActivityIndicatorView+Rx.swift in Sources */, + ABF8854F8142B6C51B068620F4D9EF3F /* UIApplication+Rx.swift in Sources */, + 00AAB5DCA4448BB66A90B6F3357D2411 /* UIBarButtonItem+Rx.swift in Sources */, + 5411F9BF4CC6BF92C426A88A6E078207 /* UIButton+Rx.swift in Sources */, + EE1373FFC3574E17D0832A4D25C6C306 /* UICollectionView+Rx.swift in Sources */, + 2BA901FB78661E802A4E65AD429B2A8A /* UIControl+Rx.swift in Sources */, + E4ADEFCFADA81C3420F8A47DDB9409FC /* UIDatePicker+Rx.swift in Sources */, + F2116B6990F50F21A6FFEA4C54D32D18 /* UIGestureRecognizer+Rx.swift in Sources */, + CFCEBDD73AE1CA97186F9E1B37A8ABE4 /* UINavigationController+Rx.swift in Sources */, + F6F5F56F7934E9197ADE610B3F765E7E /* UIPickerView+Rx.swift in Sources */, + FAC906A1150059D68308785D6B16547A /* UIRefreshControl+Rx.swift in Sources */, + 5E1D7DE7A665269CC1F5E3D647561A9C /* UIScrollView+Rx.swift in Sources */, + 3EB138568F408629EE32255F8A085C08 /* UISearchBar+Rx.swift in Sources */, + F8D9295E2D5194199F0E9D4C3C9ECB54 /* UISearchController+Rx.swift in Sources */, + AAC06D0F40146B9EFAA7D73DBA094287 /* UISegmentedControl+Rx.swift in Sources */, + 6F905DA32AD7312F1B0DE42527F1E179 /* UISlider+Rx.swift in Sources */, + 8A66E36359BD31E73B954E232863E71E /* UIStepper+Rx.swift in Sources */, + 3E50BB3DE0B28C322263D95D708F678C /* UISwitch+Rx.swift in Sources */, + AEFBAE2DE9AC95C3D4B0DFE56FD64B3D /* UITabBar+Rx.swift in Sources */, + 3E4FA87844382C6D94029BC1C23C79FD /* UITabBarController+Rx.swift in Sources */, + 6894442A69C2FB7278CA96415D5D4FBD /* UITableView+Rx.swift in Sources */, + DE13DED670A430ABE9C63A030BB5A581 /* UITextField+Rx.swift in Sources */, + F6E340C2C5C99942D19706357B131E7E /* UITextView+Rx.swift in Sources */, + D900B89D68B6629F92BE0EB9EBEAF5A3 /* URLSession+Rx.swift in Sources */, + FACFE253FD888CD2799313B983E54F3E /* WKWebView+Rx.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 77B9EBEFDD7DF6F0D2D7025096B839CB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC955DF30ACC691FBCBB588649152630 /* Pods-RRAlamofireRxAPI_Example-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9DA71BB9EF6C04972C8DDF0AAA02C8F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 256EE24E5C4527759BBF8D36AE917A4C /* RRAlamofireRxAPI-dummy.m in Sources */, + F3E6445D3B8C8787462CDB726049D5B6 /* RRAPIRxManager.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 084F46E2E283FE8CEE6B885A57BF0959 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Alamofire; + target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; + targetProxy = 009FD4AC4F74499CB60443D8A6885126 /* PBXContainerItemProxy */; + }; + 2DAC5B100FD4B3D2474C9E11DEFC0FA0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Alamofire; + target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; + targetProxy = 74FDD590713B70C1EAD163DE1241B78C /* PBXContainerItemProxy */; + }; + 548BAE2511B2C3B62D547CA92F2B1588 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxCocoa; + target = 7AD0C6DCDC9CEC8A3C7C10C7FEE07BE6 /* RxCocoa */; + targetProxy = 27A787DAF5CE7583675A69E2EB9C4AE0 /* PBXContainerItemProxy */; + }; + 591B8FA47A0F54651562769473CD0D07 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxRelay; + target = 4622BFEF3DC16E8BD15EEFC30D4D0084 /* RxRelay */; + targetProxy = D69ED51D0447BAAC9CE4C7F8C134653F /* PBXContainerItemProxy */; + }; + 59CE6E9BDD3FCD92D853480C9DC9F382 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxCocoa; + target = 7AD0C6DCDC9CEC8A3C7C10C7FEE07BE6 /* RxCocoa */; + targetProxy = F450080A0869E5687FA829640CCBE2CC /* PBXContainerItemProxy */; + }; + 6DFA8E45BF6626DF9425B4BE6A976245 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxRelay; + target = 4622BFEF3DC16E8BD15EEFC30D4D0084 /* RxRelay */; + targetProxy = 1F2F57725019A15EE7BC9FE51BB9D255 /* PBXContainerItemProxy */; + }; + 76AC1BBCBA1615F8A3D82D6A30B3DE60 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RRAlamofireRxAPI; + target = CEED4C2A3FBC3CC434488DF40F1315DC /* RRAlamofireRxAPI */; + targetProxy = D47641FB29DD04E32CF6BF64C7CB2DE0 /* PBXContainerItemProxy */; + }; + 7A84CA65785C1DF3FDB8428F26EE66FE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-RRAlamofireRxAPI_Example"; + target = 25307BC393E3D6D7B9A22D115C7ACCE8 /* Pods-RRAlamofireRxAPI_Example */; + targetProxy = FDD15AB6C9007A4685C091B5363D9F38 /* PBXContainerItemProxy */; + }; + 82694D0646DC3F23CAC027BE71727A61 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxSwift; + target = EA9EA43B3B503823EE36C60D9C8A865F /* RxSwift */; + targetProxy = 0B52AAD4DEEBE18A1C45E9E779E4DD6A /* PBXContainerItemProxy */; + }; + B12A9ECFD26156660E5263541DE2287F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxRelay; + target = 4622BFEF3DC16E8BD15EEFC30D4D0084 /* RxRelay */; + targetProxy = 3DD151875006CB301B51CAD024451747 /* PBXContainerItemProxy */; + }; + D2716911CEA1FDF47A87E8EEA2423C0E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxSwift; + target = EA9EA43B3B503823EE36C60D9C8A865F /* RxSwift */; + targetProxy = 5C0C279510D3A4A3C0E4B6C68DB6436C /* PBXContainerItemProxy */; + }; + D8C4AF4CFC9061F95AA3585BADC5BE27 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxSwift; + target = EA9EA43B3B503823EE36C60D9C8A865F /* RxSwift */; + targetProxy = 59CE66945E07C5F8FA253C1030465594 /* PBXContainerItemProxy */; + }; + F94EC3AD3FD25A919641737A3F431517 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RxSwift; + target = EA9EA43B3B503823EE36C60D9C8A865F /* RxSwift */; + targetProxy = 35D9008A67925F6C229BC1D4327D9343 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1DDADAB418060FEA3FB3CC3DC41FE58B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 644E1D1A9521DF0DB48743D57F528F48 /* RRAlamofireRxAPI.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI.modulemap"; + PRODUCT_MODULE_NAME = RRAlamofireRxAPI; + PRODUCT_NAME = RRAlamofireRxAPI; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.3; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 2B9E26EAE2CD392AD762421F663075A1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 2E98E0FA5479F4A6BCBCEA9BBB388362 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B7388B673C000F31CAA4C041D60C91E4 /* Pods-RRAlamofireRxAPI_Tests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 36D723A705296ACEF40673900E84E7C2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8FA12AC9F2741A51DEDC273383EA537E /* RxCocoa.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RxCocoa/RxCocoa-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RxCocoa/RxCocoa-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/RxCocoa/RxCocoa.modulemap"; + PRODUCT_MODULE_NAME = RxCocoa; + PRODUCT_NAME = RxCocoa; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 526AA8416FFB46EC673A714DEA08D540 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F9BDD00AFD8F7D5654AA12B69E7CCA22 /* Pods-RRAlamofireRxAPI_Example.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 53DE52CFBC1E9FF999A829C65D90356C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 791C045FF0003E09983C10224495632F /* Pods-RRAlamofireRxAPI_Tests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Tests/Pods-RRAlamofireRxAPI_Tests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 63FAF33E1C55B71A5F5A8B3CC8749F99 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + 7A990D4D7A394E906F2DE82D639771CF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 79AACD21868A33090E3805E26B9F46F9 /* Alamofire.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 81F3E6E6E3513D5B4FAD7A28AFABFCE4 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B6B864AB65B9252F06011CF64C541532 /* RRAlamofireRxAPI.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/RRAlamofireRxAPI/RRAlamofireRxAPI.modulemap"; + PRODUCT_MODULE_NAME = RRAlamofireRxAPI; + PRODUCT_NAME = RRAlamofireRxAPI; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.3; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 8B796C347629583813982DA48BFF3DBA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8ACF3F1B927742CDCAE13A46E33AEBA4 /* RxRelay.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RxRelay/RxRelay-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RxRelay/RxRelay-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/RxRelay/RxRelay.modulemap"; + PRODUCT_MODULE_NAME = RxRelay; + PRODUCT_NAME = RxRelay; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 8B85876F4DD024F6B30812CC64C233FE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D9FBC09BCBCD08EBDEDA4ACFB8ECB774 /* RxSwift.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RxSwift/RxSwift-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RxSwift/RxSwift-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/RxSwift/RxSwift.modulemap"; + PRODUCT_MODULE_NAME = RxSwift; + PRODUCT_NAME = RxSwift; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 93AD64353C65D45C0D4197F9ECAD786D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 620007F1A4CB48F039A8AE73B3A89CE3 /* Alamofire.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9844963CE7AC6B73DFA320FABD221E4E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FBA42F5582C55942D3865A62DFE1B897 /* RxRelay.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RxRelay/RxRelay-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RxRelay/RxRelay-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/RxRelay/RxRelay.modulemap"; + PRODUCT_MODULE_NAME = RxRelay; + PRODUCT_NAME = RxRelay; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 9B61284A7061E8863748697D46646D9B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EDBC32F890F842E54799D022C5BCA39E /* RxSwift.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RxSwift/RxSwift-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RxSwift/RxSwift-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/RxSwift/RxSwift.modulemap"; + PRODUCT_MODULE_NAME = RxSwift; + PRODUCT_NAME = RxSwift; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + B70031DEAD8B7CE0275C58FB0CA29448 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8017A3694A82B47110F6CF4380DE68F1 /* RxCocoa.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/RxCocoa/RxCocoa-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RxCocoa/RxCocoa-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/RxCocoa/RxCocoa.modulemap"; + PRODUCT_MODULE_NAME = RxCocoa; + PRODUCT_NAME = RxCocoa; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + E195BAA95C0507EF8F295F2CE569F70E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 473A0466ACCBF27E5EEBCB9E8E30B032 /* Pods-RRAlamofireRxAPI_Example.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-RRAlamofireRxAPI_Example/Pods-RRAlamofireRxAPI_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 20C0F742DE63CBF96502DD15C6282C08 /* Build configuration list for PBXNativeTarget "RxCocoa" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 36D723A705296ACEF40673900E84E7C2 /* Debug */, + B70031DEAD8B7CE0275C58FB0CA29448 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2B9E26EAE2CD392AD762421F663075A1 /* Debug */, + 63FAF33E1C55B71A5F5A8B3CC8749F99 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58AB8013FDA80C0DC823E61DAD21A744 /* Build configuration list for PBXNativeTarget "RRAlamofireRxAPI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DDADAB418060FEA3FB3CC3DC41FE58B /* Debug */, + 81F3E6E6E3513D5B4FAD7A28AFABFCE4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6BB96D59179C4694E04D562C6645E75E /* Build configuration list for PBXNativeTarget "Pods-RRAlamofireRxAPI_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2E98E0FA5479F4A6BCBCEA9BBB388362 /* Debug */, + 53DE52CFBC1E9FF999A829C65D90356C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 81E5FA7126C4F783D4136697D371A498 /* Build configuration list for PBXNativeTarget "RxSwift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B61284A7061E8863748697D46646D9B /* Debug */, + 8B85876F4DD024F6B30812CC64C233FE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + AAB788BC0704474EBBA2DAA11C7E88D8 /* Build configuration list for PBXNativeTarget "RxRelay" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8B796C347629583813982DA48BFF3DBA /* Debug */, + 9844963CE7AC6B73DFA320FABD221E4E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D9D76BA7CE68AB6C28EDBF8569B760DF /* Build configuration list for PBXNativeTarget "Pods-RRAlamofireRxAPI_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E195BAA95C0507EF8F295F2CE569F70E /* Debug */, + 526AA8416FFB46EC673A714DEA08D540 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E4A5194ABAF7A4780609E0E581DA6B54 /* Build configuration list for PBXNativeTarget "Alamofire" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 93AD64353C65D45C0D4197F9ECAD786D /* Debug */, + 7A990D4D7A394E906F2DE82D639771CF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/Pods/RxCocoa/LICENSE.md b/Example/Pods/RxCocoa/LICENSE.md similarity index 94% rename from Pods/RxCocoa/LICENSE.md rename to Example/Pods/RxCocoa/LICENSE.md index d6765d9..e32511b 100644 --- a/Pods/RxCocoa/LICENSE.md +++ b/Example/Pods/RxCocoa/LICENSE.md @@ -1,9 +1,9 @@ **The MIT License** -**Copyright © 2015 Krunoslav Zaher** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** **All rights reserved.** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pods/RxCocoa/Platform/DataStructures/Bag.swift b/Example/Pods/RxCocoa/Platform/DataStructures/Bag.swift similarity index 96% rename from Pods/RxCocoa/Platform/DataStructures/Bag.swift rename to Example/Pods/RxCocoa/Platform/DataStructures/Bag.swift index ec05a41..5720a3b 100644 --- a/Pods/RxCocoa/Platform/DataStructures/Bag.swift +++ b/Example/Pods/RxCocoa/Platform/DataStructures/Bag.swift @@ -35,7 +35,7 @@ struct Bag : CustomDebugStringConvertible { typealias Entry = (key: BagKey, value: T) - fileprivate var _nextKey: BagKey = BagKey(rawValue: 0) + private var _nextKey: BagKey = BagKey(rawValue: 0) // data @@ -135,7 +135,7 @@ struct Bag : CustomDebugStringConvertible { extension Bag { /// A textual representation of `self`, suitable for debugging. var debugDescription : String { - return "\(self.count) elements in Bag" + "\(self.count) elements in Bag" } } @@ -177,5 +177,5 @@ extension BagKey: Hashable { } func ==(lhs: BagKey, rhs: BagKey) -> Bool { - return lhs.rawValue == rhs.rawValue + lhs.rawValue == rhs.rawValue } diff --git a/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift b/Example/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift similarity index 68% rename from Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift rename to Example/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift index b6404a7..75d7bea 100644 --- a/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift +++ b/Example/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift @@ -10,16 +10,14 @@ struct InfiniteSequence : Sequence { typealias Iterator = AnyIterator - private let _repeatedValue: Element + private let repeatedValue: Element init(repeatedValue: Element) { - _repeatedValue = repeatedValue + self.repeatedValue = repeatedValue } func makeIterator() -> Iterator { - let repeatedValue = _repeatedValue - return AnyIterator { - return repeatedValue - } + let repeatedValue = self.repeatedValue + return AnyIterator { repeatedValue } } } diff --git a/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift b/Example/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift similarity index 61% rename from Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift rename to Example/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift index f7cb99c..9ed856b 100644 --- a/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift +++ b/Example/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift @@ -7,27 +7,27 @@ // struct PriorityQueue { - private let _hasHigherPriority: (Element, Element) -> Bool - private let _isEqual: (Element, Element) -> Bool + private let hasHigherPriority: (Element, Element) -> Bool + private let isEqual: (Element, Element) -> Bool - fileprivate var _elements = [Element]() + private var elements = [Element]() init(hasHigherPriority: @escaping (Element, Element) -> Bool, isEqual: @escaping (Element, Element) -> Bool) { - _hasHigherPriority = hasHigherPriority - _isEqual = isEqual + self.hasHigherPriority = hasHigherPriority + self.isEqual = isEqual } mutating func enqueue(_ element: Element) { - _elements.append(element) - bubbleToHigherPriority(_elements.count - 1) + elements.append(element) + bubbleToHigherPriority(elements.count - 1) } func peek() -> Element? { - return _elements.first + elements.first } var isEmpty: Bool { - return _elements.count == 0 + elements.count == 0 } mutating func dequeue() -> Element? { @@ -41,8 +41,8 @@ struct PriorityQueue { } mutating func remove(_ element: Element) { - for i in 0 ..< _elements.count { - if _isEqual(_elements[i], element) { + for i in 0 ..< elements.count { + if self.isEqual(elements[i], element) { removeAt(i) return } @@ -50,12 +50,12 @@ struct PriorityQueue { } private mutating func removeAt(_ index: Int) { - let removingLast = index == _elements.count - 1 + let removingLast = index == elements.count - 1 if !removingLast { - _elements.swapAt(index, _elements.count - 1) + elements.swapAt(index, elements.count - 1) } - _ = _elements.popLast() + _ = elements.popLast() if !removingLast { bubbleToHigherPriority(index) @@ -65,21 +65,21 @@ struct PriorityQueue { private mutating func bubbleToHigherPriority(_ initialUnbalancedIndex: Int) { precondition(initialUnbalancedIndex >= 0) - precondition(initialUnbalancedIndex < _elements.count) + precondition(initialUnbalancedIndex < elements.count) var unbalancedIndex = initialUnbalancedIndex while unbalancedIndex > 0 { let parentIndex = (unbalancedIndex - 1) / 2 - guard _hasHigherPriority(_elements[unbalancedIndex], _elements[parentIndex]) else { break } - _elements.swapAt(unbalancedIndex, parentIndex) + guard self.hasHigherPriority(elements[unbalancedIndex], elements[parentIndex]) else { break } + elements.swapAt(unbalancedIndex, parentIndex) unbalancedIndex = parentIndex } } private mutating func bubbleToLowerPriority(_ initialUnbalancedIndex: Int) { precondition(initialUnbalancedIndex >= 0) - precondition(initialUnbalancedIndex < _elements.count) + precondition(initialUnbalancedIndex < elements.count) var unbalancedIndex = initialUnbalancedIndex while true { @@ -88,16 +88,16 @@ struct PriorityQueue { var highestPriorityIndex = unbalancedIndex - if leftChildIndex < _elements.count && _hasHigherPriority(_elements[leftChildIndex], _elements[highestPriorityIndex]) { + if leftChildIndex < elements.count && self.hasHigherPriority(elements[leftChildIndex], elements[highestPriorityIndex]) { highestPriorityIndex = leftChildIndex } - if rightChildIndex < _elements.count && _hasHigherPriority(_elements[rightChildIndex], _elements[highestPriorityIndex]) { + if rightChildIndex < elements.count && self.hasHigherPriority(elements[rightChildIndex], elements[highestPriorityIndex]) { highestPriorityIndex = rightChildIndex } guard highestPriorityIndex != unbalancedIndex else { break } - _elements.swapAt(highestPriorityIndex, unbalancedIndex) + elements.swapAt(highestPriorityIndex, unbalancedIndex) unbalancedIndex = highestPriorityIndex } @@ -106,6 +106,6 @@ struct PriorityQueue { extension PriorityQueue : CustomDebugStringConvertible { var debugDescription: String { - return _elements.debugDescription + elements.debugDescription } } diff --git a/Pods/RxSwift/Platform/DataStructures/Queue.swift b/Example/Pods/RxCocoa/Platform/DataStructures/Queue.swift similarity index 57% rename from Pods/RxSwift/Platform/DataStructures/Queue.swift rename to Example/Pods/RxCocoa/Platform/DataStructures/Queue.swift index d05726c..625d473 100644 --- a/Pods/RxSwift/Platform/DataStructures/Queue.swift +++ b/Example/Pods/RxCocoa/Platform/DataStructures/Queue.swift @@ -18,12 +18,12 @@ struct Queue: Sequence { /// Type of generator. typealias Generator = AnyIterator - private let _resizeFactor = 2 + private let resizeFactor = 2 - private var _storage: ContiguousArray - private var _count = 0 - private var _pushNextIndex = 0 - private let _initialCapacity: Int + private var storage: ContiguousArray + private var innerCount = 0 + private var pushNextIndex = 0 + private let initialCapacity: Int /** Creates new queue. @@ -31,68 +31,64 @@ struct Queue: Sequence { - parameter capacity: Capacity of newly created queue. */ init(capacity: Int) { - _initialCapacity = capacity + initialCapacity = capacity - _storage = ContiguousArray(repeating: nil, count: capacity) + storage = ContiguousArray(repeating: nil, count: capacity) } private var dequeueIndex: Int { - let index = _pushNextIndex - count - return index < 0 ? index + _storage.count : index + let index = pushNextIndex - count + return index < 0 ? index + storage.count : index } /// - returns: Is queue empty. - var isEmpty: Bool { - return count == 0 - } + var isEmpty: Bool { count == 0 } /// - returns: Number of elements inside queue. - var count: Int { - return _count - } + var count: Int { innerCount } /// - returns: Element in front of a list of elements to `dequeue`. func peek() -> T { precondition(count > 0) - return _storage[dequeueIndex]! + return storage[dequeueIndex]! } mutating private func resizeTo(_ size: Int) { var newStorage = ContiguousArray(repeating: nil, count: size) - let count = _count + let count = self.count let dequeueIndex = self.dequeueIndex - let spaceToEndOfQueue = _storage.count - dequeueIndex + let spaceToEndOfQueue = storage.count - dequeueIndex // first batch is from dequeue index to end of array let countElementsInFirstBatch = Swift.min(count, spaceToEndOfQueue) // second batch is wrapped from start of array to end of queue let numberOfElementsInSecondBatch = count - countElementsInFirstBatch - newStorage[0 ..< countElementsInFirstBatch] = _storage[dequeueIndex ..< (dequeueIndex + countElementsInFirstBatch)] - newStorage[countElementsInFirstBatch ..< (countElementsInFirstBatch + numberOfElementsInSecondBatch)] = _storage[0 ..< numberOfElementsInSecondBatch] + newStorage[0 ..< countElementsInFirstBatch] = storage[dequeueIndex ..< (dequeueIndex + countElementsInFirstBatch)] + newStorage[countElementsInFirstBatch ..< (countElementsInFirstBatch + numberOfElementsInSecondBatch)] = storage[0 ..< numberOfElementsInSecondBatch] - _count = count - _pushNextIndex = count - _storage = newStorage + self.innerCount = count + pushNextIndex = count + storage = newStorage } /// Enqueues `element`. /// /// - parameter element: Element to enqueue. mutating func enqueue(_ element: T) { - if count == _storage.count { - resizeTo(Swift.max(_storage.count, 1) * _resizeFactor) + if count == storage.count { + resizeTo(Swift.max(storage.count, 1) * resizeFactor) } - _storage[_pushNextIndex] = element - _pushNextIndex += 1 - _count += 1 + storage[pushNextIndex] = element + pushNextIndex += 1 + innerCount += 1 - if _pushNextIndex >= _storage.count { - _pushNextIndex -= _storage.count + if pushNextIndex >= storage.count { + pushNextIndex -= storage.count } } @@ -102,11 +98,11 @@ struct Queue: Sequence { let index = dequeueIndex defer { - _storage[index] = nil - _count -= 1 + storage[index] = nil + innerCount -= 1 } - return _storage[index]! + return storage[index]! } /// Dequeues element or throws an exception in case queue is empty. @@ -118,9 +114,9 @@ struct Queue: Sequence { } defer { - let downsizeLimit = _storage.count / (_resizeFactor * _resizeFactor) - if _count < downsizeLimit && downsizeLimit >= _initialCapacity { - resizeTo(_storage.count / _resizeFactor) + let downsizeLimit = storage.count / (resizeFactor * resizeFactor) + if count < downsizeLimit && downsizeLimit >= initialCapacity { + resizeTo(storage.count / resizeFactor) } } @@ -130,23 +126,23 @@ struct Queue: Sequence { /// - returns: Generator of contained elements. func makeIterator() -> AnyIterator { var i = dequeueIndex - var count = _count + var innerCount = count return AnyIterator { - if count == 0 { + if innerCount == 0 { return nil } defer { - count -= 1 + innerCount -= 1 i += 1 } - if i >= self._storage.count { - i -= self._storage.count + if i >= self.storage.count { + i -= self.storage.count } - return self._storage[i] + return self.storage[i] } } } diff --git a/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift b/Example/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift similarity index 87% rename from Pods/RxSwift/Platform/DispatchQueue+Extensions.swift rename to Example/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift index 552314a..aaf24ca 100644 --- a/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift +++ b/Example/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift @@ -16,6 +16,6 @@ extension DispatchQueue { }() static var isMain: Bool { - return DispatchQueue.getSpecific(key: token) != nil + DispatchQueue.getSpecific(key: token) != nil } } diff --git a/Pods/RxCocoa/Platform/Platform.Darwin.swift b/Example/Pods/RxCocoa/Platform/Platform.Darwin.swift similarity index 92% rename from Pods/RxCocoa/Platform/Platform.Darwin.swift rename to Example/Pods/RxCocoa/Platform/Platform.Darwin.swift index 6dc36ad..eacc194 100644 --- a/Pods/RxCocoa/Platform/Platform.Darwin.swift +++ b/Example/Pods/RxCocoa/Platform/Platform.Darwin.swift @@ -9,8 +9,7 @@ #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) import Darwin - import class Foundation.Thread - import protocol Foundation.NSCopying + import Foundation extension Thread { static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { diff --git a/Pods/RxSwift/Platform/Platform.Linux.swift b/Example/Pods/RxCocoa/Platform/Platform.Linux.swift similarity index 95% rename from Pods/RxSwift/Platform/Platform.Linux.swift rename to Example/Pods/RxCocoa/Platform/Platform.Linux.swift index a950e1c..52a3e3a 100644 --- a/Pods/RxSwift/Platform/Platform.Linux.swift +++ b/Example/Pods/RxCocoa/Platform/Platform.Linux.swift @@ -8,7 +8,7 @@ #if os(Linux) - import class Foundation.Thread + import Foundation extension Thread { diff --git a/Pods/RxSwift/Platform/RecursiveLock.swift b/Example/Pods/RxCocoa/Platform/RecursiveLock.swift similarity index 94% rename from Pods/RxSwift/Platform/RecursiveLock.swift rename to Example/Pods/RxCocoa/Platform/RecursiveLock.swift index c03471d..10b9bbb 100644 --- a/Pods/RxSwift/Platform/RecursiveLock.swift +++ b/Example/Pods/RxCocoa/Platform/RecursiveLock.swift @@ -6,7 +6,7 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import class Foundation.NSRecursiveLock +import Foundation #if TRACE_RESOURCES class RecursiveLock: NSRecursiveLock { diff --git a/Pods/RxCocoa/README.md b/Example/Pods/RxCocoa/README.md similarity index 59% rename from Pods/RxCocoa/README.md rename to Example/Pods/RxCocoa/README.md index 82f754b..2b64b2a 100644 --- a/Pods/RxCocoa/README.md +++ b/Example/Pods/RxCocoa/README.md @@ -1,19 +1,27 @@ -Miss Electric Eel 2016 RxSwift: ReactiveX for Swift -====================================== +

+RxSwift Logo +
+Build Status +Supported Platforms: iOS, macOS, tvOS, watchOS & Linux +
+ + + +

-[![Travis CI](https://travis-ci.org/ReactiveX/RxSwift.svg?branch=master)](https://travis-ci.org/ReactiveX/RxSwift) ![platforms](https://img.shields.io/badge/platforms-iOS%20%7C%20macOS%20%7C%20tvOS%20%7C%20watchOS%20%7C%20Linux-333333.svg) [![pod](https://img.shields.io/cocoapods/v/RxSwift.svg)](https://cocoapods.org/pods/RxSwift) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Swift Package Manager compatible](https://img.shields.io/badge/Swift%20Package%20Manager-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager) +Rx is a [generic abstraction of computation](https://youtu.be/looJcaeboBY) expressed through `Observable` interface, which lets you broadcast and subscribe to values and other events from an `Observable` stream. -Rx is a [generic abstraction of computation](https://youtu.be/looJcaeboBY) expressed through `Observable` interface. +RxSwift is the Swift-specific implementation of the [Reactive Extensions](http://reactivex.io) standard. -This is a Swift version of [Rx](https://github.com/Reactive-Extensions/Rx.NET). +

RxSwift Observable Example of a price constantly changing and updating the app's UI

-It tries to port as many concepts from the original version as possible, but some concepts were adapted for more pleasant and performant integration with iOS/macOS environment. +While this version aims to stay true to the original spirit and naming conventions of Rx, this projects also aims to provide a true Swift-first API for Rx APIs. Cross platform documentation can be found on [ReactiveX.io](http://reactivex.io/). -Like the original Rx, its intention is to enable easy composition of asynchronous operations and event/data streams. +Like other Rx implementation, RxSwift's intention is to enable easy composition of asynchronous operations and streams of data in the form of `Observable` objects and a suite of methods to transform and compose these pieces of asynchronous work. -KVO observing, async operations and streams are all unified under [abstraction of sequence](Documentation/GettingStarted.md#observables-aka-sequences). This is the reason why Rx is so simple, elegant and powerful. +KVO observation, async operations, UI Events and other streams of data are all unified under [abstraction of sequence](Documentation/GettingStarted.md#observables-aka-sequences). This is the reason why Rx is so simple, elegant and powerful. ## I came here because I want to ... @@ -46,11 +54,13 @@ KVO observing, async operations and streams are all unified under [abstraction o ###### ... compare -* [with other libraries](Documentation/ComparisonWithOtherLibraries.md). +* [with Combine and ReactiveSwift](Documentation/ComparisonWithOtherLibraries.md). ###### ... understand the structure -RxSwift comprises five separate components depending on eachother in the following way: +RxSwift is as compositional as the asynchronous work it drives. The core unit is RxSwift itself, while other dependencies can be added for UI Work, testing, and more. + +It comprises five separate components depending on each other in the following way: ```none ┌──────────────┐ ┌──────────────┐ @@ -67,20 +77,10 @@ RxSwift comprises five separate components depending on eachother in the followi ``` * **RxSwift**: The core of RxSwift, providing the Rx standard as (mostly) defined by [ReactiveX](https://reactivex.io). It has no other dependencies. -* **RxCocoa**: Provides Cocoa-specific capabilities for general iOS/macOS/watchOS & tvOS app development, such as Binders, Traits, and much more. It depends on both `RxSwift` and `RxRelay`. -* **RxRelay**: Provides `PublishRelay` and `BehaviorRelay`, two [simple wrappers around Subjects](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Subjects.md#relays). It depends on `RxSwift`. +* **RxCocoa**: Provides Cocoa-specific capabilities for general iOS/macOS/watchOS & tvOS app development, such as Shared Sequences, Traits, and much more. It depends on both `RxSwift` and `RxRelay`. +* **RxRelay**: Provides `PublishRelay`, `BehaviorRelay` and `ReplayRelay`, three [simple wrappers around Subjects](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Subjects.md#relays). It depends on `RxSwift`. * **RxTest** and **RxBlocking**: Provides testing capabilities for Rx-based systems. It depends on `RxSwift`. -###### ... find compatible - -* libraries from [RxSwiftCommunity](https://github.com/RxSwiftCommunity). -* [Pods using RxSwift](https://cocoapods.org/?q=uses%3Arxswift). - -###### ... see the broader vision - -* Does this exist for Android? [RxJava](https://github.com/ReactiveX/RxJava) -* Where is all of this going, what is the future, what about reactive architectures, how do you design entire apps this way? [Cycle.js](https://github.com/cyclejs/cycle-core) - this is javascript, but [RxJS](https://github.com/Reactive-Extensions/RxJS) is javascript version of Rx. - ## Usage @@ -102,9 +102,9 @@ let searchResults = searchBar.rx.text.orEmpty return .just([]) } return searchGitHub(query) - .catchErrorJustReturn([]) + .catchAndReturn([]) } - .observeOn(MainScheduler.instance) + .observe(on: MainScheduler.instance) @@ -124,16 +124,16 @@ searchResults ## Requirements -* Xcode 10.2 -* Swift 5.0 +* Xcode 12.x +* Swift 5.x -For Xcode 10.1 and below, [use RxSwift 4.5](https://github.com/ReactiveX/RxSwift/releases/tag/4.5.0). +For Xcode 11 and below, [use RxSwift 5.x](https://github.com/ReactiveX/RxSwift/releases/tag/5.1.1). ## Installation -Rx doesn't contain any external dependencies. +RxSwift doesn't contain any external dependencies. -These are currently the supported options: +These are currently the supported installation options: ### Manual @@ -146,14 +146,14 @@ Open Rx.xcworkspace, choose `RxExample` and hit run. This method will build ever use_frameworks! target 'YOUR_TARGET_NAME' do - pod 'RxSwift', '~> 5' - pod 'RxCocoa', '~> 5' + pod 'RxSwift', '6.0.0' + pod 'RxCocoa', '6.0.0' end # RxTest and RxBlocking make the most sense in the context of unit/integration tests target 'YOUR_TESTING_TARGET' do - pod 'RxBlocking', '~> 5' - pod 'RxTest', '~> 5' + pod 'RxBlocking', '6.0.0' + pod 'RxTest', '6.0.0' end ``` @@ -163,14 +163,19 @@ Replace `YOUR_TARGET_NAME` and then, in the `Podfile` directory, type: $ pod install ``` -### [Carthage](https://github.com/Carthage/Carthage) +### XCFrameworks + +Each release starting with RxSwift 6 includes `*.xcframework` framework binaries. +Simply drag the needed framework binaries to your **Frameworks, Libraries, and Embedded Content** section under your target's **General** tab. -Officially supported: Carthage 0.33 and up. +XCFrameworks instructions + +### [Carthage](https://github.com/Carthage/Carthage) Add this to `Cartfile` ``` -github "ReactiveX/RxSwift" ~> 5.0 +github "ReactiveX/RxSwift" "6.0.0" ``` ```bash @@ -186,11 +191,13 @@ If you wish to build RxSwift as a Static Library using Carthage you may use the ```bash carthage update RxSwift --platform iOS --no-build sed -i -e 's/MACH_O_TYPE = mh_dylib/MACH_O_TYPE = staticlib/g' Carthage/Checkouts/RxSwift/Rx.xcodeproj/project.pbxproj -carthage build RxAlamofire --platform iOS +carthage build RxSwift --platform iOS ``` ### [Swift Package Manager](https://github.com/apple/swift-package-manager) +> **Note**: There is a critical cross-dependency bug affecting many projects including RxSwift in Swift Package Manager. We've [filed a bug (SR-12303)](https://bugs.swift.org/browse/SR-12303) in early 2020 but have no answer yet. Your mileage may vary. A partial workaround can be found [here](https://github.com/ReactiveX/RxSwift/issues/2127#issuecomment-717830502). + Create a `Package.swift` file. ```swift @@ -201,7 +208,7 @@ import PackageDescription let package = Package( name: "RxTestProject", dependencies: [ - .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "5.0.0") + .package(url: "https://github.com/ReactiveX/RxSwift.git", .exact("6.0.0")) ], targets: [ .target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"]) @@ -228,17 +235,17 @@ $ git submodule add git@github.com:ReactiveX/RxSwift.git ``` * Drag `Rx.xcodeproj` into Project Navigator -* Go to `Project > Targets > Build Phases > Link Binary With Libraries`, click `+` and select `RxSwift-[Platform]` and `RxCocoa-[Platform]` targets +* Go to `Project > Targets > Build Phases > Link Binary With Libraries`, click `+` and select `RxSwift`, `RxCocoa` and `RxRelay` targets ## References * [http://reactivex.io/](http://reactivex.io/) * [Reactive Extensions GitHub (GitHub)](https://github.com/Reactive-Extensions) * [RxSwift RayWenderlich.com Book](https://store.raywenderlich.com/products/rxswift-reactive-programming-with-swift) +* [RxSwift: Debunking the myth of hard (YouTube)](https://www.youtube.com/watch?v=GdvLP0ZAhhc) * [Boxue.io RxSwift Online Course](https://boxueio.com/series/rxswift-101) (Chinese 🇨🇳) -* [Erik Meijer (Wikipedia)](http://en.wikipedia.org/wiki/Erik_Meijer_%28computer_scientist%29) * [Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) (video)](https://youtu.be/looJcaeboBY) -* [Reactive Programming Overview (Jafar Husain from Netflix)](https://www.youtube.com/watch?v=dwP1TNXE6fc) +* [Reactive Programming Overview (Jafar Husain from Netflix)](https://youtu.be/-8Y1-lE6NSA) * [Subject/Observer is Dual to Iterator (paper)](http://csl.stanford.edu/~christos/pldi2010.fit/meijer.duality.pdf) * [Rx standard sequence operators visualized (visualization tool)](http://rxmarbles.com/) -* [Haskell](https://www.haskell.org/) \ No newline at end of file +* [Haskell](https://www.haskell.org/) diff --git a/Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift b/Example/Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/ControlTarget.swift diff --git a/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift index 33346c4..4ef8de7 100644 --- a/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Common/DelegateProxy.swift @@ -26,8 +26,8 @@ /// Parent object associated with delegate proxy. private weak var _parentObject: ParentObject? - fileprivate let _currentDelegateFor: (ParentObject) -> AnyObject? - fileprivate let _setCurrentDelegateTo: (AnyObject?, ParentObject) -> Void + private let _currentDelegateFor: (ParentObject) -> AnyObject? + private let _setCurrentDelegateTo: (AnyObject?, ParentObject) -> Void /// Initializes new instance. /// @@ -258,7 +258,7 @@ private let mainScheduler = MainScheduler() - fileprivate final class MessageDispatcher { + private final class MessageDispatcher { private let dispatcher: PublishSubject<[Any]> private let result: Observable<[Any]> @@ -274,7 +274,7 @@ self.result = dispatcher .do(onSubscribed: { weakDelegateProxy?.checkSelectorIsObservable(selector); weakDelegateProxy?.reset() }, onDispose: { weakDelegateProxy?.reset() }) .share() - .subscribeOn(mainScheduler) + .subscribe(on: mainScheduler) } var on: (Event<[Any]>) -> Void { diff --git a/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift b/Example/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift similarity index 92% rename from Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift index 0f9f49f..a59d16d 100644 --- a/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Common/DelegateProxyType.swift @@ -8,9 +8,7 @@ #if !os(Linux) - import func Foundation.objc_getAssociatedObject - import func Foundation.objc_setAssociatedObject - + import Foundation import RxSwift /** @@ -131,19 +129,19 @@ extension DelegateProxyType { // workaround of Delegate: class extension DelegateProxyType { static func _currentDelegate(for object: ParentObject) -> AnyObject? { - return currentDelegate(for: object).map { $0 as AnyObject } + currentDelegate(for: object).map { $0 as AnyObject } } static func _setCurrentDelegate(_ delegate: AnyObject?, to object: ParentObject) { - return setCurrentDelegate(castOptionalOrFatalError(delegate), to: object) + setCurrentDelegate(castOptionalOrFatalError(delegate), to: object) } func _forwardToDelegate() -> AnyObject? { - return self.forwardToDelegate().map { $0 as AnyObject } + self.forwardToDelegate().map { $0 as AnyObject } } func _setForwardToDelegate(_ forwardToDelegate: AnyObject?, retainDelegate: Bool) { - return self.setForwardToDelegate(castOptionalOrFatalError(forwardToDelegate), retainDelegate: retainDelegate) + self.setForwardToDelegate(castOptionalOrFatalError(forwardToDelegate), retainDelegate: retainDelegate) } } @@ -160,7 +158,7 @@ extension DelegateProxyType { /// Creates new proxy for target object. /// Should not call this function directory, use 'DelegateProxy.proxy(for:)' public static func createProxy(for object: AnyObject) -> Self { - return castOrFatalError(factory.createProxy(for: object)) + castOrFatalError(factory.createProxy(for: object)) } /// Returns existing proxy for object or installs new instance of delegate proxy. @@ -240,18 +238,18 @@ extension DelegateProxyType { } -// fileprivate extensions +// private extensions extension DelegateProxyType { - fileprivate static var factory: DelegateProxyFactory { - return DelegateProxyFactory.sharedFactory(for: self) + private static var factory: DelegateProxyFactory { + DelegateProxyFactory.sharedFactory(for: self) } - fileprivate static func assignedProxy(for object: ParentObject) -> AnyObject? { + private static func assignedProxy(for object: ParentObject) -> AnyObject? { let maybeDelegate = objc_getAssociatedObject(object, self.identifier) return castOptionalOrFatalError(maybeDelegate) } - fileprivate static func assignProxy(_ proxy: AnyObject, toObject object: ParentObject) { + private static func assignProxy(_ proxy: AnyObject, toObject object: ParentObject) { objc_setAssociatedObject(object, self.identifier, proxy, .OBJC_ASSOCIATION_RETAIN) } } @@ -267,7 +265,7 @@ public protocol HasDelegate: AnyObject { extension DelegateProxyType where ParentObject: HasDelegate, Self.Delegate == ParentObject.Delegate { public static func currentDelegate(for object: ParentObject) -> Delegate? { - return object.delegate + object.delegate } public static func setCurrentDelegate(_ delegate: Delegate?, to object: ParentObject) { @@ -286,7 +284,7 @@ public protocol HasDataSource: AnyObject { extension DelegateProxyType where ParentObject: HasDataSource, Self.Delegate == ParentObject.DataSource { public static func currentDelegate(for object: ParentObject) -> Delegate? { - return object.dataSource + object.dataSource } public static func setCurrentDelegate(_ delegate: Delegate?, to object: ParentObject) { @@ -307,7 +305,7 @@ public protocol HasPrefetchDataSource: AnyObject { @available(iOS 10.0, tvOS 10.0, *) extension DelegateProxyType where ParentObject: HasPrefetchDataSource, Self.Delegate == ParentObject.PrefetchDataSource { public static func currentDelegate(for object: ParentObject) -> Delegate? { - return object.prefetchDataSource + object.prefetchDataSource } public static func setCurrentDelegate(_ delegate: Delegate?, to object: ParentObject) { @@ -325,18 +323,22 @@ extension DelegateProxyType where ParentObject: HasPrefetchDataSource, Self.Dele , DelegateProxy.Delegate: AnyObject { let proxy = DelegateProxy.proxy(for: object) let unregisterDelegate = DelegateProxy.installForwardDelegate(dataSource, retainDelegate: retainDataSource, onProxyForObject: object) - // this is needed to flush any delayed old state (https://github.com/RxSwiftCommunity/RxDataSources/pull/75) - object.layoutIfNeeded() + + // Do not perform layoutIfNeeded if the object is still not in the view heirarchy + if object.window != nil { + // this is needed to flush any delayed old state (https://github.com/RxSwiftCommunity/RxDataSources/pull/75) + object.layoutIfNeeded() + } let subscription = self.asObservable() - .observeOn(MainScheduler()) - .catchError { error in + .observe(on:MainScheduler()) + .catch { error in bindingError(error) return Observable.empty() } // source can never end, otherwise it would release the subscriber, and deallocate the data source .concat(Observable.never()) - .takeUntil(object.rx.deallocated) + .take(until: object.rx.deallocated) .subscribe { [weak object] (event: Event) in if let object = object { @@ -358,7 +360,11 @@ extension DelegateProxyType where ParentObject: HasPrefetchDataSource, Self.Dele return Disposables.create { [weak object] in subscription.dispose() - object?.layoutIfNeeded() + + if object?.window != nil { + object?.layoutIfNeeded() + } + unregisterDelegate.dispose() } } diff --git a/Example/Pods/RxCocoa/RxCocoa/Common/Infallible+Bind.swift b/Example/Pods/RxCocoa/RxCocoa/Common/Infallible+Bind.swift new file mode 100644 index 0000000..82c2922 --- /dev/null +++ b/Example/Pods/RxCocoa/RxCocoa/Common/Infallible+Bind.swift @@ -0,0 +1,148 @@ +// +// Infallible+Bind.swift +// RxCocoa +// +// Created by Shai Mishali on 27/08/2020. +// Copyright © 2020 Krunoslav Zaher. All rights reserved. +// + +import RxSwift + +extension InfallibleType { + /** + Creates new subscription and sends elements to observer(s). + In this form, it's equivalent to the `subscribe` method, but it better conveys intent, and enables + writing more consistent binding code. + - parameter to: Observers to receives events. + - returns: Disposable object that can be used to unsubscribe the observers. + */ + public func bind(to observers: Observer...) -> Disposable where Observer.Element == Element { + self.subscribe { event in + observers.forEach { $0.on(event) } + } + } + + /** + Creates new subscription and sends elements to observer(s). + In this form, it's equivalent to the `subscribe` method, but it better conveys intent, and enables + writing more consistent binding code. + - parameter to: Observers to receives events. + - returns: Disposable object that can be used to unsubscribe the observers. + */ + public func bind(to observers: Observer...) -> Disposable where Observer.Element == Element? { + self.map { $0 as Element? } + .subscribe { event in + observers.forEach { $0.on(event) } + } + } + + /** + Subscribes to observable sequence using custom binder function. + + - parameter to: Function used to bind elements from `self`. + - returns: Object representing subscription. + */ + public func bind(to binder: (Self) -> Result) -> Result { + binder(self) + } + + /** + Subscribes to observable sequence using custom binder function and final parameter passed to binder function + after `self` is passed. + + public func bind(to binder: Self -> R1 -> R2, curriedArgument: R1) -> R2 { + return binder(self)(curriedArgument) + } + + - parameter to: Function used to bind elements from `self`. + - parameter curriedArgument: Final argument passed to `binder` to finish binding process. + - returns: Object representing subscription. + */ + public func bind(to binder: (Self) -> (R1) -> R2, curriedArgument: R1) -> R2 { + binder(self)(curriedArgument) + } + + /** + Subscribes an element handler to an observable sequence. + In case error occurs in debug mode, `fatalError` will be raised. + In case error occurs in release mode, `error` will be logged. + + - parameter onNext: Action to invoke for each element in the observable sequence. + - returns: Subscription object used to unsubscribe from the observable sequence. + */ + public func bind(onNext: @escaping (Element) -> Void) -> Disposable { + self.subscribe(onNext: onNext) + } + + /** + Creates new subscription and sends elements to `BehaviorRelay`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func bind(to relays: BehaviorRelay...) -> Disposable { + return self.subscribe(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `BehaviorRelay`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func bind(to relays: BehaviorRelay...) -> Disposable { + return self.subscribe(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `PublishRelay`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func bind(to relays: PublishRelay...) -> Disposable { + return self.subscribe(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `PublishRelay`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func bind(to relays: PublishRelay...) -> Disposable { + return self.subscribe(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `ReplayRelay`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func bind(to relays: ReplayRelay...) -> Disposable { + return self.subscribe(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `ReplayRelay`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func bind(to relays: ReplayRelay...) -> Disposable { + return self.subscribe(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } +} diff --git a/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift b/Example/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift similarity index 75% rename from Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift index 7be1474..74acab0 100644 --- a/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Common/Observable+Bind.swift @@ -17,7 +17,9 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observers. */ public func bind(to observers: Observer...) -> Disposable where Observer.Element == Element { - return self.bind(to: observers) + self.subscribe { event in + observers.forEach { $0.on(event) } + } } /** @@ -28,20 +30,10 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observers. */ public func bind(to observers: Observer...) -> Disposable where Observer.Element == Element? { - return self.map { $0 as Element? }.bind(to: observers) - } - - /** - Creates new subscription and sends elements to observer(s). - In this form, it's equivalent to the `subscribe` method, but it better conveys intent, and enables - writing more consistent binding code. - - parameter to: Observers to receives events. - - returns: Disposable object that can be used to unsubscribe the observers. - */ - private func bind(to observers: [Observer]) -> Disposable where Observer.Element == Element { - return self.subscribe { event in - observers.forEach { $0.on(event) } - } + self.map { $0 as Element? } + .subscribe { event in + observers.forEach { $0.on(event) } + } } /** @@ -51,7 +43,7 @@ extension ObservableType { - returns: Object representing subscription. */ public func bind(to binder: (Self) -> Result) -> Result { - return binder(self) + binder(self) } /** @@ -67,10 +59,9 @@ extension ObservableType { - returns: Object representing subscription. */ public func bind(to binder: (Self) -> (R1) -> R2, curriedArgument: R1) -> R2 { - return binder(self)(curriedArgument) + binder(self)(curriedArgument) } - /** Subscribes an element handler to an observable sequence. In case error occurs in debug mode, `fatalError` will be raised. @@ -80,8 +71,9 @@ extension ObservableType { - returns: Subscription object used to unsubscribe from the observable sequence. */ public func bind(onNext: @escaping (Element) -> Void) -> Disposable { - return self.subscribe(onNext: onNext, onError: { error in - rxFatalErrorInDebug("Binding error: \(error)") - }) + self.subscribe(onNext: onNext, + onError: { error in + rxFatalErrorInDebug("Binding error: \(error)") + }) } } diff --git a/Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift b/Example/Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift diff --git a/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift b/Example/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift similarity index 95% rename from Pods/RxCocoa/RxCocoa/Common/RxTarget.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift index c3356dd..5a2c464 100644 --- a/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import class Foundation.NSObject +import Foundation import RxSwift diff --git a/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift b/Example/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift similarity index 94% rename from Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift index 1532baa..5c3cf3c 100644 --- a/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift @@ -6,7 +6,7 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import struct Foundation.IndexPath +import Foundation /// Data source with access to underlying sectioned model. public protocol SectionedViewDataSourceType { diff --git a/Pods/RxCocoa/RxCocoa/Common/TextInput.swift b/Example/Pods/RxCocoa/RxCocoa/Common/TextInput.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Common/TextInput.swift rename to Example/Pods/RxCocoa/RxCocoa/Common/TextInput.swift diff --git a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift similarity index 95% rename from Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift index 0013434..30026bf 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift @@ -11,13 +11,13 @@ import RxSwift import CoreGraphics -import class Foundation.NSValue +import Foundation #if arch(x86_64) || arch(arm64) let CGRectType = "{CGRect={CGPoint=dd}{CGSize=dd}}" let CGSizeType = "{CGSize=dd}" let CGPointType = "{CGPoint=dd}" -#elseif arch(i386) || arch(arm) || arch(arm64_32) +#elseif arch(i386) || arch(arm) || os(watchOS) let CGRectType = "{CGRect={CGPoint=ff}{CGSize=ff}}" let CGSizeType = "{CGSize=ff}" let CGPointType = "{CGPoint=ff}" diff --git a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift index f65a93e..00d53dd 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable+Swift.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import class Foundation.NSNumber +import Foundation extension Int : KVORepresentable { public typealias KVOType = NSNumber diff --git a/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift diff --git a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift index 8c8c274..1be5a21 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift @@ -8,7 +8,7 @@ #if !os(Linux) -import Foundation.NSObject +import Foundation import RxSwift /// Key value observing options diff --git a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift index 205ab6c..6e47cb2 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift @@ -10,7 +10,7 @@ import RxSwift -import Foundation.NSObject +import Foundation extension Reactive where Base: NSObject { /** diff --git a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift similarity index 89% rename from Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift index aa84c59..3364d27 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Foundation/NSObject+Rx.swift @@ -8,7 +8,7 @@ #if !os(Linux) -import Foundation.NSObject +import Foundation import RxSwift #if SWIFT_PACKAGE && !DISABLE_SWIZZLING && !os(Linux) import RxCocoaRuntime @@ -63,8 +63,33 @@ extension Reactive where Base: NSObject { - parameter retainSelf: Retains self during observation if set `true`. - returns: Observable sequence of objects on `keyPath`. */ - public func observe(_ type: Element.Type, _ keyPath: String, options: KeyValueObservingOptions = [.new, .initial], retainSelf: Bool = true) -> Observable { - return KVOObservable(object: self.base, keyPath: keyPath, options: options, retainTarget: retainSelf).asObservable() + public func observe(_ type: Element.Type, + _ keyPath: String, + options: KeyValueObservingOptions = [.new, .initial], + retainSelf: Bool = true) -> Observable { + KVOObservable(object: self.base, keyPath: keyPath, options: options, retainTarget: retainSelf).asObservable() + } + + /** + Observes values at the provided key path using the provided options. + + - parameter keyPath: A key path between the object and one of its properties. + - parameter options: Key-value observation options, defaults to `.new` and `.initial`. + + - note: When the object is deallocated, a completion event is emitted. + + - returns: An observable emitting value changes at the provided key path. + */ + public func observe(_ keyPath: KeyPath, + options: NSKeyValueObservingOptions = [.new, .initial]) -> Observable { + Observable.create { [weak base] observer in + let observation = base?.observe(keyPath, options: options) { obj, _ in + observer.on(.next(obj[keyPath: keyPath])) + } + + return Disposables.create { observation?.invalidate() } + } + .take(until: base.rx.deallocated) } } @@ -109,13 +134,13 @@ extension Reactive where Base: AnyObject { public var deallocated: Observable { return self.synchronized { if let deallocObservable = objc_getAssociatedObject(self.base, &deallocatedSubjectContext) as? DeallocObservable { - return deallocObservable._subject + return deallocObservable.subject } let deallocObservable = DeallocObservable() objc_setAssociatedObject(self.base, &deallocatedSubjectContext, deallocObservable, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) - return deallocObservable._subject + return deallocObservable.subject } } @@ -202,7 +227,7 @@ extension Reactive where Base: AnyObject { } } - fileprivate func registerMessageInterceptor(_ selector: Selector) throws -> T { + private func registerMessageInterceptor(_ selector: Selector) throws -> T { let rxSelector = RX_selector(selector) let selectorReference = RX_reference_from_selector(rxSelector) @@ -251,7 +276,7 @@ extension Reactive where Base: AnyObject { var targetImplementation: IMP { get set } } - fileprivate final class DeallocatingProxy + private final class DeallocatingProxy : MessageInterceptorSubject , RXDeallocatingObserver { typealias Element = () @@ -276,7 +301,7 @@ extension Reactive where Base: AnyObject { } } - fileprivate final class MessageSentProxy + private final class MessageSentProxy : MessageInterceptorSubject , RXMessageSentObserver { typealias Element = [AnyObject] @@ -310,15 +335,15 @@ extension Reactive where Base: AnyObject { #endif -fileprivate final class DeallocObservable { - let _subject = ReplaySubject.create(bufferSize:1) +private final class DeallocObservable { + let subject = ReplaySubject.create(bufferSize:1) init() { } deinit { - self._subject.on(.next(())) - self._subject.on(.completed) + self.subject.on(.next(())) + self.subject.on(.completed) } } @@ -333,7 +358,7 @@ private protocol KVOObservableProtocol { var options: KeyValueObservingOptions { get } } -fileprivate final class KVOObserver +private final class KVOObserver : _RXKVOObserver , Disposable { typealias Callback = (Any?) -> Void @@ -361,7 +386,7 @@ fileprivate final class KVOObserver } } -fileprivate final class KVOObservable +private final class KVOObservable : ObservableType , KVOObservableProtocol { typealias Element = Element? @@ -397,7 +422,7 @@ fileprivate final class KVOObservable } -fileprivate extension KeyValueObservingOptions { +private extension KeyValueObservingOptions { var nsOptions: NSKeyValueObservingOptions { var result: UInt = 0 if self.contains(.new) { @@ -435,10 +460,10 @@ fileprivate extension KeyValueObservingOptions { // is as a delimiter. // This means there is `W` as element in an array of property attributes. private func isWeakProperty(_ properyRuntimeInfo: String) -> Bool { - return properyRuntimeInfo.range(of: ",W,") != nil + properyRuntimeInfo.range(of: ",W,") != nil } - fileprivate extension ObservableType where Element == AnyObject? { + private extension ObservableType where Element == AnyObject? { func finishWithNilWhenDealloc(_ target: NSObject) -> Observable { let deallocating = target.rx.deallocating diff --git a/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift similarity index 92% rename from Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift index f15e718..30ffa2b 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import class Foundation.NotificationCenter -import struct Foundation.Notification - +import Foundation import RxSwift extension Reactive where Base: NotificationCenter { diff --git a/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift similarity index 91% rename from Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift index 5804089..7aba9f7 100644 --- a/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Foundation/URLSession+Rx.swift @@ -6,26 +6,13 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import struct Foundation.URL -import struct Foundation.URLRequest -import struct Foundation.Data -import struct Foundation.Date -import struct Foundation.TimeInterval -import class Foundation.HTTPURLResponse -import class Foundation.URLSession -import class Foundation.URLResponse -import class Foundation.JSONSerialization -import class Foundation.NSError -import var Foundation.NSURLErrorCancelled -import var Foundation.NSURLErrorDomain - -#if os(Linux) - // don't know why - import Foundation -#endif - +import Foundation import RxSwift +#if canImport(FoundationNetworking) +import FoundationNetworking +#endif + /// RxCocoa URL errors. public enum RxCocoaURLError : Swift.Error { @@ -60,11 +47,11 @@ private func escapeTerminalString(_ value: String) -> String { return value.replacingOccurrences(of: "\"", with: "\\\"", options:[], range: nil) } -fileprivate func convertURLRequestToCurlCommand(_ request: URLRequest) -> String { +private func convertURLRequestToCurlCommand(_ request: URLRequest) -> String { let method = request.httpMethod ?? "GET" var returnValue = "curl -X \(method) " - if let httpBody = request.httpBody, request.httpMethod == "POST" { + if let httpBody = request.httpBody, request.httpMethod == "POST" || request.httpMethod == "PUT" { let maybeBody = String(data: httpBody, encoding: String.Encoding.utf8) if let body = maybeBody { returnValue += "-d \"\(escapeTerminalString(body))\" " @@ -127,7 +114,7 @@ extension Reactive where Base: URLSession { // smart compiler should be able to optimize this out let d: Date? - if Logging.URLRequests(request) { + if URLSession.rx.shouldLogRequest(request) { d = Date() } else { @@ -136,7 +123,7 @@ extension Reactive where Base: URLSession { let task = self.base.dataTask(with: request) { data, response, error in - if Logging.URLRequests(request) { + if URLSession.rx.shouldLogRequest(request) { let interval = Date().timeIntervalSince(d ?? Date()) print(convertURLRequestToCurlCommand(request)) #if os(Linux) @@ -237,7 +224,17 @@ extension Reactive where Base: URLSession { - returns: Observable sequence of response JSON. */ public func json(url: Foundation.URL) -> Observable { - return self.json(request: URLRequest(url: url)) + self.json(request: URLRequest(url: url)) } } +extension Reactive where Base == URLSession { + /// Log URL requests to standard output in curl format. + public static var shouldLogRequest: (URLRequest) -> Bool = { _ in + #if DEBUG + return true + #else + return false + #endif + } +} diff --git a/Pods/RxCocoa/RxCocoa/Runtime/_RX.m b/Example/Pods/RxCocoa/RxCocoa/Runtime/_RX.m similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/_RX.m rename to Example/Pods/RxCocoa/RxCocoa/Runtime/_RX.m diff --git a/Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m b/Example/Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m rename to Example/Pods/RxCocoa/RxCocoa/Runtime/_RXDelegateProxy.m diff --git a/Pods/RxCocoa/RxCocoa/Runtime/_RXKVOObserver.m b/Example/Pods/RxCocoa/RxCocoa/Runtime/_RXKVOObserver.m similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/_RXKVOObserver.m rename to Example/Pods/RxCocoa/RxCocoa/Runtime/_RXKVOObserver.m diff --git a/Pods/RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m b/Example/Pods/RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m similarity index 92% rename from Pods/RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m rename to Example/Pods/RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m index 1aa9071..98d604f 100644 --- a/Pods/RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m +++ b/Example/Pods/RxCocoa/RxCocoa/Runtime/_RXObjCRuntime.m @@ -378,7 +378,9 @@ IMP __nullable RX_ensure_observing(id __nonnull target, SEL __nonnull selector, // optimized observe methods -#define GENERATE_METHOD_IDENTIFIER(...) RX_CAT2(swizzle, RX_FOREACH(_, CAT, UNDERSCORE_TYPE_CAT, ## __VA_ARGS__)) +#define GENERATE_SELECTOR_IDENTIFIER(...) RX_CAT2(exampleSelector, RX_FOREACH(_, CAT, UNDERSCORE_TYPE_CAT, ## __VA_ARGS__)) + +#define GENERATE_METHOD_IDENTIFIER(...) RX_CAT2(swizzle, RX_FOREACH(_, CAT, UNDERSCORE_TYPE_CAT, ## __VA_ARGS__)) #define GENERATE_OBSERVE_METHOD_DECLARATION(...) \ -(BOOL)GENERATE_METHOD_IDENTIFIER(__VA_ARGS__):(Class __nonnull)class \ @@ -392,23 +394,16 @@ +(return_value)RX_CAT2(RX_CAT2(example_, return_value), RX_FOREACH(_, SEPARATE_B #define BUILD_EXAMPLE_METHOD_SELECTOR(return_value, ...) \ RX_CAT2(RX_CAT2(example_, return_value), RX_FOREACH(_, SEPARATE_BY_SPACE, SELECTOR_PART, ## __VA_ARGS__)) -#define SWIZZLE_OBSERVE_METHOD(return_value, ...) \ - @interface RXObjCRuntime (GENERATE_METHOD_IDENTIFIER(return_value, ## __VA_ARGS__)) \ - @end \ - \ - @implementation RXObjCRuntime(GENERATE_METHOD_IDENTIFIER(return_value, ## __VA_ARGS__)) \ +#define SWIZZLE_OBSERVE_METHOD_DEFINITIONS(return_value, ...) \ BUILD_EXAMPLE_METHOD(return_value, ## __VA_ARGS__) \ SWIZZLE_METHOD(return_value, GENERATE_OBSERVE_METHOD_DECLARATION(return_value, ## __VA_ARGS__), OBSERVE_BODY, OBSERVE_INVOKED_BODY, ## __VA_ARGS__) \ - \ - +(void)load { \ - __unused SEL exampleSelector = @selector(BUILD_EXAMPLE_METHOD_SELECTOR(return_value, ## __VA_ARGS__)); \ + +#define SWIZZLE_OBSERVE_METHOD_BODY(return_value, ...) \ + __unused SEL GENERATE_SELECTOR_IDENTIFIER(return_value, ## __VA_ARGS__) = @selector(BUILD_EXAMPLE_METHOD_SELECTOR(return_value, ## __VA_ARGS__)); \ [self registerOptimizedObserver:^BOOL(RXObjCRuntime * __nonnull self, Class __nonnull class, \ SEL __nonnull selector, NSErrorParam error) { \ return [self GENERATE_METHOD_IDENTIFIER(return_value, ## __VA_ARGS__):class selector:selector error:error]; \ - } encodedAs:exampleSelector]; \ - } \ - \ - @end \ + } encodedAs:GENERATE_SELECTOR_IDENTIFIER(return_value, ## __VA_ARGS__)]; \ // infrastructure method @@ -425,7 +420,7 @@ +(void)load { #define SWIZZLE_METHOD(return_value, method_prototype, body, invoked_body, ...) \ method_prototype \ __unused SEL rxSelector = RX_selector(selector); \ - IMP (^newImplementationGenerator)(void) = ^() { \ + IMP (^newImplementationGenerator)(void) = ^() { \ __block IMP thisIMP = nil; \ id newImplementation = ^return_value(__unsafe_unretained id self DECLARE_ARGUMENTS(__VA_ARGS__)) { \ body(__VA_ARGS__) \ @@ -522,35 +517,75 @@ @implementation RXObjCRuntime (InfrastructureMethods) // MARK: Optimized intercepting methods for specific combination of parameter types -SWIZZLE_OBSERVE_METHOD(void) - -SWIZZLE_OBSERVE_METHOD(void, id) -SWIZZLE_OBSERVE_METHOD(void, char) -SWIZZLE_OBSERVE_METHOD(void, short) -SWIZZLE_OBSERVE_METHOD(void, int) -SWIZZLE_OBSERVE_METHOD(void, long) -SWIZZLE_OBSERVE_METHOD(void, rx_uchar) -SWIZZLE_OBSERVE_METHOD(void, rx_ushort) -SWIZZLE_OBSERVE_METHOD(void, rx_uint) -SWIZZLE_OBSERVE_METHOD(void, rx_ulong) -SWIZZLE_OBSERVE_METHOD(void, rx_block) -SWIZZLE_OBSERVE_METHOD(void, float) -SWIZZLE_OBSERVE_METHOD(void, double) -SWIZZLE_OBSERVE_METHOD(void, SEL) - -SWIZZLE_OBSERVE_METHOD(void, id, id) -SWIZZLE_OBSERVE_METHOD(void, id, char) -SWIZZLE_OBSERVE_METHOD(void, id, short) -SWIZZLE_OBSERVE_METHOD(void, id, int) -SWIZZLE_OBSERVE_METHOD(void, id, long) -SWIZZLE_OBSERVE_METHOD(void, id, rx_uchar) -SWIZZLE_OBSERVE_METHOD(void, id, rx_ushort) -SWIZZLE_OBSERVE_METHOD(void, id, rx_uint) -SWIZZLE_OBSERVE_METHOD(void, id, rx_ulong) -SWIZZLE_OBSERVE_METHOD(void, id, rx_block) -SWIZZLE_OBSERVE_METHOD(void, id, float) -SWIZZLE_OBSERVE_METHOD(void, id, double) -SWIZZLE_OBSERVE_METHOD(void, id, SEL) +@interface RXObjCRuntime (swizzle) + +@end + +@implementation RXObjCRuntime(swizzle) + +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void) + +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, char) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, short) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, int) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, long) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, rx_uchar) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, rx_ushort) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, rx_uint) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, rx_ulong) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, rx_block) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, float) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, double) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, SEL) + +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, id) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, char) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, short) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, int) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, long) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, rx_uchar) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, rx_ushort) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, rx_uint) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, rx_ulong) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, rx_block) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, float) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, double) +SWIZZLE_OBSERVE_METHOD_DEFINITIONS(void, id, SEL) + ++(void)load { + SWIZZLE_OBSERVE_METHOD_BODY(void) + + SWIZZLE_OBSERVE_METHOD_BODY(void, id) + SWIZZLE_OBSERVE_METHOD_BODY(void, char) + SWIZZLE_OBSERVE_METHOD_BODY(void, short) + SWIZZLE_OBSERVE_METHOD_BODY(void, int) + SWIZZLE_OBSERVE_METHOD_BODY(void, long) + SWIZZLE_OBSERVE_METHOD_BODY(void, rx_uchar) + SWIZZLE_OBSERVE_METHOD_BODY(void, rx_ushort) + SWIZZLE_OBSERVE_METHOD_BODY(void, rx_uint) + SWIZZLE_OBSERVE_METHOD_BODY(void, rx_ulong) + SWIZZLE_OBSERVE_METHOD_BODY(void, rx_block) + SWIZZLE_OBSERVE_METHOD_BODY(void, float) + SWIZZLE_OBSERVE_METHOD_BODY(void, double) + SWIZZLE_OBSERVE_METHOD_BODY(void, SEL) + + SWIZZLE_OBSERVE_METHOD_BODY(void, id, id) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, char) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, short) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, int) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, long) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, rx_uchar) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, rx_ushort) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, rx_uint) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, rx_ulong) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, rx_block) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, float) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, double) + SWIZZLE_OBSERVE_METHOD_BODY(void, id, SEL) +} + +@end // MARK: RXObjCRuntime diff --git a/Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h b/Example/Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h rename to Example/Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h diff --git a/Pods/RxCocoa/RxCocoa/Runtime/include/_RX.h b/Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RX.h similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/include/_RX.h rename to Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RX.h diff --git a/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h b/Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h rename to Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h diff --git a/Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h b/Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h rename to Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h diff --git a/Pods/RxCocoa/RxCocoa/Runtime/include/_RXObjCRuntime.h b/Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXObjCRuntime.h similarity index 100% rename from Pods/RxCocoa/RxCocoa/Runtime/include/_RXObjCRuntime.h rename to Example/Pods/RxCocoa/RxCocoa/Runtime/include/_RXObjCRuntime.h diff --git a/Pods/RxCocoa/RxCocoa/RxCocoa.h b/Example/Pods/RxCocoa/RxCocoa/RxCocoa.h similarity index 100% rename from Pods/RxCocoa/RxCocoa/RxCocoa.h rename to Example/Pods/RxCocoa/RxCocoa/RxCocoa.h diff --git a/Pods/RxCocoa/RxCocoa/RxCocoa.swift b/Example/Pods/RxCocoa/RxCocoa/RxCocoa.swift similarity index 99% rename from Pods/RxCocoa/RxCocoa/RxCocoa.swift rename to Example/Pods/RxCocoa/RxCocoa/RxCocoa.swift index a446f55..5e569fc 100644 --- a/Pods/RxCocoa/RxCocoa/RxCocoa.swift +++ b/Example/Pods/RxCocoa/RxCocoa/RxCocoa.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import class Foundation.NSNull +import Foundation // Importing RxCocoa also imports RxRelay @_exported import RxRelay diff --git a/Pods/RxCocoa/RxCocoa/Traits/ControlEvent.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/ControlEvent.swift similarity index 84% rename from Pods/RxCocoa/RxCocoa/Traits/ControlEvent.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/ControlEvent.swift index e039fd4..bea1d83 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/ControlEvent.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/ControlEvent.swift @@ -20,33 +20,32 @@ public protocol ControlEventType : ObservableType { Properties: - - it never fails, - it doesn’t send any initial value on subscription, - it `Complete`s the sequence when the control deallocates, - - it never errors out, and + - it never errors out - it delivers events on `MainScheduler.instance`. **The implementation of `ControlEvent` will ensure that sequence of events is being subscribed on main scheduler - (`subscribeOn(ConcurrentMainScheduler.instance)` behavior).** + (`subscribe(on: ConcurrentMainScheduler.instance)` behavior).** **It is the implementor’s responsibility to make sure that all other properties enumerated above are satisfied.** **If they aren’t, using this trait will communicate wrong properties, and could potentially break someone’s code.** - **If the `events` observable sequence passed into thr initializer doesn’t satisfy all enumerated + **If the `events` observable sequence passed into the initializer doesn’t satisfy all enumerated properties, don’t use this trait.** */ public struct ControlEvent : ControlEventType { public typealias Element = PropertyType - let _events: Observable + let events: Observable /// Initializes control event with a observable sequence that represents events. /// /// - parameter events: Observable sequence that represents events. /// - returns: Control event created with a observable sequence of events. public init(events: Ev) where Ev.Element == Element { - self._events = events.subscribeOn(ConcurrentMainScheduler.instance) + self.events = events.subscribe(on: ConcurrentMainScheduler.instance) } /// Subscribes an observer to control events. @@ -54,16 +53,16 @@ public struct ControlEvent : ControlEventType { /// - parameter observer: Observer to subscribe to events. /// - returns: Disposable object that can be used to unsubscribe the observer from receiving control events. public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - return self._events.subscribe(observer) + self.events.subscribe(observer) } /// - returns: `Observable` interface. public func asObservable() -> Observable { - return self._events + self.events } /// - returns: `ControlEvent` interface. public func asControlEvent() -> ControlEvent { - return self + self } } diff --git a/Pods/RxCocoa/RxCocoa/Traits/ControlProperty.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/ControlProperty.swift similarity index 86% rename from Pods/RxCocoa/RxCocoa/Traits/ControlProperty.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/ControlProperty.swift index 551ffb9..3068afb 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/ControlProperty.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/ControlProperty.swift @@ -23,7 +23,6 @@ public protocol ControlPropertyType : ObservableType, ObserverType { It's properties are: - - it never fails - `shareReplay(1)` behavior - it's stateful, upon subscription (calling subscribe) last element is immediately replayed if it was produced - it will `Complete` sequence on control being deallocated @@ -31,7 +30,7 @@ public protocol ControlPropertyType : ObservableType, ObserverType { - it delivers events on `MainScheduler.instance` **The implementation of `ControlProperty` will ensure that sequence of values is being subscribed on main scheduler - (`subscribeOn(ConcurrentMainScheduler.instance)` behavior).** + (`subscribe(on: ConcurrentMainScheduler.instance)` behavior).** **It is implementor's responsibility to make sure that that all other properties enumerated above are satisfied.** @@ -43,8 +42,8 @@ public protocol ControlPropertyType : ObservableType, ObserverType { public struct ControlProperty : ControlPropertyType { public typealias Element = PropertyType - let _values: Observable - let _valueSink: AnyObserver + let values: Observable + let valueSink: AnyObserver /// Initializes control property with a observable sequence that represents property values and observer that enables /// binding values to property. @@ -54,8 +53,8 @@ public struct ControlProperty : ControlPropertyType { /// - returns: Control property created with a observable sequence of values and an observer that enables binding values /// to property. public init(values: Values, valueSink: Sink) where Element == Values.Element, Element == Sink.Element { - self._values = values.subscribeOn(ConcurrentMainScheduler.instance) - self._valueSink = valueSink.asObserver() + self.values = values.subscribe(on: ConcurrentMainScheduler.instance) + self.valueSink = valueSink.asObserver() } /// Subscribes an observer to control property values. @@ -63,7 +62,7 @@ public struct ControlProperty : ControlPropertyType { /// - parameter observer: Observer to subscribe to property values. /// - returns: Disposable object that can be used to unsubscribe the observer from receiving control property values. public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - return self._values.subscribe(observer) + self.values.subscribe(observer) } /// `ControlEvent` of user initiated value changes. Every time user updates control value change event @@ -77,17 +76,17 @@ public struct ControlProperty : ControlPropertyType { /// adjacent sequence values need to be different (e.g. because of interaction between programmatic and user updates, /// or for any other reason). public var changed: ControlEvent { - return ControlEvent(events: self._values.skip(1)) + ControlEvent(events: self.values.skip(1)) } /// - returns: `Observable` interface. public func asObservable() -> Observable { - return self._values + self.values } /// - returns: `ControlProperty` interface. public func asControlProperty() -> ControlProperty { - return self + self } /// Binds event to user interface. @@ -100,9 +99,9 @@ public struct ControlProperty : ControlPropertyType { case .error(let error): bindingError(error) case .next: - self._valueSink.on(event) + self.valueSink.on(event) case .completed: - self._valueSink.on(event) + self.valueSink.on(event) } } } @@ -112,8 +111,8 @@ extension ControlPropertyType where Element == String? { public var orEmpty: ControlProperty { let original: ControlProperty = self.asControlProperty() - let values: Observable = original._values.map { $0 ?? "" } - let valueSink: AnyObserver = original._valueSink.mapObserver { $0 } + let values: Observable = original.values.map { $0 ?? "" } + let valueSink: AnyObserver = original.valueSink.mapObserver { $0 } return ControlProperty(values: values, valueSink: valueSink) } } diff --git a/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift similarity index 88% rename from Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift index a248d15..76d960f 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift @@ -15,7 +15,7 @@ extension BehaviorRelay { /// - returns: Observable sequence. public func asDriver() -> Driver { let source = self.asObservable() - .observeOn(DriverSharingStrategy.scheduler) + .observe(on:DriverSharingStrategy.scheduler) return SharedSequence(source) } } diff --git a/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift diff --git a/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift diff --git a/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver+Subscription.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver+Subscription.swift similarity index 65% rename from Pods/RxCocoa/RxCocoa/Traits/Driver/Driver+Subscription.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver+Subscription.swift index 9026747..1cee832 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver+Subscription.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver+Subscription.swift @@ -22,9 +22,13 @@ extension SharedSequenceConvertibleType where SharingStrategy == DriverSharingSt - parameter observer: Observer that receives events. - returns: Disposable object that can be used to unsubscribe the observer from the subject. */ - public func drive(_ observer: Observer) -> Disposable where Observer.Element == Element { + public func drive(_ observers: Observer...) -> Disposable where Observer.Element == Element { MainScheduler.ensureRunningOnMainThread(errorMessage: errorMessage) - return self.asSharedSequence().asObservable().subscribe(observer) + return self.asSharedSequence() + .asObservable() + .subscribe { e in + observers.forEach { $0.on(e) } + } } /** @@ -36,9 +40,14 @@ extension SharedSequenceConvertibleType where SharingStrategy == DriverSharingSt - parameter observer: Observer that receives events. - returns: Disposable object that can be used to unsubscribe the observer from the subject. */ - public func drive(_ observer: Observer) -> Disposable where Observer.Element == Element? { + public func drive(_ observers: Observer...) -> Disposable where Observer.Element == Element? { MainScheduler.ensureRunningOnMainThread(errorMessage: errorMessage) - return self.asSharedSequence().asObservable().map { $0 as Element? }.subscribe(observer) + return self.asSharedSequence() + .asObservable() + .map { $0 as Element? } + .subscribe { e in + observers.forEach { $0.on(e) } + } } /** @@ -48,10 +57,10 @@ extension SharedSequenceConvertibleType where SharingStrategy == DriverSharingSt - parameter relay: Target relay for sequence elements. - returns: Disposable object that can be used to unsubscribe the observer from the relay. */ - public func drive(_ relay: BehaviorRelay) -> Disposable { + public func drive(_ relays: BehaviorRelay...) -> Disposable { MainScheduler.ensureRunningOnMainThread(errorMessage: errorMessage) return self.drive(onNext: { e in - relay.accept(e) + relays.forEach { $0.accept(e) } }) } @@ -62,10 +71,38 @@ extension SharedSequenceConvertibleType where SharingStrategy == DriverSharingSt - parameter relay: Target relay for sequence elements. - returns: Disposable object that can be used to unsubscribe the observer from the relay. */ - public func drive(_ relay: BehaviorRelay) -> Disposable { + public func drive(_ relays: BehaviorRelay...) -> Disposable { MainScheduler.ensureRunningOnMainThread(errorMessage: errorMessage) return self.drive(onNext: { e in - relay.accept(e) + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `ReplayRelay`. + This method can be only called from `MainThread`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func drive(_ relays: ReplayRelay...) -> Disposable { + MainScheduler.ensureRunningOnMainThread(errorMessage: errorMessage) + return self.drive(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `ReplayRelay`. + This method can be only called from `MainThread`. + + - parameter relay: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func drive(_ relays: ReplayRelay...) -> Disposable { + MainScheduler.ensureRunningOnMainThread(errorMessage: errorMessage) + return self.drive(onNext: { e in + relays.forEach { $0.accept(e) } }) } @@ -117,6 +154,18 @@ extension SharedSequenceConvertibleType where SharingStrategy == DriverSharingSt MainScheduler.ensureRunningOnMainThread(errorMessage: errorMessage) return self.asObservable().subscribe(onNext: onNext, onCompleted: onCompleted, onDisposed: onDisposed) } + + /** + Subscribes to this `Driver` with a no-op. + This method can be only called from `MainThread`. + + - note: This is an alias of `drive(onNext: nil, onCompleted: nil, onDisposed: nil)` used to fix an ambiguity bug in Swift: https://bugs.swift.org/browse/SR-13657 + + - returns: Subscription object used to unsubscribe from the observable sequence. + */ + public func drive() -> Disposable { + drive(onNext: nil, onCompleted: nil, onDisposed: nil) + } } diff --git a/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver.swift similarity index 91% rename from Pods/RxCocoa/RxCocoa/Traits/Driver/Driver.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver.swift index 07d2c86..5de8b3a 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/Driver.swift @@ -38,16 +38,16 @@ import RxSwift public typealias Driver = SharedSequence public struct DriverSharingStrategy: SharingStrategyProtocol { - public static var scheduler: SchedulerType { return SharingScheduler.make() } + public static var scheduler: SchedulerType { SharingScheduler.make() } public static func share(_ source: Observable) -> Observable { - return source.share(replay: 1, scope: .whileConnected) + source.share(replay: 1, scope: .whileConnected) } } extension SharedSequenceConvertibleType where SharingStrategy == DriverSharingStrategy { /// Adds `asDriver` to `SharingSequence` with `DriverSharingStrategy`. public func asDriver() -> Driver { - return self.asSharedSequence() + self.asSharedSequence() } } diff --git a/Pods/RxCocoa/RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift similarity index 84% rename from Pods/RxCocoa/RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift index 96a5363..bcac66b 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift @@ -18,8 +18,8 @@ extension ObservableConvertibleType { public func asDriver(onErrorJustReturn: Element) -> Driver { let source = self .asObservable() - .observeOn(DriverSharingStrategy.scheduler) - .catchErrorJustReturn(onErrorJustReturn) + .observe(on:DriverSharingStrategy.scheduler) + .catchAndReturn(onErrorJustReturn) return Driver(source) } @@ -32,8 +32,8 @@ extension ObservableConvertibleType { public func asDriver(onErrorDriveWith: Driver) -> Driver { let source = self .asObservable() - .observeOn(DriverSharingStrategy.scheduler) - .catchError { _ in + .observe(on:DriverSharingStrategy.scheduler) + .catch { _ in onErrorDriveWith.asObservable() } return Driver(source) @@ -48,8 +48,8 @@ extension ObservableConvertibleType { public func asDriver(onErrorRecover: @escaping (_ error: Swift.Error) -> Driver) -> Driver { let source = self .asObservable() - .observeOn(DriverSharingStrategy.scheduler) - .catchError { error in + .observe(on:DriverSharingStrategy.scheduler) + .catch { error in onErrorRecover(error).asObservable() } return Driver(source) diff --git a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift similarity index 89% rename from Pods/RxCocoa/RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift index 57af194..20ddf86 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift @@ -18,8 +18,8 @@ extension ObservableConvertibleType { public func asSharedSequence(sharingStrategy: S.Type = S.self, onErrorJustReturn: Element) -> SharedSequence { let source = self .asObservable() - .observeOn(S.scheduler) - .catchErrorJustReturn(onErrorJustReturn) + .observe(on:S.scheduler) + .catchAndReturn(onErrorJustReturn) return SharedSequence(source) } @@ -32,8 +32,8 @@ extension ObservableConvertibleType { public func asSharedSequence(sharingStrategy: S.Type = S.self, onErrorDriveWith: SharedSequence) -> SharedSequence { let source = self .asObservable() - .observeOn(S.scheduler) - .catchError { _ in + .observe(on:S.scheduler) + .catch { _ in onErrorDriveWith.asObservable() } return SharedSequence(source) @@ -48,8 +48,8 @@ extension ObservableConvertibleType { public func asSharedSequence(sharingStrategy: S.Type = S.self, onErrorRecover: @escaping (_ error: Swift.Error) -> SharedSequence) -> SharedSequence { let source = self .asObservable() - .observeOn(S.scheduler) - .catchError { error in + .observe(on:S.scheduler) + .catch { error in onErrorRecover(error).asObservable() } return SharedSequence(source) diff --git a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift similarity index 86% rename from Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift index 4ab1bb9..5111e06 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift @@ -18,8 +18,8 @@ public enum SharingScheduler { **This shouldn't be used in normal release builds.** */ - static public func mock(scheduler: SchedulerType, action: () -> Void) { - return mock(makeScheduler: { scheduler }, action: action) + static public func mock(scheduler: SchedulerType, action: () throws -> Void) rethrows { + return try mock(makeScheduler: { scheduler }, action: action) } /** @@ -28,24 +28,25 @@ public enum SharingScheduler { **This shouldn't be used in normal release builds.** */ - static public func mock(makeScheduler: @escaping () -> SchedulerType, action: () -> Void) { + static public func mock(makeScheduler: @escaping () -> SchedulerType, action: () throws -> Void) rethrows { let originalMake = make make = makeScheduler + defer { + make = originalMake + } - action() + try action() // If you remove this line , compiler buggy optimizations will change behavior of this code _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(makeScheduler) // Scary, I know - - make = originalMake } } #if os(Linux) import Glibc #else - import func Foundation.arc4random + import Foundation #endif func _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(_ scheduler: () -> SchedulerType) { diff --git a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators+arity.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators+arity.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators+arity.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators+arity.swift diff --git a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift similarity index 90% rename from Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift index 641234d..7ac1074 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift @@ -25,6 +25,24 @@ extension SharedSequenceConvertibleType { } } +// MARK: compactMap +extension SharedSequenceConvertibleType { + + /** + Projects each element of an observable sequence into an optional form and filters all optional results. + + - parameter transform: A transform function to apply to each source element and which returns an element or nil. + - returns: An observable sequence whose elements are the result of filtering the transform function for each element of the source. + + */ + public func compactMap(_ selector: @escaping (Element) -> Result?) -> SharedSequence { + let source = self + .asObservable() + .compactMap(selector) + return SharedSequence(source) + } +} + // MARK: filter extension SharedSequenceConvertibleType { /** @@ -42,7 +60,7 @@ extension SharedSequenceConvertibleType { } // MARK: switchLatest -extension SharedSequenceConvertibleType where Element : SharedSequenceConvertibleType { +extension SharedSequenceConvertibleType where Element: SharedSequenceConvertibleType { /** Transforms an observable sequence of observable sequences into an observable sequence @@ -261,7 +279,7 @@ extension SharedSequenceConvertibleType { } // MARK: merge -extension SharedSequenceConvertibleType where Element : SharedSequenceConvertibleType { +extension SharedSequenceConvertibleType where Element: SharedSequenceConvertibleType { /** Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. @@ -425,6 +443,37 @@ extension SharedSequence { } } +// MARK: - withUnretained +extension SharedSequenceConvertibleType { + /** + Provides an unretained, safe to use (i.e. not implicitly unwrapped), reference to an object along with the events emitted by the sequence. + + In the case the provided object cannot be retained successfully, the seqeunce will complete. + + - parameter obj: The object to provide an unretained reference on. + - parameter resultSelector: A function to combine the unretained referenced on `obj` and the value of the observable sequence. + - returns: An observable sequence that contains the result of `resultSelector` being called with an unretained reference on `obj` and the values of the original sequence. + */ + public func withUnretained( + _ obj: Object, + resultSelector: @escaping (Object, Element) -> Out + ) -> SharedSequence { + SharedSequence(self.asObservable().withUnretained(obj, resultSelector: resultSelector)) + } + + /** + Provides an unretained, safe to use (i.e. not implicitly unwrapped), reference to an object along with the events emitted by the sequence. + + In the case the provided object cannot be retained successfully, the seqeunce will complete. + + - parameter obj: The object to provide an unretained reference on. + - returns: An observable sequence of tuples that contains both an unretained reference on `obj` and the values of the original sequence. + */ + public func withUnretained(_ obj: Object) -> SharedSequence { + withUnretained(obj) { ($0, $1) } + } +} + // MARK: withLatestFrom extension SharedSequenceConvertibleType { diff --git a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence.swift similarity index 88% rename from Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence.swift index c75d496..4db2ee4 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/SharedSequence/SharedSequence.swift @@ -19,26 +19,26 @@ import RxSwift To find out more about units and how to use them, please visit `Documentation/Traits.md`. */ -public struct SharedSequence : SharedSequenceConvertibleType { - let _source: Observable +public struct SharedSequence : SharedSequenceConvertibleType, ObservableConvertibleType { + let source: Observable init(_ source: Observable) { - self._source = SharingStrategy.share(source) + self.source = SharingStrategy.share(source) } init(raw: Observable) { - self._source = raw + self.source = raw } #if EXPANDABLE_SHARED_SEQUENCE /** This method is extension hook in case this unit needs to extended from outside the library. - By defining `EXPANDABLE_SHARED_SEQUENCE` one agrees that it's up to him to ensure shared sequence + By defining `EXPANDABLE_SHARED_SEQUENCE` one agrees that it's up to them to ensure shared sequence properties are preserved after extension. */ - public static func createUnsafe(source: Source) -> SharedSequence { - return SharedSequence(raw: source.asObservable()) + public static func createUnsafe(source: Source) -> SharedSequence { + SharedSequence(raw: source.asObservable()) } #endif @@ -46,14 +46,14 @@ public struct SharedSequence - returns: Built observable sequence. */ public func asObservable() -> Observable { - return self._source + self.source } /** - returns: `self` */ public func asSharedSequence() -> SharedSequence { - return self + self } } @@ -90,7 +90,7 @@ public protocol SharedSequenceConvertibleType : ObservableConvertibleType { extension SharedSequenceConvertibleType { public func asObservable() -> Observable { - return self.asSharedSequence().asObservable() + self.asSharedSequence().asObservable() } } @@ -103,7 +103,7 @@ extension SharedSequence { - returns: An observable sequence with no elements. */ public static func empty() -> SharedSequence { - return SharedSequence(raw: Observable.empty().subscribeOn(SharingStrategy.scheduler)) + SharedSequence(raw: Observable.empty().subscribe(on: SharingStrategy.scheduler)) } /** @@ -112,7 +112,7 @@ extension SharedSequence { - returns: An observable sequence whose observers will never get called. */ public static func never() -> SharedSequence { - return SharedSequence(raw: Observable.never()) + SharedSequence(raw: Observable.never()) } /** @@ -122,7 +122,7 @@ extension SharedSequence { - returns: An observable sequence containing the single specified element. */ public static func just(_ element: Element) -> SharedSequence { - return SharedSequence(raw: Observable.just(element).subscribeOn(SharingStrategy.scheduler)) + SharedSequence(raw: Observable.just(element).subscribe(on: SharingStrategy.scheduler)) } /** @@ -133,7 +133,7 @@ extension SharedSequence { */ public static func deferred(_ observableFactory: @escaping () -> SharedSequence) -> SharedSequence { - return SharedSequence(Observable.deferred { observableFactory().asObservable() }) + SharedSequence(Observable.deferred { observableFactory().asObservable() }) } /** @@ -191,7 +191,7 @@ extension SharedSequence { } } -extension SharedSequence where Element : RxAbstractInteger { +extension SharedSequence where Element: RxAbstractInteger { /** Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. @@ -202,7 +202,7 @@ extension SharedSequence where Element : RxAbstractInteger { */ public static func interval(_ period: RxTimeInterval) -> SharedSequence { - return SharedSequence(Observable.interval(period, scheduler: SharingStrategy.scheduler)) + SharedSequence(Observable.interval(period, scheduler: SharingStrategy.scheduler)) } } @@ -220,7 +220,7 @@ extension SharedSequence where Element: RxAbstractInteger { */ public static func timer(_ dueTime: RxTimeInterval, period: RxTimeInterval) -> SharedSequence { - return SharedSequence(Observable.timer(dueTime, period: period, scheduler: SharingStrategy.scheduler)) + SharedSequence(Observable.timer(dueTime, period: period, scheduler: SharingStrategy.scheduler)) } } diff --git a/Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift diff --git a/Pods/RxCocoa/RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift similarity index 66% rename from Pods/RxCocoa/RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift index 1ba75ce..b962d4e 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift @@ -18,38 +18,38 @@ extension ObservableConvertibleType { public func asSignal(onErrorJustReturn: Element) -> Signal { let source = self .asObservable() - .observeOn(SignalSharingStrategy.scheduler) - .catchErrorJustReturn(onErrorJustReturn) + .observe(on: SignalSharingStrategy.scheduler) + .catchAndReturn(onErrorJustReturn) return Signal(source) } /** - Converts observable sequence to `Driver` trait. + Converts observable sequence to `Signal` trait. - - parameter onErrorDriveWith: Driver that continues to drive the sequence in case of error. + - parameter onErrorSignalWith: Signal that continues to emit the sequence in case of error. - returns: Signal trait. */ public func asSignal(onErrorSignalWith: Signal) -> Signal { let source = self .asObservable() - .observeOn(SignalSharingStrategy.scheduler) - .catchError { _ in + .observe(on: SignalSharingStrategy.scheduler) + .catch { _ in onErrorSignalWith.asObservable() } return Signal(source) } /** - Converts observable sequence to `Driver` trait. + Converts observable sequence to `Signal` trait. - - parameter onErrorRecover: Calculates driver that continues to drive the sequence in case of error. + - parameter onErrorRecover: Calculates signal that continues to emit the sequence in case of error. - returns: Signal trait. */ public func asSignal(onErrorRecover: @escaping (_ error: Swift.Error) -> Signal) -> Signal { let source = self .asObservable() - .observeOn(SignalSharingStrategy.scheduler) - .catchError { error in + .observe(on: SignalSharingStrategy.scheduler) + .catch { error in onErrorRecover(error).asObservable() } return Signal(source) diff --git a/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift similarity index 88% rename from Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift index 16f5cf8..79b975d 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift @@ -15,7 +15,7 @@ extension PublishRelay { /// - returns: Observable sequence. public func asSignal() -> Signal { let source = self.asObservable() - .observeOn(SignalSharingStrategy.scheduler) + .observe(on:SignalSharingStrategy.scheduler) return SharedSequence(source) } } diff --git a/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal+Subscription.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal+Subscription.swift new file mode 100644 index 0000000..3d3ae1b --- /dev/null +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal+Subscription.swift @@ -0,0 +1,143 @@ +// +// Signal+Subscription.swift +// RxCocoa +// +// Created by Krunoslav Zaher on 9/19/15. +// Copyright © 2015 Krunoslav Zaher. All rights reserved. +// + +import RxSwift +import RxRelay + +extension SharedSequenceConvertibleType where SharingStrategy == SignalSharingStrategy { + /** + Creates new subscription and sends elements to observer. + + In this form it's equivalent to `subscribe` method, but it communicates intent better. + + - parameter to: Observers that receives events. + - returns: Disposable object that can be used to unsubscribe the observer from the subject. + */ + public func emit(to observers: Observer...) -> Disposable where Observer.Element == Element { + return self.asSharedSequence() + .asObservable() + .subscribe { event in + observers.forEach { $0.on(event) } + } + } + + /** + Creates new subscription and sends elements to observer. + + In this form it's equivalent to `subscribe` method, but it communicates intent better. + + - parameter to: Observers that receives events. + - returns: Disposable object that can be used to unsubscribe the observer from the subject. + */ + public func emit(to observers: Observer...) -> Disposable where Observer.Element == Element? { + return self.asSharedSequence() + .asObservable() + .map { $0 as Element? } + .subscribe { event in + observers.forEach { $0.on(event) } + } + } + + /** + Creates new subscription and sends elements to `BehaviorRelay`. + - parameter to: Target relays for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func emit(to relays: BehaviorRelay...) -> Disposable { + return self.emit(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `BehaviorRelay`. + - parameter to: Target relays for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func emit(to relays: BehaviorRelay...) -> Disposable { + return self.emit(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `PublishRelay`. + + - parameter to: Target relays for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func emit(to relays: PublishRelay...) -> Disposable { + return self.emit(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `PublishRelay`. + + - parameter to: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func emit(to relays: PublishRelay...) -> Disposable { + return self.emit(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `ReplayRelay`. + + - parameter to: Target relays for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func emit(to relays: ReplayRelay...) -> Disposable { + return self.emit(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Creates new subscription and sends elements to `ReplayRelay`. + + - parameter to: Target relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer from the relay. + */ + public func emit(to relays: ReplayRelay...) -> Disposable { + return self.emit(onNext: { e in + relays.forEach { $0.accept(e) } + }) + } + + /** + Subscribes an element handler, a completion handler and disposed handler to an observable sequence. + + Error callback is not exposed because `Signal` can't error out. + + - parameter onNext: Action to invoke for each element in the observable sequence. + - parameter onCompleted: Action to invoke upon graceful termination of the observable sequence. + gracefully completed, errored, or if the generation is canceled by disposing subscription) + - parameter onDisposed: Action to invoke upon any type of termination of sequence (if the sequence has + gracefully completed, errored, or if the generation is canceled by disposing subscription) + - returns: Subscription object used to unsubscribe from the observable sequence. + */ + public func emit(onNext: ((Element) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil) -> Disposable { + self.asObservable().subscribe(onNext: onNext, onCompleted: onCompleted, onDisposed: onDisposed) + } + + /** + Subscribes to this `Signal` with a no-op. + This method can be only called from `MainThread`. + + - note: This is an alias of `emit(onNext: nil, onCompleted: nil, onDisposed: nil)` used to fix an ambiguity bug in Swift: https://bugs.swift.org/browse/SR-13657 + + - returns: Subscription object used to unsubscribe from the observable sequence. + */ + public func emit() -> Disposable { + emit(onNext: nil, onCompleted: nil, onDisposed: nil) + } +} diff --git a/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal.swift b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal.swift similarity index 89% rename from Pods/RxCocoa/RxCocoa/Traits/Signal/Signal.swift rename to Example/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal.swift index 6d7e32f..e066b7e 100644 --- a/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal.swift +++ b/Example/Pods/RxCocoa/RxCocoa/Traits/Signal/Signal.swift @@ -30,16 +30,16 @@ import RxSwift public typealias Signal = SharedSequence public struct SignalSharingStrategy: SharingStrategyProtocol { - public static var scheduler: SchedulerType { return SharingScheduler.make() } + public static var scheduler: SchedulerType { SharingScheduler.make() } public static func share(_ source: Observable) -> Observable { - return source.share(scope: .whileConnected) + source.share(scope: .whileConnected) } } extension SharedSequenceConvertibleType where SharingStrategy == SignalSharingStrategy { /// Adds `asPublisher` to `SharingSequence` with `PublishSharingStrategy`. public func asSignal() -> Signal { - return self.asSharedSequence() + self.asSharedSequence() } } diff --git a/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift similarity index 90% rename from Pods/RxCocoa/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift index 8c4eb63..1acc998 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift @@ -18,15 +18,15 @@ class _RxCollectionViewReactiveArrayDataSource @objc(numberOfSectionsInCollectionView:) func numberOfSections(in: UICollectionView) -> Int { - return 1 + 1 } func _collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return 0 + 0 } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return _collectionView(collectionView, numberOfItemsInSection: section) + _collectionView(collectionView, numberOfItemsInSection: section) } fileprivate func _collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { @@ -34,7 +34,7 @@ class _RxCollectionViewReactiveArrayDataSource } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - return _collectionView(collectionView, cellForItemAt: indexPath) + _collectionView(collectionView, cellForItemAt: indexPath) } } @@ -66,7 +66,7 @@ class RxCollectionViewReactiveArrayDataSource var itemModels: [Element]? func modelAtIndex(_ index: Int) -> Element? { - return itemModels?[index] + itemModels?[index] } func model(at indexPath: IndexPath) throws -> Any { @@ -86,11 +86,11 @@ class RxCollectionViewReactiveArrayDataSource // data source override func _collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return itemModels?.count ?? 0 + itemModels?.count ?? 0 } override func _collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - return cellFactory(collectionView, indexPath.item, itemModels![indexPath.item]) + cellFactory(collectionView, indexPath.item, itemModels![indexPath.item]) } // reactive diff --git a/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift similarity index 93% rename from Pods/RxCocoa/RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift index f50f226..53b8475 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift @@ -22,11 +22,11 @@ class RxPickerViewArrayDataSource: NSObject, UIPickerViewDataSource, Sectione } func numberOfComponents(in pickerView: UIPickerView) -> Int { - return 1 + 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { - return items.count + items.count } } @@ -57,7 +57,7 @@ final class RxStringPickerViewAdapter } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { - return titleForRow(row, items[row]) + titleForRow(row, items[row]) } } @@ -71,7 +71,7 @@ final class RxAttributedStringPickerViewAdapter: RxPic } func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? { - return attributedTitleForRow(row, items[row]) + attributedTitleForRow(row, items[row]) } } @@ -85,7 +85,7 @@ final class RxPickerViewAdapter: RxPickerViewSequenceD } func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { - return viewForRow(row, items[row], view) + viewForRow(row, items[row], view) } } diff --git a/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift similarity index 89% rename from Pods/RxCocoa/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift index 0ac92ab..6d612f3 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift @@ -17,15 +17,15 @@ class _RxTableViewReactiveArrayDataSource , UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { - return 1 + 1 } func _tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return 0 + 0 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return _tableView(tableView, numberOfRowsInSection: section) + _tableView(tableView, numberOfRowsInSection: section) } fileprivate func _tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { @@ -33,7 +33,7 @@ class _RxTableViewReactiveArrayDataSource } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - return _tableView(tableView, cellForRowAt: indexPath) + _tableView(tableView, cellForRowAt: indexPath) } } @@ -64,7 +64,7 @@ class RxTableViewReactiveArrayDataSource var itemModels: [Element]? func modelAtIndex(_ index: Int) -> Element? { - return itemModels?[index] + itemModels?[index] } func model(at indexPath: IndexPath) throws -> Any { @@ -82,11 +82,11 @@ class RxTableViewReactiveArrayDataSource } override func _tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return itemModels?.count ?? 0 + itemModels?.count ?? 0 } override func _tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - return cellFactory(tableView, indexPath.item, itemModels![indexPath.row]) + cellFactory(tableView, indexPath.item, itemModels![indexPath.row]) } // reactive diff --git a/Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift similarity index 92% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift index 779d8d4..efb7554 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourcePrefetchingProxy.swift @@ -17,10 +17,10 @@ extension UICollectionView: HasPrefetchDataSource { } @available(iOS 10.0, tvOS 10.0, *) -fileprivate let collectionViewPrefetchDataSourceNotSet = CollectionViewPrefetchDataSourceNotSet() +private let collectionViewPrefetchDataSourceNotSet = CollectionViewPrefetchDataSourceNotSet() @available(iOS 10.0, tvOS 10.0, *) -fileprivate final class CollectionViewPrefetchDataSourceNotSet +private final class CollectionViewPrefetchDataSourceNotSet : NSObject , UICollectionViewDataSourcePrefetching { @@ -48,7 +48,7 @@ open class RxCollectionViewDataSourcePrefetchingProxy self.register { RxCollectionViewDataSourcePrefetchingProxy(collectionView: $0) } } - fileprivate var _prefetchItemsPublishSubject: PublishSubject<[IndexPath]>? + private var _prefetchItemsPublishSubject: PublishSubject<[IndexPath]>? /// Optimized version used for observing prefetch items callbacks. internal var prefetchItemsPublishSubject: PublishSubject<[IndexPath]> { diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift similarity index 85% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift index 9c970a2..793e544 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift @@ -15,14 +15,14 @@ extension UICollectionView: HasDataSource { public typealias DataSource = UICollectionViewDataSource } -fileprivate let collectionViewDataSourceNotSet = CollectionViewDataSourceNotSet() +private let collectionViewDataSourceNotSet = CollectionViewDataSourceNotSet() -fileprivate final class CollectionViewDataSourceNotSet +private final class CollectionViewDataSourceNotSet : NSObject , UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return 0 + 0 } // The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath: @@ -58,12 +58,12 @@ open class RxCollectionViewDataSourceProxy /// Required delegate method implementation. public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return (_requiredMethodsDataSource ?? collectionViewDataSourceNotSet).collectionView(collectionView, numberOfItemsInSection: section) + (_requiredMethodsDataSource ?? collectionViewDataSourceNotSet).collectionView(collectionView, numberOfItemsInSection: section) } /// Required delegate method implementation. public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - return (_requiredMethodsDataSource ?? collectionViewDataSourceNotSet).collectionView(collectionView, cellForItemAt: indexPath) + (_requiredMethodsDataSource ?? collectionViewDataSourceNotSet).collectionView(collectionView, cellForItemAt: indexPath) } /// For more information take a look at `DelegateProxyType`. diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift similarity index 88% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift index a639ef8..f9c65d1 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift @@ -19,11 +19,11 @@ private let pickerViewDataSourceNotSet = PickerViewDataSourceNotSet() final private class PickerViewDataSourceNotSet: NSObject, UIPickerViewDataSource { func numberOfComponents(in pickerView: UIPickerView) -> Int { - return 0 + 0 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { - return 0 + 0 } } @@ -53,12 +53,12 @@ public class RxPickerViewDataSourceProxy /// Required delegate method implementation. public func numberOfComponents(in pickerView: UIPickerView) -> Int { - return (_requiredMethodsDataSource ?? pickerViewDataSourceNotSet).numberOfComponents(in: pickerView) + (_requiredMethodsDataSource ?? pickerViewDataSourceNotSet).numberOfComponents(in: pickerView) } /// Required delegate method implementation. public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { - return (_requiredMethodsDataSource ?? pickerViewDataSourceNotSet).pickerView(pickerView, numberOfRowsInComponent: component) + (_requiredMethodsDataSource ?? pickerViewDataSourceNotSet).pickerView(pickerView, numberOfRowsInComponent: component) } /// For more information take a look at `DelegateProxyType`. diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift similarity index 94% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift index dbaf238..59608d3 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift @@ -38,8 +38,8 @@ open class RxScrollViewDelegateProxy self.register { RxTextViewDelegateProxy(textView: $0) } } - fileprivate var _contentOffsetBehaviorSubject: BehaviorSubject? - fileprivate var _contentOffsetPublishSubject: PublishSubject<()>? + private var _contentOffsetBehaviorSubject: BehaviorSubject? + private var _contentOffsetPublishSubject: PublishSubject<()>? /// Optimized version used for observing content offset changes. internal var contentOffsetBehaviorSubject: BehaviorSubject { diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift index 8341aa3..04e0de0 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift @@ -16,7 +16,6 @@ extension UISearchController: HasDelegate { } /// For more information take a look at `DelegateProxyType`. -@available(iOS 8.0, *) open class RxSearchControllerDelegateProxy : DelegateProxy , DelegateProxyType diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift similarity index 97% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift index c4a1704..6205730 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift @@ -37,7 +37,7 @@ open class RxTabBarDelegateProxy /// For more information take a look at `DelegateProxyType`. open class func currentDelegate(for object: ParentObject) -> UITabBarDelegate? { - return object.delegate + object.delegate } /// For more information take a look at `DelegateProxyType`. diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift similarity index 92% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift index a8bdf41..4345312 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourcePrefetchingProxy.swift @@ -17,10 +17,10 @@ extension UITableView: HasPrefetchDataSource { } @available(iOS 10.0, tvOS 10.0, *) -fileprivate let tableViewPrefetchDataSourceNotSet = TableViewPrefetchDataSourceNotSet() +private let tableViewPrefetchDataSourceNotSet = TableViewPrefetchDataSourceNotSet() @available(iOS 10.0, tvOS 10.0, *) -fileprivate final class TableViewPrefetchDataSourceNotSet +private final class TableViewPrefetchDataSourceNotSet : NSObject , UITableViewDataSourcePrefetching { @@ -48,7 +48,7 @@ open class RxTableViewDataSourcePrefetchingProxy self.register { RxTableViewDataSourcePrefetchingProxy(tableView: $0) } } - fileprivate var _prefetchRowsPublishSubject: PublishSubject<[IndexPath]>? + private var _prefetchRowsPublishSubject: PublishSubject<[IndexPath]>? /// Optimized version used for observing prefetch rows callbacks. internal var prefetchRowsPublishSubject: PublishSubject<[IndexPath]> { diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift similarity index 80% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift index 7536d1b..42d9386 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift @@ -15,14 +15,14 @@ extension UITableView: HasDataSource { public typealias DataSource = UITableViewDataSource } -fileprivate let tableViewDataSourceNotSet = TableViewDataSourceNotSet() +private let tableViewDataSourceNotSet = TableViewDataSourceNotSet() -fileprivate final class TableViewDataSourceNotSet +private final class TableViewDataSourceNotSet : NSObject , UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return 0 + 0 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { @@ -50,18 +50,18 @@ open class RxTableViewDataSourceProxy self.register { RxTableViewDataSourceProxy(tableView: $0) } } - fileprivate weak var _requiredMethodsDataSource: UITableViewDataSource? = tableViewDataSourceNotSet + private weak var _requiredMethodsDataSource: UITableViewDataSource? = tableViewDataSourceNotSet // MARK: delegate /// Required delegate method implementation. public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).tableView(tableView, numberOfRowsInSection: section) + (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).tableView(tableView, numberOfRowsInSection: section) } /// Required delegate method implementation. public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - return (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).tableView(tableView, cellForRowAt: indexPath) + (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).tableView(tableView, cellForRowAt: indexPath) } /// For more information take a look at `DelegateProxyType`. diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift diff --git a/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWKNavigationDelegateProxy.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWKNavigationDelegateProxy.swift new file mode 100644 index 0000000..c758c02 --- /dev/null +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWKNavigationDelegateProxy.swift @@ -0,0 +1,43 @@ +// +// RxWKNavigationDelegateProxy.swift +// RxCocoa +// +// Created by Giuseppe Lanza on 14/02/2020. +// Copyright © 2020 Krunoslav Zaher. All rights reserved. +// + +#if os(iOS) || os(macOS) + +import RxSwift +import WebKit + +@available(iOS 8.0, OSX 10.10, OSXApplicationExtension 10.10, *) +open class RxWKNavigationDelegateProxy + : DelegateProxy + , DelegateProxyType +, WKNavigationDelegate { + + /// Typed parent object. + public weak private(set) var webView: WKWebView? + + /// - parameter webView: Parent object for delegate proxy. + public init(webView: ParentObject) { + self.webView = webView + super.init(parentObject: webView, delegateProxy: RxWKNavigationDelegateProxy.self) + } + + // Register known implementations + public static func registerKnownImplementations() { + self.register { RxWKNavigationDelegateProxy(webView: $0) } + } + + public static func currentDelegate(for object: WKWebView) -> WKNavigationDelegate? { + object.navigationDelegate + } + + public static func setCurrentDelegate(_ delegate: WKNavigationDelegate?, to object: WKWebView) { + object.navigationDelegate = delegate + } +} + +#endif diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift similarity index 89% rename from Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift index bf00996..ca2d4f1 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift @@ -12,10 +12,9 @@ import UIKit import RxSwift extension Reactive where Base: UIActivityIndicatorView { - /// Bindable sink for `startAnimating()`, `stopAnimating()` methods. public var isAnimating: Binder { - return Binder(self.base) { activityIndicator, active in + Binder(self.base) { activityIndicator, active in if active { activityIndicator.startAnimating() } else { @@ -23,7 +22,6 @@ extension Reactive where Base: UIActivityIndicatorView { } } } - } #endif diff --git a/Example/Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift new file mode 100644 index 0000000..d776105 --- /dev/null +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift @@ -0,0 +1,106 @@ +// +// UIApplication+Rx.swift +// RxCocoa +// +// Created by Mads Bøgeskov on 18/01/16. +// Copyright © 2016 Krunoslav Zaher. All rights reserved. +// + +#if os(iOS) + +import UIKit +import RxSwift + +extension Reactive where Base: UIApplication { + /// Bindable sink for `isNetworkActivityIndicatorVisible`. + public var isNetworkActivityIndicatorVisible: Binder { + return Binder(self.base) { application, active in + application.isNetworkActivityIndicatorVisible = active + } + } + + /// Reactive wrapper for `UIApplication.didEnterBackgroundNotification` + public static var didEnterBackground: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.didEnterBackgroundNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.willEnterForegroundNotification` + public static var willEnterForeground: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.willEnterForegroundNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.didFinishLaunchingNotification` + public static var didFinishLaunching: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.didFinishLaunchingNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.didBecomeActiveNotification` + public static var didBecomeActive: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.didBecomeActiveNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.willResignActiveNotification` + public static var willResignActive: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.willResignActiveNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.didReceiveMemoryWarningNotification` + public static var didReceiveMemoryWarning: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.didReceiveMemoryWarningNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.willTerminateNotification` + public static var willTerminate: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.willTerminateNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.significantTimeChangeNotification` + public static var significantTimeChange: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.significantTimeChangeNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.backgroundRefreshStatusDidChangeNotification` + public static var backgroundRefreshStatusDidChange: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.backgroundRefreshStatusDidChangeNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.protectedDataWillBecomeUnavailableNotification` + public static var protectedDataWillBecomeUnavailable: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.protectedDataWillBecomeUnavailableNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.protectedDataDidBecomeAvailableNotification` + public static var protectedDataDidBecomeAvailable: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.protectedDataDidBecomeAvailableNotification).map { _ in } + + return ControlEvent(events: source) + } + + /// Reactive wrapper for `UIApplication.userDidTakeScreenshotNotification` + public static var userDidTakeScreenshot: ControlEvent { + let source = NotificationCenter.default.rx.notification(UIApplication.userDidTakeScreenshotNotification).map { _ in } + + return ControlEvent(events: source) + } +} +#endif diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIBarButtonItem+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIBarButtonItem+Rx.swift similarity index 78% rename from Pods/RxCocoa/RxCocoa/iOS/UIBarButtonItem+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIBarButtonItem+Rx.swift index 8bed531..0bcaa99 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIBarButtonItem+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIBarButtonItem+Rx.swift @@ -11,24 +11,9 @@ import UIKit import RxSwift -fileprivate var rx_tap_key: UInt8 = 0 +private var rx_tap_key: UInt8 = 0 extension Reactive where Base: UIBarButtonItem { - - /// Bindable sink for `enabled` property. - public var isEnabled: Binder { - return Binder(self.base) { element, value in - element.isEnabled = value - } - } - - /// Bindable sink for `title` property. - public var title: Binder { - return Binder(self.base) { element, value in - element.title = value - } - } - /// Reactive wrapper for target action pattern on `self`. public var tap: ControlEvent<()> { let source = lazyInstanceObservable(&rx_tap_key) { () -> Observable<()> in @@ -42,7 +27,7 @@ extension Reactive where Base: UIBarButtonItem { } return target } - .takeUntil(self.deallocated) + .take(until: self.deallocated) .share() } diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIButton+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIButton+Rx.swift similarity index 85% rename from Pods/RxCocoa/RxCocoa/iOS/UIButton+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIButton+Rx.swift index f4977dc..4d0f4c3 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIButton+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIButton+Rx.swift @@ -15,7 +15,7 @@ extension Reactive where Base: UIButton { /// Reactive wrapper for `TouchUpInside` control event. public var tap: ControlEvent { - return controlEvent(.touchUpInside) + controlEvent(.touchUpInside) } } @@ -30,7 +30,7 @@ extension Reactive where Base: UIButton { /// Reactive wrapper for `PrimaryActionTriggered` control event. public var primaryAction: ControlEvent { - return controlEvent(.primaryActionTriggered) + controlEvent(.primaryActionTriggered) } } @@ -43,24 +43,23 @@ import RxSwift import UIKit extension Reactive where Base: UIButton { - /// Reactive wrapper for `setTitle(_:for:)` public func title(for controlState: UIControl.State = []) -> Binder { - return Binder(self.base) { button, title -> Void in + Binder(self.base) { button, title in button.setTitle(title, for: controlState) } } /// Reactive wrapper for `setImage(_:for:)` public func image(for controlState: UIControl.State = []) -> Binder { - return Binder(self.base) { button, image -> Void in + Binder(self.base) { button, image in button.setImage(image, for: controlState) } } /// Reactive wrapper for `setBackgroundImage(_:for:)` public func backgroundImage(for controlState: UIControl.State = []) -> Binder { - return Binder(self.base) { button, image -> Void in + Binder(self.base) { button, image in button.setBackgroundImage(image, for: controlState) } } @@ -69,18 +68,15 @@ extension Reactive where Base: UIButton { #endif #if os(iOS) || os(tvOS) - import RxSwift import UIKit extension Reactive where Base: UIButton { - /// Reactive wrapper for `setAttributedTitle(_:controlState:)` public func attributedTitle(for controlState: UIControl.State = []) -> Binder { return Binder(self.base) { button, attributedTitle -> Void in button.setAttributedTitle(attributedTitle, for: controlState) } } - } #endif diff --git a/Pods/RxCocoa/RxCocoa/iOS/UICollectionView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UICollectionView+Rx.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/UICollectionView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UICollectionView+Rx.swift index 2c8d8ea..7f3de00 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UICollectionView+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UICollectionView+Rx.swift @@ -56,7 +56,7 @@ extension Reactive where Base: UICollectionView { - parameter cellIdentifier: Identifier used to dequeue cells. - parameter source: Observable sequence of items. - parameter configureCell: Transform between sequence elements and view cells. - - parameter cellType: Type of table view cell. + - parameter cellType: Type of collection view cell. - returns: Disposable object that can be used to unbind. Example @@ -166,7 +166,7 @@ extension Reactive where Base: UICollectionView { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var dataSource: DelegateProxy { - return RxCollectionViewDataSourceProxy.proxy(for: base) + RxCollectionViewDataSourceProxy.proxy(for: base) } /// Installs data source as forwarding delegate on `rx.dataSource`. @@ -178,7 +178,7 @@ extension Reactive where Base: UICollectionView { /// - returns: Disposable object that can be used to unbind the data source. public func setDataSource(_ dataSource: UICollectionViewDataSource) -> Disposable { - return RxCollectionViewDataSourceProxy.installForwardDelegate(dataSource, retainDelegate: false, onProxyForObject: self.base) + RxCollectionViewDataSourceProxy.installForwardDelegate(dataSource, retainDelegate: false, onProxyForObject: self.base) } /// Reactive wrapper for `delegate` message `collectionView(_:didSelectItemAtIndexPath:)`. @@ -324,7 +324,7 @@ extension Reactive where Base: UICollectionView { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var prefetchDataSource: DelegateProxy { - return RxCollectionViewDataSourcePrefetchingProxy.proxy(for: base) + RxCollectionViewDataSourcePrefetchingProxy.proxy(for: base) } /** diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIControl+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIControl+Rx.swift similarity index 86% rename from Pods/RxCocoa/RxCocoa/iOS/UIControl+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIControl+Rx.swift index 179978d..6698cf2 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIControl+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIControl+Rx.swift @@ -12,21 +12,6 @@ import RxSwift import UIKit extension Reactive where Base: UIControl { - - /// Bindable sink for `enabled` property. - public var isEnabled: Binder { - return Binder(self.base) { control, value in - control.isEnabled = value - } - } - - /// Bindable sink for `selected` property. - public var isSelected: Binder { - return Binder(self.base) { control, selected in - control.isSelected = selected - } - } - /// Reactive wrapper for target action pattern. /// /// - parameter controlEvents: Filter for observed event types. @@ -45,7 +30,7 @@ extension Reactive where Base: UIControl { return Disposables.create(with: controlTarget.dispose) } - .takeUntil(deallocated) + .take(until: deallocated) return ControlEvent(events: source) } @@ -76,7 +61,7 @@ extension Reactive where Base: UIControl { return Disposables.create(with: controlTarget.dispose) } - .takeUntil(deallocated) + .take(until: deallocated) let bindingObserver = Binder(base, binding: setter) diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift index 233be86..e10c1ec 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift @@ -14,7 +14,7 @@ import UIKit extension Reactive where Base: UIDatePicker { /// Reactive wrapper for `date` property. public var date: ControlProperty { - return value + value } /// Reactive wrapper for `date` property. diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIGestureRecognizer+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIGestureRecognizer+Rx.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/UIGestureRecognizer+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIGestureRecognizer+Rx.swift index 1ad762d..5512900 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIGestureRecognizer+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIGestureRecognizer+Rx.swift @@ -65,7 +65,7 @@ extension Reactive where Base: UIGestureRecognizer { } return observer - }.takeUntil(deallocated) + }.take(until: deallocated) return ControlEvent(events: source) } diff --git a/Pods/RxCocoa/RxCocoa/iOS/UINavigationController+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UINavigationController+Rx.swift similarity index 96% rename from Pods/RxCocoa/RxCocoa/iOS/UINavigationController+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UINavigationController+Rx.swift index 2391351..94796b6 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UINavigationController+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UINavigationController+Rx.swift @@ -18,7 +18,7 @@ extension Reactive where Base: UINavigationController { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var delegate: DelegateProxy { - return RxNavigationControllerDelegateProxy.proxy(for: base) + RxNavigationControllerDelegateProxy.proxy(for: base) } /// Reactive wrapper for delegate method `navigationController(:willShow:animated:)`. diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIPickerView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIPickerView+Rx.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/UIPickerView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIPickerView+Rx.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift similarity index 96% rename from Pods/RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift index 2d5d74c..f90e1c2 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIScrollView+Rx.swift @@ -33,13 +33,6 @@ return ControlProperty(values: proxy.contentOffsetBehaviorSubject, valueSink: bindingObserver) } - /// Bindable sink for `scrollEnabled` property. - public var isScrollEnabled: Binder { - return Binder(self.base) { scrollView, scrollEnabled in - scrollView.isScrollEnabled = scrollEnabled - } - } - /// Reactive wrapper for delegate method `scrollViewDidScroll` public var didScroll: ControlEvent { let source = RxScrollViewDelegateProxy.proxy(for: base).contentOffsetPublishSubject diff --git a/Pods/RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift similarity index 96% rename from Pods/RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift index bddb48c..3892b1c 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UISearchBar+Rx.swift @@ -17,12 +17,12 @@ extension Reactive where Base: UISearchBar { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var delegate: DelegateProxy { - return RxSearchBarDelegateProxy.proxy(for: base) + RxSearchBarDelegateProxy.proxy(for: base) } /// Reactive wrapper for `text` property. public var text: ControlProperty { - return value + value } /// Reactive wrapper for `text` property. @@ -37,11 +37,11 @@ extension Reactive where Base: UISearchBar { .map { _ in searchBar?.text ?? "" } .startWith(text) } - + let bindingObserver = Binder(self.base) { (searchBar, text: String?) in searchBar.text = text } - + return ControlProperty(values: source, valueSink: bindingObserver) } @@ -129,7 +129,7 @@ extension Reactive where Base: UISearchBar { /// - returns: Disposable object that can be used to unbind the delegate. public func setDelegate(_ delegate: UISearchBarDelegate) -> Disposable { - return RxSearchBarDelegateProxy.installForwardDelegate(delegate, retainDelegate: false, onProxyForObject: self.base) + RxSearchBarDelegateProxy.installForwardDelegate(delegate, retainDelegate: false, onProxyForObject: self.base) } } diff --git a/Pods/RxCocoa/RxCocoa/iOS/UISearchController+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UISearchController+Rx.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/UISearchController+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UISearchController+Rx.swift index 350c932..4f524a5 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UISearchController+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UISearchController+Rx.swift @@ -11,7 +11,6 @@ import RxSwift import UIKit - @available(iOS 8.0, *) extension Reactive where Base: UISearchController { /// Reactive wrapper for `delegate`. /// For more information take a look at `DelegateProxyType` protocol documentation. diff --git a/Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift index 31995a6..1a62662 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift @@ -14,7 +14,7 @@ import RxSwift extension Reactive where Base: UISegmentedControl { /// Reactive wrapper for `selectedSegmentIndex` property. public var selectedSegmentIndex: ControlProperty { - return value + value } /// Reactive wrapper for `selectedSegmentIndex` property. diff --git a/Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift similarity index 100% rename from Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift diff --git a/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift similarity index 73% rename from Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift index 1fcb57a..29f6386 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift @@ -23,14 +23,6 @@ extension Reactive where Base: UIStepper { } ) } - - /// Reactive wrapper for `stepValue` property. - public var stepValue: Binder { - return Binder(self.base) { stepper, value in - stepper.stepValue = value - } - } - } #endif diff --git a/Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift similarity index 97% rename from Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift index c96f91a..6e116b3 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift @@ -15,7 +15,7 @@ extension Reactive where Base: UISwitch { /// Reactive wrapper for `isOn` property. public var isOn: ControlProperty { - return value + value } /// Reactive wrapper for `isOn` property. diff --git a/Pods/RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift index 7879684..e989667 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UITabBar+Rx.swift @@ -74,7 +74,7 @@ extension Reactive where Base: UITabBar { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var delegate: DelegateProxy { - return RxTabBarDelegateProxy.proxy(for: base) + RxTabBarDelegateProxy.proxy(for: base) } /// Reactive wrapper for `delegate` message `tabBar(_:didSelect:)`. diff --git a/Pods/RxCocoa/RxCocoa/iOS/UITabBarController+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UITabBarController+Rx.swift similarity index 97% rename from Pods/RxCocoa/RxCocoa/iOS/UITabBarController+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UITabBarController+Rx.swift index 34a3501..4b48e8e 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UITabBarController+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UITabBarController+Rx.swift @@ -62,7 +62,7 @@ extension Reactive where Base: UITabBarController { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var delegate: DelegateProxy { - return RxTabBarControllerDelegateProxy.proxy(for: base) + RxTabBarControllerDelegateProxy.proxy(for: base) } /// Reactive wrapper for `delegate` message `tabBarController:didSelect:`. diff --git a/Pods/RxCocoa/RxCocoa/iOS/UITableView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UITableView+Rx.swift similarity index 93% rename from Pods/RxCocoa/RxCocoa/iOS/UITableView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UITableView+Rx.swift index 7c241e2..b217133 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UITableView+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UITableView+Rx.swift @@ -138,7 +138,7 @@ extension Reactive where Base: UITableView { For more information take a look at `DelegateProxyType` protocol documentation. */ public var dataSource: DelegateProxy { - return RxTableViewDataSourceProxy.proxy(for: base) + RxTableViewDataSourceProxy.proxy(for: base) } /** @@ -152,7 +152,7 @@ extension Reactive where Base: UITableView { */ public func setDataSource(_ dataSource: UITableViewDataSource) -> Disposable { - return RxTableViewDataSourceProxy.installForwardDelegate(dataSource, retainDelegate: false, onProxyForObject: self.base) + RxTableViewDataSourceProxy.installForwardDelegate(dataSource, retainDelegate: false, onProxyForObject: self.base) } // events @@ -180,6 +180,30 @@ extension Reactive where Base: UITableView { return ControlEvent(events: source) } + + /** + Reactive wrapper for `delegate` message `tableView:didHighlightRowAt:`. + */ + public var itemHighlighted: ControlEvent { + let source = self.delegate.methodInvoked(#selector(UITableViewDelegate.tableView(_:didHighlightRowAt:))) + .map { a in + return try castOrThrow(IndexPath.self, a[1]) + } + + return ControlEvent(events: source) + } + + /** + Reactive wrapper for `delegate` message `tableView:didUnhighlightRowAt:`. + */ + public var itemUnhighlighted: ControlEvent { + let source = self.delegate.methodInvoked(#selector(UITableViewDelegate.tableView(_:didUnhighlightRowAt:))) + .map { a in + return try castOrThrow(IndexPath.self, a[1]) + } + + return ControlEvent(events: source) + } /** Reactive wrapper for `delegate` message `tableView:accessoryButtonTappedForRowWithIndexPath:`. @@ -347,7 +371,7 @@ extension Reactive where Base: UITableView { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var prefetchDataSource: DelegateProxy { - return RxTableViewDataSourcePrefetchingProxy.proxy(for: base) + RxTableViewDataSourcePrefetchingProxy.proxy(for: base) } /** diff --git a/Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift similarity index 98% rename from Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift index 4f19c8b..614fecc 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift @@ -14,7 +14,7 @@ import UIKit extension Reactive where Base: UITextField { /// Reactive wrapper for `text` property. public var text: ControlProperty { - return value + value } /// Reactive wrapper for `text` property. @@ -50,7 +50,6 @@ extension Reactive where Base: UITextField { } ) } - } #endif diff --git a/Pods/RxCocoa/RxCocoa/iOS/UITextView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/UITextView+Rx.swift similarity index 97% rename from Pods/RxCocoa/RxCocoa/iOS/UITextView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/iOS/UITextView+Rx.swift index 7e943ca..497ab66 100644 --- a/Pods/RxCocoa/RxCocoa/iOS/UITextView+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/UITextView+Rx.swift @@ -14,7 +14,7 @@ import RxSwift extension Reactive where Base: UITextView { /// Reactive wrapper for `text` property public var text: ControlProperty { - return value + value } /// Reactive wrapper for `text` property. @@ -30,7 +30,7 @@ extension Reactive where Base: UITextView { // This observe on is here because text storage // will emit event while process is not completely done, // so rebinding a value will cause an exception to be thrown. - .observeOn(MainScheduler.asyncInstance) + .observe(on:MainScheduler.asyncInstance) .map { _ in return textView?.textStorage.string } @@ -66,7 +66,7 @@ extension Reactive where Base: UITextView { // This observe on is here because attributedText storage // will emit event while process is not completely done, // so rebinding a value will cause an exception to be thrown. - .observeOn(MainScheduler.asyncInstance) + .observe(on:MainScheduler.asyncInstance) .map { _ in return textView?.attributedText } diff --git a/Example/Pods/RxCocoa/RxCocoa/iOS/WKWebView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/iOS/WKWebView+Rx.swift new file mode 100644 index 0000000..b3b4d84 --- /dev/null +++ b/Example/Pods/RxCocoa/RxCocoa/iOS/WKWebView+Rx.swift @@ -0,0 +1,57 @@ +// +// WKWebView+Rx.swift +// RxCocoa +// +// Created by Giuseppe Lanza on 14/02/2020. +// Copyright © 2020 Krunoslav Zaher. All rights reserved. +// + +#if os(iOS) || os(macOS) + +import RxSwift +import WebKit + +@available(iOS 8.0, OSX 10.10, OSXApplicationExtension 10.10, *) +extension Reactive where Base: WKWebView { + + /// Reactive wrapper for `navigationDelegate`. + /// For more information take a look at `DelegateProxyType` protocol documentation. + public var navigationDelegate: DelegateProxy { + RxWKNavigationDelegateProxy.proxy(for: base) + } + + /// Reactive wrapper for `navigationDelegate` message. + public var didCommit: Observable { + navigationDelegate + .methodInvoked(#selector(WKNavigationDelegate.webView(_:didCommit:))) + .map { a in try castOrThrow(WKNavigation.self, a[1]) } + } + + /// Reactive wrapper for `navigationDelegate` message. + public var didStartLoad: Observable { + navigationDelegate + .methodInvoked(#selector(WKNavigationDelegate.webView(_:didStartProvisionalNavigation:))) + .map { a in try castOrThrow(WKNavigation.self, a[1]) } + } + + /// Reactive wrapper for `navigationDelegate` message. + public var didFinishLoad: Observable { + navigationDelegate + .methodInvoked(#selector(WKNavigationDelegate.webView(_:didFinish:))) + .map { a in try castOrThrow(WKNavigation.self, a[1]) } + } + + /// Reactive wrapper for `navigationDelegate` message. + public var didFailLoad: Observable<(WKNavigation, Error)> { + navigationDelegate + .methodInvoked(#selector(WKNavigationDelegate.webView(_:didFail:withError:))) + .map { a in + ( + try castOrThrow(WKNavigation.self, a[1]), + try castOrThrow(Error.self, a[2]) + ) + } + } +} + +#endif diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift similarity index 95% rename from Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift index 02a88f6..7c22361 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift @@ -15,7 +15,7 @@ extension Reactive where Base: NSButton { /// Reactive wrapper for control event. public var tap: ControlEvent { - return self.controlEvent + self.controlEvent } /// Reactive wrapper for `state` property`. diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift similarity index 90% rename from Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift index b1d1932..534f40c 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/macOS/NSControl+Rx.swift @@ -35,7 +35,7 @@ extension Reactive where Base: NSControl { return observer } - .takeUntil(self.deallocated) + .take(until: self.deallocated) .share() } @@ -69,7 +69,7 @@ extension Reactive where Base: NSControl { return observer } - .takeUntil(self.deallocated) + .take(until: self.deallocated) .share(replay: 1, scope: .whileConnected) } .flatMap { [weak base] _ -> Observable in @@ -81,13 +81,6 @@ extension Reactive where Base: NSControl { return ControlProperty(values: source, valueSink: bindingObserver) } - - /// Bindable sink for `enabled` property. - public var isEnabled: Binder { - return Binder(self.base) { owner, value in - owner.isEnabled = value - } - } } diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift similarity index 92% rename from Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift index 2d56fb8..2e5b19a 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift @@ -16,7 +16,7 @@ extension Reactive where Base: NSSlider { /// Reactive wrapper for `value` property. public var value: ControlProperty { return self.base.rx.controlProperty( - getter: { control in + getter: { control -> Double in return control.doubleValue }, setter: { control, value in diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift similarity index 95% rename from Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift index fa7a117..ce69f9e 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/macOS/NSTextField+Rx.swift @@ -48,7 +48,7 @@ open class RxTextFieldDelegateProxy /// For more information take a look at `DelegateProxyType`. open class func currentDelegate(for object: ParentObject) -> NSTextFieldDelegate? { - return object.delegate + object.delegate } /// For more information take a look at `DelegateProxyType`. @@ -64,7 +64,7 @@ extension Reactive where Base: NSTextField { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var delegate: DelegateProxy { - return RxTextFieldDelegateProxy.proxy(for: self.base) + RxTextFieldDelegateProxy.proxy(for: self.base) } /// Reactive wrapper for `text` property. @@ -73,7 +73,7 @@ extension Reactive where Base: NSTextField { let source = Observable.deferred { [weak textField = self.base] in delegate.textSubject.startWith(textField?.stringValue) - }.takeUntil(self.deallocated) + }.take(until: self.deallocated) let observer = Binder(self.base) { (control, value: String?) in control.stringValue = value ?? "" diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift similarity index 84% rename from Pods/RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift index 85e8f6f..c3134e4 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/macOS/NSTextView+Rx.swift @@ -16,8 +16,17 @@ import RxSwift /// For more information take a look at `DelegateProxyType`. open class RxTextViewDelegateProxy: DelegateProxy, DelegateProxyType, NSTextViewDelegate { + #if compiler(>=5.2) + /// Typed parent object. + /// + /// - note: Since Swift 5.2 and Xcode 11.4, Apple have suddenly + /// disallowed using `weak` for NSTextView. For more details + /// see this GitHub Issue: https://git.io/JvSRn + public private(set) var textView: NSTextView? + #else /// Typed parent object. public weak private(set) var textView: NSTextView? + #endif /// Initializes `RxTextViewDelegateProxy` /// @@ -46,7 +55,7 @@ open class RxTextViewDelegateProxy: DelegateProxy NSTextViewDelegate? { - return object.delegate + object.delegate } /// For more information take a look at `DelegateProxyType`. @@ -62,7 +71,7 @@ extension Reactive where Base: NSTextView { /// /// For more information take a look at `DelegateProxyType` protocol documentation. public var delegate: DelegateProxy { - return RxTextViewDelegateProxy.proxy(for: self.base) + RxTextViewDelegateProxy.proxy(for: self.base) } /// Reactive wrapper for `string` property. @@ -71,7 +80,7 @@ extension Reactive where Base: NSTextView { let source = Observable.deferred { [weak textView = self.base] in delegate.textSubject.startWith(textView?.string ?? "") - }.takeUntil(self.deallocated) + }.take(until: self.deallocated) let observer = Binder(self.base) { control, value in control.string = value diff --git a/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift b/Example/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift similarity index 68% rename from Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift rename to Example/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift index 060829d..f4256d1 100644 --- a/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift +++ b/Example/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift @@ -7,18 +7,10 @@ // #if os(macOS) - import Cocoa import RxSwift extension Reactive where Base: NSView { - /// Bindable sink for `hidden` property. - public var isHidden: Binder { - return Binder(self.base) { view, value in - view.isHidden = value - } - } - /// Bindable sink for `alphaValue` property. public var alpha: Binder { return Binder(self.base) { view, value in @@ -26,5 +18,4 @@ } } } - #endif diff --git a/Pods/RxRelay/LICENSE.md b/Example/Pods/RxRelay/LICENSE.md similarity index 94% rename from Pods/RxRelay/LICENSE.md rename to Example/Pods/RxRelay/LICENSE.md index d6765d9..e32511b 100644 --- a/Pods/RxRelay/LICENSE.md +++ b/Example/Pods/RxRelay/LICENSE.md @@ -1,9 +1,9 @@ **The MIT License** -**Copyright © 2015 Krunoslav Zaher** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** **All rights reserved.** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pods/RxRelay/README.md b/Example/Pods/RxRelay/README.md similarity index 59% rename from Pods/RxRelay/README.md rename to Example/Pods/RxRelay/README.md index 82f754b..2b64b2a 100644 --- a/Pods/RxRelay/README.md +++ b/Example/Pods/RxRelay/README.md @@ -1,19 +1,27 @@ -Miss Electric Eel 2016 RxSwift: ReactiveX for Swift -====================================== +

+RxSwift Logo +
+Build Status +Supported Platforms: iOS, macOS, tvOS, watchOS & Linux +
+ + + +

-[![Travis CI](https://travis-ci.org/ReactiveX/RxSwift.svg?branch=master)](https://travis-ci.org/ReactiveX/RxSwift) ![platforms](https://img.shields.io/badge/platforms-iOS%20%7C%20macOS%20%7C%20tvOS%20%7C%20watchOS%20%7C%20Linux-333333.svg) [![pod](https://img.shields.io/cocoapods/v/RxSwift.svg)](https://cocoapods.org/pods/RxSwift) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Swift Package Manager compatible](https://img.shields.io/badge/Swift%20Package%20Manager-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager) +Rx is a [generic abstraction of computation](https://youtu.be/looJcaeboBY) expressed through `Observable` interface, which lets you broadcast and subscribe to values and other events from an `Observable` stream. -Rx is a [generic abstraction of computation](https://youtu.be/looJcaeboBY) expressed through `Observable` interface. +RxSwift is the Swift-specific implementation of the [Reactive Extensions](http://reactivex.io) standard. -This is a Swift version of [Rx](https://github.com/Reactive-Extensions/Rx.NET). +

RxSwift Observable Example of a price constantly changing and updating the app's UI

-It tries to port as many concepts from the original version as possible, but some concepts were adapted for more pleasant and performant integration with iOS/macOS environment. +While this version aims to stay true to the original spirit and naming conventions of Rx, this projects also aims to provide a true Swift-first API for Rx APIs. Cross platform documentation can be found on [ReactiveX.io](http://reactivex.io/). -Like the original Rx, its intention is to enable easy composition of asynchronous operations and event/data streams. +Like other Rx implementation, RxSwift's intention is to enable easy composition of asynchronous operations and streams of data in the form of `Observable` objects and a suite of methods to transform and compose these pieces of asynchronous work. -KVO observing, async operations and streams are all unified under [abstraction of sequence](Documentation/GettingStarted.md#observables-aka-sequences). This is the reason why Rx is so simple, elegant and powerful. +KVO observation, async operations, UI Events and other streams of data are all unified under [abstraction of sequence](Documentation/GettingStarted.md#observables-aka-sequences). This is the reason why Rx is so simple, elegant and powerful. ## I came here because I want to ... @@ -46,11 +54,13 @@ KVO observing, async operations and streams are all unified under [abstraction o ###### ... compare -* [with other libraries](Documentation/ComparisonWithOtherLibraries.md). +* [with Combine and ReactiveSwift](Documentation/ComparisonWithOtherLibraries.md). ###### ... understand the structure -RxSwift comprises five separate components depending on eachother in the following way: +RxSwift is as compositional as the asynchronous work it drives. The core unit is RxSwift itself, while other dependencies can be added for UI Work, testing, and more. + +It comprises five separate components depending on each other in the following way: ```none ┌──────────────┐ ┌──────────────┐ @@ -67,20 +77,10 @@ RxSwift comprises five separate components depending on eachother in the followi ``` * **RxSwift**: The core of RxSwift, providing the Rx standard as (mostly) defined by [ReactiveX](https://reactivex.io). It has no other dependencies. -* **RxCocoa**: Provides Cocoa-specific capabilities for general iOS/macOS/watchOS & tvOS app development, such as Binders, Traits, and much more. It depends on both `RxSwift` and `RxRelay`. -* **RxRelay**: Provides `PublishRelay` and `BehaviorRelay`, two [simple wrappers around Subjects](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Subjects.md#relays). It depends on `RxSwift`. +* **RxCocoa**: Provides Cocoa-specific capabilities for general iOS/macOS/watchOS & tvOS app development, such as Shared Sequences, Traits, and much more. It depends on both `RxSwift` and `RxRelay`. +* **RxRelay**: Provides `PublishRelay`, `BehaviorRelay` and `ReplayRelay`, three [simple wrappers around Subjects](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Subjects.md#relays). It depends on `RxSwift`. * **RxTest** and **RxBlocking**: Provides testing capabilities for Rx-based systems. It depends on `RxSwift`. -###### ... find compatible - -* libraries from [RxSwiftCommunity](https://github.com/RxSwiftCommunity). -* [Pods using RxSwift](https://cocoapods.org/?q=uses%3Arxswift). - -###### ... see the broader vision - -* Does this exist for Android? [RxJava](https://github.com/ReactiveX/RxJava) -* Where is all of this going, what is the future, what about reactive architectures, how do you design entire apps this way? [Cycle.js](https://github.com/cyclejs/cycle-core) - this is javascript, but [RxJS](https://github.com/Reactive-Extensions/RxJS) is javascript version of Rx. - ## Usage
... then bind the results to your tableview
@@ -102,9 +102,9 @@ let searchResults = searchBar.rx.text.orEmpty return .just([]) } return searchGitHub(query) - .catchErrorJustReturn([]) + .catchAndReturn([]) } - .observeOn(MainScheduler.instance) + .observe(on: MainScheduler.instance) @@ -124,16 +124,16 @@ searchResults ## Requirements -* Xcode 10.2 -* Swift 5.0 +* Xcode 12.x +* Swift 5.x -For Xcode 10.1 and below, [use RxSwift 4.5](https://github.com/ReactiveX/RxSwift/releases/tag/4.5.0). +For Xcode 11 and below, [use RxSwift 5.x](https://github.com/ReactiveX/RxSwift/releases/tag/5.1.1). ## Installation -Rx doesn't contain any external dependencies. +RxSwift doesn't contain any external dependencies. -These are currently the supported options: +These are currently the supported installation options: ### Manual @@ -146,14 +146,14 @@ Open Rx.xcworkspace, choose `RxExample` and hit run. This method will build ever use_frameworks! target 'YOUR_TARGET_NAME' do - pod 'RxSwift', '~> 5' - pod 'RxCocoa', '~> 5' + pod 'RxSwift', '6.0.0' + pod 'RxCocoa', '6.0.0' end # RxTest and RxBlocking make the most sense in the context of unit/integration tests target 'YOUR_TESTING_TARGET' do - pod 'RxBlocking', '~> 5' - pod 'RxTest', '~> 5' + pod 'RxBlocking', '6.0.0' + pod 'RxTest', '6.0.0' end ``` @@ -163,14 +163,19 @@ Replace `YOUR_TARGET_NAME` and then, in the `Podfile` directory, type: $ pod install ``` -### [Carthage](https://github.com/Carthage/Carthage) +### XCFrameworks + +Each release starting with RxSwift 6 includes `*.xcframework` framework binaries. +Simply drag the needed framework binaries to your **Frameworks, Libraries, and Embedded Content** section under your target's **General** tab. -Officially supported: Carthage 0.33 and up. +XCFrameworks instructions + +### [Carthage](https://github.com/Carthage/Carthage) Add this to `Cartfile` ``` -github "ReactiveX/RxSwift" ~> 5.0 +github "ReactiveX/RxSwift" "6.0.0" ``` ```bash @@ -186,11 +191,13 @@ If you wish to build RxSwift as a Static Library using Carthage you may use the ```bash carthage update RxSwift --platform iOS --no-build sed -i -e 's/MACH_O_TYPE = mh_dylib/MACH_O_TYPE = staticlib/g' Carthage/Checkouts/RxSwift/Rx.xcodeproj/project.pbxproj -carthage build RxAlamofire --platform iOS +carthage build RxSwift --platform iOS ``` ### [Swift Package Manager](https://github.com/apple/swift-package-manager) +> **Note**: There is a critical cross-dependency bug affecting many projects including RxSwift in Swift Package Manager. We've [filed a bug (SR-12303)](https://bugs.swift.org/browse/SR-12303) in early 2020 but have no answer yet. Your mileage may vary. A partial workaround can be found [here](https://github.com/ReactiveX/RxSwift/issues/2127#issuecomment-717830502). + Create a `Package.swift` file. ```swift @@ -201,7 +208,7 @@ import PackageDescription let package = Package( name: "RxTestProject", dependencies: [ - .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "5.0.0") + .package(url: "https://github.com/ReactiveX/RxSwift.git", .exact("6.0.0")) ], targets: [ .target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"]) @@ -228,17 +235,17 @@ $ git submodule add git@github.com:ReactiveX/RxSwift.git ``` * Drag `Rx.xcodeproj` into Project Navigator -* Go to `Project > Targets > Build Phases > Link Binary With Libraries`, click `+` and select `RxSwift-[Platform]` and `RxCocoa-[Platform]` targets +* Go to `Project > Targets > Build Phases > Link Binary With Libraries`, click `+` and select `RxSwift`, `RxCocoa` and `RxRelay` targets ## References * [http://reactivex.io/](http://reactivex.io/) * [Reactive Extensions GitHub (GitHub)](https://github.com/Reactive-Extensions) * [RxSwift RayWenderlich.com Book](https://store.raywenderlich.com/products/rxswift-reactive-programming-with-swift) +* [RxSwift: Debunking the myth of hard (YouTube)](https://www.youtube.com/watch?v=GdvLP0ZAhhc) * [Boxue.io RxSwift Online Course](https://boxueio.com/series/rxswift-101) (Chinese 🇨🇳) -* [Erik Meijer (Wikipedia)](http://en.wikipedia.org/wiki/Erik_Meijer_%28computer_scientist%29) * [Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) (video)](https://youtu.be/looJcaeboBY) -* [Reactive Programming Overview (Jafar Husain from Netflix)](https://www.youtube.com/watch?v=dwP1TNXE6fc) +* [Reactive Programming Overview (Jafar Husain from Netflix)](https://youtu.be/-8Y1-lE6NSA) * [Subject/Observer is Dual to Iterator (paper)](http://csl.stanford.edu/~christos/pldi2010.fit/meijer.duality.pdf) * [Rx standard sequence operators visualized (visualization tool)](http://rxmarbles.com/) -* [Haskell](https://www.haskell.org/) \ No newline at end of file +* [Haskell](https://www.haskell.org/) diff --git a/Pods/RxRelay/RxRelay/BehaviorRelay.swift b/Example/Pods/RxRelay/RxRelay/BehaviorRelay.swift similarity index 78% rename from Pods/RxRelay/RxRelay/BehaviorRelay.swift rename to Example/Pods/RxRelay/RxRelay/BehaviorRelay.swift index 10dfdc0..e02fc8f 100644 --- a/Pods/RxRelay/RxRelay/BehaviorRelay.swift +++ b/Example/Pods/RxRelay/RxRelay/BehaviorRelay.swift @@ -12,31 +12,31 @@ import RxSwift /// /// Unlike `BehaviorSubject` it can't terminate with error or completed. public final class BehaviorRelay: ObservableType { - private let _subject: BehaviorSubject + private let subject: BehaviorSubject /// Accepts `event` and emits it to subscribers public func accept(_ event: Element) { - self._subject.onNext(event) + self.subject.onNext(event) } /// Current value of behavior subject public var value: Element { // this try! is ok because subject can't error out or be disposed - return try! self._subject.value() + return try! self.subject.value() } /// Initializes behavior relay with initial value. public init(value: Element) { - self._subject = BehaviorSubject(value: value) + self.subject = BehaviorSubject(value: value) } /// Subscribes observer public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - return self._subject.subscribe(observer) + self.subject.subscribe(observer) } /// - returns: Canonical interface for push style sequence public func asObservable() -> Observable { - return self._subject.asObservable() + self.subject.asObservable() } } diff --git a/Pods/RxRelay/RxRelay/Observable+Bind.swift b/Example/Pods/RxRelay/RxRelay/Observable+Bind.swift similarity index 64% rename from Pods/RxRelay/RxRelay/Observable+Bind.swift rename to Example/Pods/RxRelay/RxRelay/Observable+Bind.swift index d759862..7a2efc7 100644 --- a/Pods/RxRelay/RxRelay/Observable+Bind.swift +++ b/Example/Pods/RxRelay/RxRelay/Observable+Bind.swift @@ -17,7 +17,7 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ public func bind(to relays: PublishRelay...) -> Disposable { - return bind(to: relays) + bind(to: relays) } /** @@ -30,7 +30,7 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ public func bind(to relays: PublishRelay...) -> Disposable { - return self.map { $0 as Element? }.bind(to: relays) + self.map { $0 as Element? }.bind(to: relays) } /** @@ -41,7 +41,7 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ private func bind(to relays: [PublishRelay]) -> Disposable { - return subscribe { e in + subscribe { e in switch e { case let .next(element): relays.forEach { @@ -63,7 +63,7 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ public func bind(to relays: BehaviorRelay...) -> Disposable { - return self.bind(to: relays) + self.bind(to: relays) } /** @@ -76,7 +76,7 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ public func bind(to relays: BehaviorRelay...) -> Disposable { - return self.map { $0 as Element? }.bind(to: relays) + self.map { $0 as Element? }.bind(to: relays) } /** @@ -87,7 +87,53 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ private func bind(to relays: [BehaviorRelay]) -> Disposable { - return subscribe { e in + subscribe { e in + switch e { + case let .next(element): + relays.forEach { + $0.accept(element) + } + case let .error(error): + rxFatalErrorInDebug("Binding error to behavior relay: \(error)") + case .completed: + break + } + } + } + + /** + Creates new subscription and sends elements to replay relay(s). + In case error occurs in debug mode, `fatalError` will be raised. + In case error occurs in release mode, `error` will be logged. + - parameter to: Target replay relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer. + */ + public func bind(to relays: ReplayRelay...) -> Disposable { + self.bind(to: relays) + } + + /** + Creates new subscription and sends elements to replay relay(s). + + In case error occurs in debug mode, `fatalError` will be raised. + In case error occurs in release mode, `error` will be logged. + + - parameter to: Target replay relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer. + */ + public func bind(to relays: ReplayRelay...) -> Disposable { + self.map { $0 as Element? }.bind(to: relays) + } + + /** + Creates new subscription and sends elements to replay relay(s). + In case error occurs in debug mode, `fatalError` will be raised. + In case error occurs in release mode, `error` will be logged. + - parameter to: Target replay relay for sequence elements. + - returns: Disposable object that can be used to unsubscribe the observer. + */ + private func bind(to relays: [ReplayRelay]) -> Disposable { + subscribe { e in switch e { case let .next(element): relays.forEach { diff --git a/Pods/RxRelay/RxRelay/PublishRelay.swift b/Example/Pods/RxRelay/RxRelay/PublishRelay.swift similarity index 78% rename from Pods/RxRelay/RxRelay/PublishRelay.swift rename to Example/Pods/RxRelay/RxRelay/PublishRelay.swift index 9cacd89..a9c8ac4 100644 --- a/Pods/RxRelay/RxRelay/PublishRelay.swift +++ b/Example/Pods/RxRelay/RxRelay/PublishRelay.swift @@ -12,25 +12,25 @@ import RxSwift /// /// Unlike `PublishSubject` it can't terminate with error or completed. public final class PublishRelay: ObservableType { - private let _subject: PublishSubject + private let subject: PublishSubject // Accepts `event` and emits it to subscribers public func accept(_ event: Element) { - self._subject.onNext(event) + self.subject.onNext(event) } /// Initializes with internal empty subject. public init() { - self._subject = PublishSubject() + self.subject = PublishSubject() } /// Subscribes observer public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - return self._subject.subscribe(observer) + self.subject.subscribe(observer) } /// - returns: Canonical interface for push style sequence public func asObservable() -> Observable { - return self._subject.asObservable() + self.subject.asObservable() } } diff --git a/Example/Pods/RxRelay/RxRelay/ReplayRelay.swift b/Example/Pods/RxRelay/RxRelay/ReplayRelay.swift new file mode 100644 index 0000000..3cc87cd --- /dev/null +++ b/Example/Pods/RxRelay/RxRelay/ReplayRelay.swift @@ -0,0 +1,50 @@ +// +// ReplayRelay.swift +// RxRelay +// +// Created by Zsolt Kovacs on 12/22/19. +// Copyright © 2019 Krunoslav Zaher. All rights reserved. +// + +import RxSwift + +/// ReplayRelay is a wrapper for `ReplaySubject`. +/// +/// Unlike `ReplaySubject` it can't terminate with an error or complete. +public final class ReplayRelay: ObservableType { + private let subject: ReplaySubject + + // Accepts `event` and emits it to subscribers + public func accept(_ event: Element) { + self.subject.onNext(event) + } + + private init(subject: ReplaySubject) { + self.subject = subject + } + + /// Creates new instance of `ReplayRelay` that replays at most `bufferSize` last elements sent to it. + /// + /// - parameter bufferSize: Maximal number of elements to replay to observers after subscription. + /// - returns: New instance of replay relay. + public static func create(bufferSize: Int) -> ReplayRelay { + ReplayRelay(subject: ReplaySubject.create(bufferSize: bufferSize)) + } + + /// Creates a new instance of `ReplayRelay` that buffers all the sent to it. + /// To avoid filling up memory, developer needs to make sure that the use case will only ever store a 'reasonable' + /// number of elements. + public static func createUnbound() -> ReplayRelay { + ReplayRelay(subject: ReplaySubject.createUnbounded()) + } + + /// Subscribes observer + public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { + self.subject.subscribe(observer) + } + + /// - returns: Canonical interface for push style sequence + public func asObservable() -> Observable { + self.subject.asObserver() + } +} diff --git a/Pods/RxRelay/RxRelay/Utils.swift b/Example/Pods/RxRelay/RxRelay/Utils.swift similarity index 100% rename from Pods/RxRelay/RxRelay/Utils.swift rename to Example/Pods/RxRelay/RxRelay/Utils.swift diff --git a/Pods/RxSwift/LICENSE.md b/Example/Pods/RxSwift/LICENSE.md similarity index 94% rename from Pods/RxSwift/LICENSE.md rename to Example/Pods/RxSwift/LICENSE.md index d6765d9..e32511b 100644 --- a/Pods/RxSwift/LICENSE.md +++ b/Example/Pods/RxSwift/LICENSE.md @@ -1,9 +1,9 @@ **The MIT License** -**Copyright © 2015 Krunoslav Zaher** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** **All rights reserved.** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pods/RxSwift/Platform/AtomicInt.swift b/Example/Pods/RxSwift/Platform/AtomicInt.swift similarity index 91% rename from Pods/RxSwift/Platform/AtomicInt.swift rename to Example/Pods/RxSwift/Platform/AtomicInt.swift index d8d9580..98479fd 100644 --- a/Pods/RxSwift/Platform/AtomicInt.swift +++ b/Example/Pods/RxSwift/Platform/AtomicInt.swift @@ -6,7 +6,7 @@ // Copyright © 2018 Krunoslav Zaher. All rights reserved. // -import class Foundation.NSLock +import Foundation final class AtomicInt: NSLock { fileprivate var value: Int32 @@ -56,16 +56,16 @@ func load(_ this: AtomicInt) -> Int32 { @discardableResult @inline(__always) func increment(_ this: AtomicInt) -> Int32 { - return add(this, 1) + add(this, 1) } @discardableResult @inline(__always) func decrement(_ this: AtomicInt) -> Int32 { - return sub(this, 1) + sub(this, 1) } @inline(__always) func isFlagSet(_ this: AtomicInt, _ mask: Int32) -> Bool { - return (load(this) & mask) != 0 + (load(this) & mask) != 0 } diff --git a/Pods/RxSwift/Platform/DataStructures/Bag.swift b/Example/Pods/RxSwift/Platform/DataStructures/Bag.swift similarity index 96% rename from Pods/RxSwift/Platform/DataStructures/Bag.swift rename to Example/Pods/RxSwift/Platform/DataStructures/Bag.swift index ec05a41..5720a3b 100644 --- a/Pods/RxSwift/Platform/DataStructures/Bag.swift +++ b/Example/Pods/RxSwift/Platform/DataStructures/Bag.swift @@ -35,7 +35,7 @@ struct Bag : CustomDebugStringConvertible { typealias Entry = (key: BagKey, value: T) - fileprivate var _nextKey: BagKey = BagKey(rawValue: 0) + private var _nextKey: BagKey = BagKey(rawValue: 0) // data @@ -135,7 +135,7 @@ struct Bag : CustomDebugStringConvertible { extension Bag { /// A textual representation of `self`, suitable for debugging. var debugDescription : String { - return "\(self.count) elements in Bag" + "\(self.count) elements in Bag" } } @@ -177,5 +177,5 @@ extension BagKey: Hashable { } func ==(lhs: BagKey, rhs: BagKey) -> Bool { - return lhs.rawValue == rhs.rawValue + lhs.rawValue == rhs.rawValue } diff --git a/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift b/Example/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift similarity index 68% rename from Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift rename to Example/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift index b6404a7..75d7bea 100644 --- a/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift +++ b/Example/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift @@ -10,16 +10,14 @@ struct InfiniteSequence : Sequence { typealias Iterator = AnyIterator - private let _repeatedValue: Element + private let repeatedValue: Element init(repeatedValue: Element) { - _repeatedValue = repeatedValue + self.repeatedValue = repeatedValue } func makeIterator() -> Iterator { - let repeatedValue = _repeatedValue - return AnyIterator { - return repeatedValue - } + let repeatedValue = self.repeatedValue + return AnyIterator { repeatedValue } } } diff --git a/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift b/Example/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift similarity index 61% rename from Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift rename to Example/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift index f7cb99c..9ed856b 100644 --- a/Pods/RxCocoa/Platform/DataStructures/PriorityQueue.swift +++ b/Example/Pods/RxSwift/Platform/DataStructures/PriorityQueue.swift @@ -7,27 +7,27 @@ // struct PriorityQueue { - private let _hasHigherPriority: (Element, Element) -> Bool - private let _isEqual: (Element, Element) -> Bool + private let hasHigherPriority: (Element, Element) -> Bool + private let isEqual: (Element, Element) -> Bool - fileprivate var _elements = [Element]() + private var elements = [Element]() init(hasHigherPriority: @escaping (Element, Element) -> Bool, isEqual: @escaping (Element, Element) -> Bool) { - _hasHigherPriority = hasHigherPriority - _isEqual = isEqual + self.hasHigherPriority = hasHigherPriority + self.isEqual = isEqual } mutating func enqueue(_ element: Element) { - _elements.append(element) - bubbleToHigherPriority(_elements.count - 1) + elements.append(element) + bubbleToHigherPriority(elements.count - 1) } func peek() -> Element? { - return _elements.first + elements.first } var isEmpty: Bool { - return _elements.count == 0 + elements.count == 0 } mutating func dequeue() -> Element? { @@ -41,8 +41,8 @@ struct PriorityQueue { } mutating func remove(_ element: Element) { - for i in 0 ..< _elements.count { - if _isEqual(_elements[i], element) { + for i in 0 ..< elements.count { + if self.isEqual(elements[i], element) { removeAt(i) return } @@ -50,12 +50,12 @@ struct PriorityQueue { } private mutating func removeAt(_ index: Int) { - let removingLast = index == _elements.count - 1 + let removingLast = index == elements.count - 1 if !removingLast { - _elements.swapAt(index, _elements.count - 1) + elements.swapAt(index, elements.count - 1) } - _ = _elements.popLast() + _ = elements.popLast() if !removingLast { bubbleToHigherPriority(index) @@ -65,21 +65,21 @@ struct PriorityQueue { private mutating func bubbleToHigherPriority(_ initialUnbalancedIndex: Int) { precondition(initialUnbalancedIndex >= 0) - precondition(initialUnbalancedIndex < _elements.count) + precondition(initialUnbalancedIndex < elements.count) var unbalancedIndex = initialUnbalancedIndex while unbalancedIndex > 0 { let parentIndex = (unbalancedIndex - 1) / 2 - guard _hasHigherPriority(_elements[unbalancedIndex], _elements[parentIndex]) else { break } - _elements.swapAt(unbalancedIndex, parentIndex) + guard self.hasHigherPriority(elements[unbalancedIndex], elements[parentIndex]) else { break } + elements.swapAt(unbalancedIndex, parentIndex) unbalancedIndex = parentIndex } } private mutating func bubbleToLowerPriority(_ initialUnbalancedIndex: Int) { precondition(initialUnbalancedIndex >= 0) - precondition(initialUnbalancedIndex < _elements.count) + precondition(initialUnbalancedIndex < elements.count) var unbalancedIndex = initialUnbalancedIndex while true { @@ -88,16 +88,16 @@ struct PriorityQueue { var highestPriorityIndex = unbalancedIndex - if leftChildIndex < _elements.count && _hasHigherPriority(_elements[leftChildIndex], _elements[highestPriorityIndex]) { + if leftChildIndex < elements.count && self.hasHigherPriority(elements[leftChildIndex], elements[highestPriorityIndex]) { highestPriorityIndex = leftChildIndex } - if rightChildIndex < _elements.count && _hasHigherPriority(_elements[rightChildIndex], _elements[highestPriorityIndex]) { + if rightChildIndex < elements.count && self.hasHigherPriority(elements[rightChildIndex], elements[highestPriorityIndex]) { highestPriorityIndex = rightChildIndex } guard highestPriorityIndex != unbalancedIndex else { break } - _elements.swapAt(highestPriorityIndex, unbalancedIndex) + elements.swapAt(highestPriorityIndex, unbalancedIndex) unbalancedIndex = highestPriorityIndex } @@ -106,6 +106,6 @@ struct PriorityQueue { extension PriorityQueue : CustomDebugStringConvertible { var debugDescription: String { - return _elements.debugDescription + elements.debugDescription } } diff --git a/Pods/RxCocoa/Platform/DataStructures/Queue.swift b/Example/Pods/RxSwift/Platform/DataStructures/Queue.swift similarity index 57% rename from Pods/RxCocoa/Platform/DataStructures/Queue.swift rename to Example/Pods/RxSwift/Platform/DataStructures/Queue.swift index d05726c..625d473 100644 --- a/Pods/RxCocoa/Platform/DataStructures/Queue.swift +++ b/Example/Pods/RxSwift/Platform/DataStructures/Queue.swift @@ -18,12 +18,12 @@ struct Queue: Sequence { /// Type of generator. typealias Generator = AnyIterator - private let _resizeFactor = 2 + private let resizeFactor = 2 - private var _storage: ContiguousArray - private var _count = 0 - private var _pushNextIndex = 0 - private let _initialCapacity: Int + private var storage: ContiguousArray + private var innerCount = 0 + private var pushNextIndex = 0 + private let initialCapacity: Int /** Creates new queue. @@ -31,68 +31,64 @@ struct Queue: Sequence { - parameter capacity: Capacity of newly created queue. */ init(capacity: Int) { - _initialCapacity = capacity + initialCapacity = capacity - _storage = ContiguousArray(repeating: nil, count: capacity) + storage = ContiguousArray(repeating: nil, count: capacity) } private var dequeueIndex: Int { - let index = _pushNextIndex - count - return index < 0 ? index + _storage.count : index + let index = pushNextIndex - count + return index < 0 ? index + storage.count : index } /// - returns: Is queue empty. - var isEmpty: Bool { - return count == 0 - } + var isEmpty: Bool { count == 0 } /// - returns: Number of elements inside queue. - var count: Int { - return _count - } + var count: Int { innerCount } /// - returns: Element in front of a list of elements to `dequeue`. func peek() -> T { precondition(count > 0) - return _storage[dequeueIndex]! + return storage[dequeueIndex]! } mutating private func resizeTo(_ size: Int) { var newStorage = ContiguousArray(repeating: nil, count: size) - let count = _count + let count = self.count let dequeueIndex = self.dequeueIndex - let spaceToEndOfQueue = _storage.count - dequeueIndex + let spaceToEndOfQueue = storage.count - dequeueIndex // first batch is from dequeue index to end of array let countElementsInFirstBatch = Swift.min(count, spaceToEndOfQueue) // second batch is wrapped from start of array to end of queue let numberOfElementsInSecondBatch = count - countElementsInFirstBatch - newStorage[0 ..< countElementsInFirstBatch] = _storage[dequeueIndex ..< (dequeueIndex + countElementsInFirstBatch)] - newStorage[countElementsInFirstBatch ..< (countElementsInFirstBatch + numberOfElementsInSecondBatch)] = _storage[0 ..< numberOfElementsInSecondBatch] + newStorage[0 ..< countElementsInFirstBatch] = storage[dequeueIndex ..< (dequeueIndex + countElementsInFirstBatch)] + newStorage[countElementsInFirstBatch ..< (countElementsInFirstBatch + numberOfElementsInSecondBatch)] = storage[0 ..< numberOfElementsInSecondBatch] - _count = count - _pushNextIndex = count - _storage = newStorage + self.innerCount = count + pushNextIndex = count + storage = newStorage } /// Enqueues `element`. /// /// - parameter element: Element to enqueue. mutating func enqueue(_ element: T) { - if count == _storage.count { - resizeTo(Swift.max(_storage.count, 1) * _resizeFactor) + if count == storage.count { + resizeTo(Swift.max(storage.count, 1) * resizeFactor) } - _storage[_pushNextIndex] = element - _pushNextIndex += 1 - _count += 1 + storage[pushNextIndex] = element + pushNextIndex += 1 + innerCount += 1 - if _pushNextIndex >= _storage.count { - _pushNextIndex -= _storage.count + if pushNextIndex >= storage.count { + pushNextIndex -= storage.count } } @@ -102,11 +98,11 @@ struct Queue: Sequence { let index = dequeueIndex defer { - _storage[index] = nil - _count -= 1 + storage[index] = nil + innerCount -= 1 } - return _storage[index]! + return storage[index]! } /// Dequeues element or throws an exception in case queue is empty. @@ -118,9 +114,9 @@ struct Queue: Sequence { } defer { - let downsizeLimit = _storage.count / (_resizeFactor * _resizeFactor) - if _count < downsizeLimit && downsizeLimit >= _initialCapacity { - resizeTo(_storage.count / _resizeFactor) + let downsizeLimit = storage.count / (resizeFactor * resizeFactor) + if count < downsizeLimit && downsizeLimit >= initialCapacity { + resizeTo(storage.count / resizeFactor) } } @@ -130,23 +126,23 @@ struct Queue: Sequence { /// - returns: Generator of contained elements. func makeIterator() -> AnyIterator { var i = dequeueIndex - var count = _count + var innerCount = count return AnyIterator { - if count == 0 { + if innerCount == 0 { return nil } defer { - count -= 1 + innerCount -= 1 i += 1 } - if i >= self._storage.count { - i -= self._storage.count + if i >= self.storage.count { + i -= self.storage.count } - return self._storage[i] + return self.storage[i] } } } diff --git a/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift b/Example/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift similarity index 87% rename from Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift rename to Example/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift index 552314a..aaf24ca 100644 --- a/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift +++ b/Example/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift @@ -16,6 +16,6 @@ extension DispatchQueue { }() static var isMain: Bool { - return DispatchQueue.getSpecific(key: token) != nil + DispatchQueue.getSpecific(key: token) != nil } } diff --git a/Pods/RxSwift/Platform/Platform.Darwin.swift b/Example/Pods/RxSwift/Platform/Platform.Darwin.swift similarity index 92% rename from Pods/RxSwift/Platform/Platform.Darwin.swift rename to Example/Pods/RxSwift/Platform/Platform.Darwin.swift index 6dc36ad..eacc194 100644 --- a/Pods/RxSwift/Platform/Platform.Darwin.swift +++ b/Example/Pods/RxSwift/Platform/Platform.Darwin.swift @@ -9,8 +9,7 @@ #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) import Darwin - import class Foundation.Thread - import protocol Foundation.NSCopying + import Foundation extension Thread { static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { diff --git a/Pods/RxCocoa/Platform/Platform.Linux.swift b/Example/Pods/RxSwift/Platform/Platform.Linux.swift similarity index 95% rename from Pods/RxCocoa/Platform/Platform.Linux.swift rename to Example/Pods/RxSwift/Platform/Platform.Linux.swift index a950e1c..52a3e3a 100644 --- a/Pods/RxCocoa/Platform/Platform.Linux.swift +++ b/Example/Pods/RxSwift/Platform/Platform.Linux.swift @@ -8,7 +8,7 @@ #if os(Linux) - import class Foundation.Thread + import Foundation extension Thread { diff --git a/Pods/RxCocoa/Platform/RecursiveLock.swift b/Example/Pods/RxSwift/Platform/RecursiveLock.swift similarity index 94% rename from Pods/RxCocoa/Platform/RecursiveLock.swift rename to Example/Pods/RxSwift/Platform/RecursiveLock.swift index c03471d..10b9bbb 100644 --- a/Pods/RxCocoa/Platform/RecursiveLock.swift +++ b/Example/Pods/RxSwift/Platform/RecursiveLock.swift @@ -6,7 +6,7 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import class Foundation.NSRecursiveLock +import Foundation #if TRACE_RESOURCES class RecursiveLock: NSRecursiveLock { diff --git a/Pods/RxSwift/README.md b/Example/Pods/RxSwift/README.md similarity index 59% rename from Pods/RxSwift/README.md rename to Example/Pods/RxSwift/README.md index 82f754b..2b64b2a 100644 --- a/Pods/RxSwift/README.md +++ b/Example/Pods/RxSwift/README.md @@ -1,19 +1,27 @@ -Miss Electric Eel 2016 RxSwift: ReactiveX for Swift -====================================== +

+RxSwift Logo +
+Build Status +Supported Platforms: iOS, macOS, tvOS, watchOS & Linux +
+ + + +

-[![Travis CI](https://travis-ci.org/ReactiveX/RxSwift.svg?branch=master)](https://travis-ci.org/ReactiveX/RxSwift) ![platforms](https://img.shields.io/badge/platforms-iOS%20%7C%20macOS%20%7C%20tvOS%20%7C%20watchOS%20%7C%20Linux-333333.svg) [![pod](https://img.shields.io/cocoapods/v/RxSwift.svg)](https://cocoapods.org/pods/RxSwift) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Swift Package Manager compatible](https://img.shields.io/badge/Swift%20Package%20Manager-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager) +Rx is a [generic abstraction of computation](https://youtu.be/looJcaeboBY) expressed through `Observable` interface, which lets you broadcast and subscribe to values and other events from an `Observable` stream. -Rx is a [generic abstraction of computation](https://youtu.be/looJcaeboBY) expressed through `Observable` interface. +RxSwift is the Swift-specific implementation of the [Reactive Extensions](http://reactivex.io) standard. -This is a Swift version of [Rx](https://github.com/Reactive-Extensions/Rx.NET). +

RxSwift Observable Example of a price constantly changing and updating the app's UI

-It tries to port as many concepts from the original version as possible, but some concepts were adapted for more pleasant and performant integration with iOS/macOS environment. +While this version aims to stay true to the original spirit and naming conventions of Rx, this projects also aims to provide a true Swift-first API for Rx APIs. Cross platform documentation can be found on [ReactiveX.io](http://reactivex.io/). -Like the original Rx, its intention is to enable easy composition of asynchronous operations and event/data streams. +Like other Rx implementation, RxSwift's intention is to enable easy composition of asynchronous operations and streams of data in the form of `Observable` objects and a suite of methods to transform and compose these pieces of asynchronous work. -KVO observing, async operations and streams are all unified under [abstraction of sequence](Documentation/GettingStarted.md#observables-aka-sequences). This is the reason why Rx is so simple, elegant and powerful. +KVO observation, async operations, UI Events and other streams of data are all unified under [abstraction of sequence](Documentation/GettingStarted.md#observables-aka-sequences). This is the reason why Rx is so simple, elegant and powerful. ## I came here because I want to ... @@ -46,11 +54,13 @@ KVO observing, async operations and streams are all unified under [abstraction o ###### ... compare -* [with other libraries](Documentation/ComparisonWithOtherLibraries.md). +* [with Combine and ReactiveSwift](Documentation/ComparisonWithOtherLibraries.md). ###### ... understand the structure -RxSwift comprises five separate components depending on eachother in the following way: +RxSwift is as compositional as the asynchronous work it drives. The core unit is RxSwift itself, while other dependencies can be added for UI Work, testing, and more. + +It comprises five separate components depending on each other in the following way: ```none ┌──────────────┐ ┌──────────────┐ @@ -67,20 +77,10 @@ RxSwift comprises five separate components depending on eachother in the followi ``` * **RxSwift**: The core of RxSwift, providing the Rx standard as (mostly) defined by [ReactiveX](https://reactivex.io). It has no other dependencies. -* **RxCocoa**: Provides Cocoa-specific capabilities for general iOS/macOS/watchOS & tvOS app development, such as Binders, Traits, and much more. It depends on both `RxSwift` and `RxRelay`. -* **RxRelay**: Provides `PublishRelay` and `BehaviorRelay`, two [simple wrappers around Subjects](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Subjects.md#relays). It depends on `RxSwift`. +* **RxCocoa**: Provides Cocoa-specific capabilities for general iOS/macOS/watchOS & tvOS app development, such as Shared Sequences, Traits, and much more. It depends on both `RxSwift` and `RxRelay`. +* **RxRelay**: Provides `PublishRelay`, `BehaviorRelay` and `ReplayRelay`, three [simple wrappers around Subjects](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Subjects.md#relays). It depends on `RxSwift`. * **RxTest** and **RxBlocking**: Provides testing capabilities for Rx-based systems. It depends on `RxSwift`. -###### ... find compatible - -* libraries from [RxSwiftCommunity](https://github.com/RxSwiftCommunity). -* [Pods using RxSwift](https://cocoapods.org/?q=uses%3Arxswift). - -###### ... see the broader vision - -* Does this exist for Android? [RxJava](https://github.com/ReactiveX/RxJava) -* Where is all of this going, what is the future, what about reactive architectures, how do you design entire apps this way? [Cycle.js](https://github.com/cyclejs/cycle-core) - this is javascript, but [RxJS](https://github.com/Reactive-Extensions/RxJS) is javascript version of Rx. - ## Usage
... then bind the results to your tableview
@@ -102,9 +102,9 @@ let searchResults = searchBar.rx.text.orEmpty return .just([]) } return searchGitHub(query) - .catchErrorJustReturn([]) + .catchAndReturn([]) } - .observeOn(MainScheduler.instance) + .observe(on: MainScheduler.instance) @@ -124,16 +124,16 @@ searchResults ## Requirements -* Xcode 10.2 -* Swift 5.0 +* Xcode 12.x +* Swift 5.x -For Xcode 10.1 and below, [use RxSwift 4.5](https://github.com/ReactiveX/RxSwift/releases/tag/4.5.0). +For Xcode 11 and below, [use RxSwift 5.x](https://github.com/ReactiveX/RxSwift/releases/tag/5.1.1). ## Installation -Rx doesn't contain any external dependencies. +RxSwift doesn't contain any external dependencies. -These are currently the supported options: +These are currently the supported installation options: ### Manual @@ -146,14 +146,14 @@ Open Rx.xcworkspace, choose `RxExample` and hit run. This method will build ever use_frameworks! target 'YOUR_TARGET_NAME' do - pod 'RxSwift', '~> 5' - pod 'RxCocoa', '~> 5' + pod 'RxSwift', '6.0.0' + pod 'RxCocoa', '6.0.0' end # RxTest and RxBlocking make the most sense in the context of unit/integration tests target 'YOUR_TESTING_TARGET' do - pod 'RxBlocking', '~> 5' - pod 'RxTest', '~> 5' + pod 'RxBlocking', '6.0.0' + pod 'RxTest', '6.0.0' end ``` @@ -163,14 +163,19 @@ Replace `YOUR_TARGET_NAME` and then, in the `Podfile` directory, type: $ pod install ``` -### [Carthage](https://github.com/Carthage/Carthage) +### XCFrameworks + +Each release starting with RxSwift 6 includes `*.xcframework` framework binaries. +Simply drag the needed framework binaries to your **Frameworks, Libraries, and Embedded Content** section under your target's **General** tab. -Officially supported: Carthage 0.33 and up. +XCFrameworks instructions + +### [Carthage](https://github.com/Carthage/Carthage) Add this to `Cartfile` ``` -github "ReactiveX/RxSwift" ~> 5.0 +github "ReactiveX/RxSwift" "6.0.0" ``` ```bash @@ -186,11 +191,13 @@ If you wish to build RxSwift as a Static Library using Carthage you may use the ```bash carthage update RxSwift --platform iOS --no-build sed -i -e 's/MACH_O_TYPE = mh_dylib/MACH_O_TYPE = staticlib/g' Carthage/Checkouts/RxSwift/Rx.xcodeproj/project.pbxproj -carthage build RxAlamofire --platform iOS +carthage build RxSwift --platform iOS ``` ### [Swift Package Manager](https://github.com/apple/swift-package-manager) +> **Note**: There is a critical cross-dependency bug affecting many projects including RxSwift in Swift Package Manager. We've [filed a bug (SR-12303)](https://bugs.swift.org/browse/SR-12303) in early 2020 but have no answer yet. Your mileage may vary. A partial workaround can be found [here](https://github.com/ReactiveX/RxSwift/issues/2127#issuecomment-717830502). + Create a `Package.swift` file. ```swift @@ -201,7 +208,7 @@ import PackageDescription let package = Package( name: "RxTestProject", dependencies: [ - .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "5.0.0") + .package(url: "https://github.com/ReactiveX/RxSwift.git", .exact("6.0.0")) ], targets: [ .target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"]) @@ -228,17 +235,17 @@ $ git submodule add git@github.com:ReactiveX/RxSwift.git ``` * Drag `Rx.xcodeproj` into Project Navigator -* Go to `Project > Targets > Build Phases > Link Binary With Libraries`, click `+` and select `RxSwift-[Platform]` and `RxCocoa-[Platform]` targets +* Go to `Project > Targets > Build Phases > Link Binary With Libraries`, click `+` and select `RxSwift`, `RxCocoa` and `RxRelay` targets ## References * [http://reactivex.io/](http://reactivex.io/) * [Reactive Extensions GitHub (GitHub)](https://github.com/Reactive-Extensions) * [RxSwift RayWenderlich.com Book](https://store.raywenderlich.com/products/rxswift-reactive-programming-with-swift) +* [RxSwift: Debunking the myth of hard (YouTube)](https://www.youtube.com/watch?v=GdvLP0ZAhhc) * [Boxue.io RxSwift Online Course](https://boxueio.com/series/rxswift-101) (Chinese 🇨🇳) -* [Erik Meijer (Wikipedia)](http://en.wikipedia.org/wiki/Erik_Meijer_%28computer_scientist%29) * [Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) (video)](https://youtu.be/looJcaeboBY) -* [Reactive Programming Overview (Jafar Husain from Netflix)](https://www.youtube.com/watch?v=dwP1TNXE6fc) +* [Reactive Programming Overview (Jafar Husain from Netflix)](https://youtu.be/-8Y1-lE6NSA) * [Subject/Observer is Dual to Iterator (paper)](http://csl.stanford.edu/~christos/pldi2010.fit/meijer.duality.pdf) * [Rx standard sequence operators visualized (visualization tool)](http://rxmarbles.com/) -* [Haskell](https://www.haskell.org/) \ No newline at end of file +* [Haskell](https://www.haskell.org/) diff --git a/Pods/RxSwift/RxSwift/AnyObserver.swift b/Example/Pods/RxSwift/RxSwift/AnyObserver.swift similarity index 94% rename from Pods/RxSwift/RxSwift/AnyObserver.swift rename to Example/Pods/RxSwift/RxSwift/AnyObserver.swift index 42aa09e..e92cc81 100644 --- a/Pods/RxSwift/RxSwift/AnyObserver.swift +++ b/Example/Pods/RxSwift/RxSwift/AnyObserver.swift @@ -33,14 +33,14 @@ public struct AnyObserver : ObserverType { /// /// - parameter event: Event instance. public func on(_ event: Event) { - return self.observer(event) + self.observer(event) } /// Erases type of observer and returns canonical observer. /// /// - returns: type erased observer. public func asObserver() -> AnyObserver { - return self + self } } @@ -54,7 +54,7 @@ extension ObserverType { /// /// - returns: type erased observer. public func asObserver() -> AnyObserver { - return AnyObserver(self) + AnyObserver(self) } /// Transforms observer of type R to type E using custom transform method. @@ -62,7 +62,7 @@ extension ObserverType { /// /// - returns: observer that transforms events. public func mapObserver(_ transform: @escaping (Result) throws -> Element) -> AnyObserver { - return AnyObserver { e in + AnyObserver { e in self.on(e.map(transform)) } } diff --git a/Pods/RxCocoa/RxCocoa/Common/Binder.swift b/Example/Pods/RxSwift/RxSwift/Binder.swift similarity index 87% rename from Pods/RxCocoa/RxCocoa/Common/Binder.swift rename to Example/Pods/RxSwift/RxSwift/Binder.swift index 15dd0cc..1aae095 100644 --- a/Pods/RxCocoa/RxCocoa/Common/Binder.swift +++ b/Example/Pods/RxSwift/RxSwift/Binder.swift @@ -1,13 +1,11 @@ // // Binder.swift -// RxCocoa +// RxSwift // // Created by Krunoslav Zaher on 9/17/17. // Copyright © 2017 Krunoslav Zaher. All rights reserved. // -import RxSwift - /** Observer that enforces interface binding rules: * can't bind errors (in debug builds binding of errors causes `fatalError` in release builds errors are being logged) @@ -20,7 +18,7 @@ import RxSwift public struct Binder: ObserverType { public typealias Element = Value - private let _binding: (Event) -> Void + private let binding: (Event) -> Void /// Initializes `Binder` /// @@ -30,7 +28,7 @@ public struct Binder: ObserverType { public init(_ target: Target, scheduler: ImmediateSchedulerType = MainScheduler(), binding: @escaping (Target, Value) -> Void) { weak var weakTarget = target - self._binding = { event in + self.binding = { event in switch event { case .next(let element): _ = scheduler.schedule(element) { element in @@ -40,7 +38,7 @@ public struct Binder: ObserverType { return Disposables.create() } case .error(let error): - bindingError(error) + rxFatalErrorInDebug("Binding error: \(error)") case .completed: break } @@ -49,13 +47,13 @@ public struct Binder: ObserverType { /// Binds next element to owner view as described in `binding`. public func on(_ event: Event) { - self._binding(event) + self.binding(event) } /// Erases type of observer. /// /// - returns: type erased observer. public func asObserver() -> AnyObserver { - return AnyObserver(eventHandler: self.on) + AnyObserver(eventHandler: self.on) } } diff --git a/Pods/RxSwift/RxSwift/Cancelable.swift b/Example/Pods/RxSwift/RxSwift/Cancelable.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Cancelable.swift rename to Example/Pods/RxSwift/RxSwift/Cancelable.swift diff --git a/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift b/Example/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift similarity index 63% rename from Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift rename to Example/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift index 80332db..502597e 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift +++ b/Example/Pods/RxSwift/RxSwift/Concurrency/AsyncLock.swift @@ -22,12 +22,12 @@ final class AsyncLock , SynchronizedDisposeType { typealias Action = () -> Void - var _lock = SpinLock() + private var _lock = SpinLock() - private var _queue: Queue = Queue(capacity: 0) + private var queue: Queue = Queue(capacity: 0) - private var _isExecuting: Bool = false - private var _hasFaulted: Bool = false + private var isExecuting: Bool = false + private var hasFaulted: Bool = false // lock { func lock() { @@ -40,32 +40,30 @@ final class AsyncLock // } private func enqueue(_ action: I) -> I? { - self._lock.lock(); defer { self._lock.unlock() } // { - if self._hasFaulted { - return nil - } - - if self._isExecuting { - self._queue.enqueue(action) - return nil - } - - self._isExecuting = true - - return action - // } + self.lock(); defer { self.unlock() } + if self.hasFaulted { + return nil + } + + if self.isExecuting { + self.queue.enqueue(action) + return nil + } + + self.isExecuting = true + + return action } private func dequeue() -> I? { - self._lock.lock(); defer { self._lock.unlock() } // { - if !self._queue.isEmpty { - return self._queue.dequeue() - } - else { - self._isExecuting = false - return nil - } - // } + self.lock(); defer { self.unlock() } + if !self.queue.isEmpty { + return self.queue.dequeue() + } + else { + self.isExecuting = false + return nil + } } func invoke(_ action: I) { @@ -95,8 +93,8 @@ final class AsyncLock self.synchronizedDispose() } - func _synchronized_dispose() { - self._queue = Queue(capacity: 0) - self._hasFaulted = true + func synchronized_dispose() { + self.queue = Queue(capacity: 0) + self.hasFaulted = true } } diff --git a/Pods/RxSwift/RxSwift/Concurrency/Lock.swift b/Example/Pods/RxSwift/RxSwift/Concurrency/Lock.swift similarity index 51% rename from Pods/RxSwift/RxSwift/Concurrency/Lock.swift rename to Example/Pods/RxSwift/RxSwift/Concurrency/Lock.swift index b26f5b7..7232f23 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/Lock.swift +++ b/Example/Pods/RxSwift/RxSwift/Concurrency/Lock.swift @@ -16,21 +16,8 @@ typealias SpinLock = RecursiveLock extension RecursiveLock : Lock { @inline(__always) - final func performLocked(_ action: () -> Void) { - self.lock(); defer { self.unlock() } - action() - } - - @inline(__always) - final func calculateLocked(_ action: () -> T) -> T { + final func performLocked(_ action: () -> T) -> T { self.lock(); defer { self.unlock() } return action() } - - @inline(__always) - final func calculateLockedOrFail(_ action: () throws -> T) throws -> T { - self.lock(); defer { self.unlock() } - let result = try action() - return result - } } diff --git a/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift b/Example/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift similarity index 50% rename from Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift rename to Example/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift index ed6b28a..17a42fc 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift +++ b/Example/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift @@ -6,16 +6,11 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -protocol LockOwnerType : class, Lock { - var _lock: RecursiveLock { get } +protocol LockOwnerType: class, Lock { + var lock: RecursiveLock { get } } extension LockOwnerType { - func lock() { - self._lock.lock() - } - - func unlock() { - self._lock.unlock() - } + func lock() { self.lock.lock() } + func unlock() { self.lock.unlock() } } diff --git a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift b/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift similarity index 83% rename from Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift rename to Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift index 0490a69..d9216e6 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift +++ b/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift @@ -7,12 +7,12 @@ // protocol SynchronizedDisposeType : class, Disposable, Lock { - func _synchronized_dispose() + func synchronized_dispose() } extension SynchronizedDisposeType { func synchronizedDispose() { self.lock(); defer { self.unlock() } - self._synchronized_dispose() + self.synchronized_dispose() } } diff --git a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift b/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift similarity index 66% rename from Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift rename to Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift index bac051b..a4beb64 100644 --- a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift +++ b/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift @@ -6,13 +6,13 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -protocol SynchronizedOnType : class, ObserverType, Lock { - func _synchronized_on(_ event: Event) +protocol SynchronizedOnType: class, ObserverType, Lock { + func synchronized_on(_ event: Event) } extension SynchronizedOnType { func synchronizedOn(_ event: Event) { self.lock(); defer { self.unlock() } - self._synchronized_on(event) + self.synchronized_on(event) } } diff --git a/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift b/Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift rename to Example/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift diff --git a/Pods/RxSwift/RxSwift/ConnectableObservableType.swift b/Example/Pods/RxSwift/RxSwift/ConnectableObservableType.swift similarity index 100% rename from Pods/RxSwift/RxSwift/ConnectableObservableType.swift rename to Example/Pods/RxSwift/RxSwift/ConnectableObservableType.swift diff --git a/Pods/RxSwift/RxSwift/Date+Dispatch.swift b/Example/Pods/RxSwift/RxSwift/Date+Dispatch.swift similarity index 95% rename from Pods/RxSwift/RxSwift/Date+Dispatch.swift rename to Example/Pods/RxSwift/RxSwift/Date+Dispatch.swift index 0dc3ac3..90f70c5 100644 --- a/Pods/RxSwift/RxSwift/Date+Dispatch.swift +++ b/Example/Pods/RxSwift/RxSwift/Date+Dispatch.swift @@ -6,9 +6,8 @@ // Copyright © 2019 Krunoslav Zaher. All rights reserved. // -import struct Foundation.Date -import struct Foundation.TimeInterval -import enum Dispatch.DispatchTimeInterval +import Dispatch +import Foundation extension DispatchTimeInterval { var convertToSecondsFactor: Double { diff --git a/Pods/RxSwift/RxSwift/Disposable.swift b/Example/Pods/RxSwift/RxSwift/Disposable.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Disposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposable.swift diff --git a/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift similarity index 70% rename from Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift index 6fbd635..591aafa 100644 --- a/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/AnonymousDisposable.swift @@ -9,28 +9,28 @@ /// Represents an Action-based disposable. /// /// When dispose method is called, disposal action will be dereferenced. -fileprivate final class AnonymousDisposable : DisposeBase, Cancelable { +private final class AnonymousDisposable : DisposeBase, Cancelable { public typealias DisposeAction = () -> Void - private let _isDisposed = AtomicInt(0) - private var _disposeAction: DisposeAction? + private let disposed = AtomicInt(0) + private var disposeAction: DisposeAction? /// - returns: Was resource disposed. public var isDisposed: Bool { - return isFlagSet(self._isDisposed, 1) + isFlagSet(self.disposed, 1) } /// Constructs a new disposable with the given action used for disposal. /// /// - parameter disposeAction: Disposal action which will be run upon calling `dispose`. - fileprivate init(_ disposeAction: @escaping DisposeAction) { - self._disposeAction = disposeAction + private init(_ disposeAction: @escaping DisposeAction) { + self.disposeAction = disposeAction super.init() } // Non-deprecated version of the constructor, used by `Disposables.create(with:)` fileprivate init(disposeAction: @escaping DisposeAction) { - self._disposeAction = disposeAction + self.disposeAction = disposeAction super.init() } @@ -38,9 +38,9 @@ fileprivate final class AnonymousDisposable : DisposeBase, Cancelable { /// /// After invoking disposal action, disposal action will be dereferenced. fileprivate func dispose() { - if fetchOr(self._isDisposed, 1) == 0 { - if let action = self._disposeAction { - self._disposeAction = nil + if fetchOr(self.disposed, 1) == 0 { + if let action = self.disposeAction { + self.disposeAction = nil action() } } @@ -53,7 +53,7 @@ extension Disposables { /// /// - parameter dispose: Disposal action which will be run upon calling `dispose`. public static func create(with dispose: @escaping () -> Void) -> Cancelable { - return AnonymousDisposable(disposeAction: dispose) + AnonymousDisposable(disposeAction: dispose) } } diff --git a/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift similarity index 67% rename from Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift index 5693268..a3d4937 100644 --- a/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/BinaryDisposable.swift @@ -9,15 +9,15 @@ /// Represents two disposable resources that are disposed together. private final class BinaryDisposable : DisposeBase, Cancelable { - private let _isDisposed = AtomicInt(0) + private let disposed = AtomicInt(0) // state - private var _disposable1: Disposable? - private var _disposable2: Disposable? + private var disposable1: Disposable? + private var disposable2: Disposable? /// - returns: Was resource disposed. var isDisposed: Bool { - return isFlagSet(self._isDisposed, 1) + isFlagSet(self.disposed, 1) } /// Constructs new binary disposable from two disposables. @@ -25,8 +25,8 @@ private final class BinaryDisposable : DisposeBase, Cancelable { /// - parameter disposable1: First disposable /// - parameter disposable2: Second disposable init(_ disposable1: Disposable, _ disposable2: Disposable) { - self._disposable1 = disposable1 - self._disposable2 = disposable2 + self.disposable1 = disposable1 + self.disposable2 = disposable2 super.init() } @@ -34,11 +34,11 @@ private final class BinaryDisposable : DisposeBase, Cancelable { /// /// After invoking disposal action, disposal action will be dereferenced. func dispose() { - if fetchOr(self._isDisposed, 1) == 0 { - self._disposable1?.dispose() - self._disposable2?.dispose() - self._disposable1 = nil - self._disposable2 = nil + if fetchOr(self.disposed, 1) == 0 { + self.disposable1?.dispose() + self.disposable2?.dispose() + self.disposable1 = nil + self.disposable2 = nil } } } @@ -47,7 +47,7 @@ extension Disposables { /// Creates a disposable with the given disposables. public static func create(_ disposable1: Disposable, _ disposable2: Disposable) -> Cancelable { - return BinaryDisposable(disposable1, disposable2) + BinaryDisposable(disposable1, disposable2) } } diff --git a/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift similarity index 85% rename from Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift index a0f5c2f..c7d73e9 100644 --- a/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift @@ -10,7 +10,7 @@ public final class BooleanDisposable : Cancelable { internal static let BooleanDisposableTrue = BooleanDisposable(isDisposed: true) - private var _isDisposed = false + private var disposed = false /// Initializes a new instance of the `BooleanDisposable` class public init() { @@ -18,16 +18,16 @@ public final class BooleanDisposable : Cancelable { /// Initializes a new instance of the `BooleanDisposable` class with given value public init(isDisposed: Bool) { - self._isDisposed = isDisposed + self.disposed = isDisposed } /// - returns: Was resource disposed. public var isDisposed: Bool { - return self._isDisposed + self.disposed } /// Sets the status to disposed, which can be observer through the `isDisposed` property. public func dispose() { - self._isDisposed = true + self.disposed = true } } diff --git a/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift similarity index 75% rename from Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift index ce0da6a..bb4efe6 100644 --- a/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/CompositeDisposable.swift @@ -16,14 +16,13 @@ public final class CompositeDisposable : DisposeBase, Cancelable { } } - private var _lock = SpinLock() + private var lock = SpinLock() // state - private var _disposables: Bag? = Bag() + private var disposables: Bag? = Bag() public var isDisposed: Bool { - self._lock.lock(); defer { self._lock.unlock() } - return self._disposables == nil + self.lock.performLocked { self.disposables == nil } } public override init() { @@ -32,35 +31,35 @@ public final class CompositeDisposable : DisposeBase, Cancelable { /// Initializes a new instance of composite disposable with the specified number of disposables. public init(_ disposable1: Disposable, _ disposable2: Disposable) { // This overload is here to make sure we are using optimized version up to 4 arguments. - _ = self._disposables!.insert(disposable1) - _ = self._disposables!.insert(disposable2) + _ = self.disposables!.insert(disposable1) + _ = self.disposables!.insert(disposable2) } /// Initializes a new instance of composite disposable with the specified number of disposables. public init(_ disposable1: Disposable, _ disposable2: Disposable, _ disposable3: Disposable) { // This overload is here to make sure we are using optimized version up to 4 arguments. - _ = self._disposables!.insert(disposable1) - _ = self._disposables!.insert(disposable2) - _ = self._disposables!.insert(disposable3) + _ = self.disposables!.insert(disposable1) + _ = self.disposables!.insert(disposable2) + _ = self.disposables!.insert(disposable3) } /// Initializes a new instance of composite disposable with the specified number of disposables. public init(_ disposable1: Disposable, _ disposable2: Disposable, _ disposable3: Disposable, _ disposable4: Disposable, _ disposables: Disposable...) { // This overload is here to make sure we are using optimized version up to 4 arguments. - _ = self._disposables!.insert(disposable1) - _ = self._disposables!.insert(disposable2) - _ = self._disposables!.insert(disposable3) - _ = self._disposables!.insert(disposable4) + _ = self.disposables!.insert(disposable1) + _ = self.disposables!.insert(disposable2) + _ = self.disposables!.insert(disposable3) + _ = self.disposables!.insert(disposable4) for disposable in disposables { - _ = self._disposables!.insert(disposable) + _ = self.disposables!.insert(disposable) } } /// Initializes a new instance of composite disposable with the specified number of disposables. public init(disposables: [Disposable]) { for disposable in disposables { - _ = self._disposables!.insert(disposable) + _ = self.disposables!.insert(disposable) } } @@ -82,16 +81,15 @@ public final class CompositeDisposable : DisposeBase, Cancelable { } private func _insert(_ disposable: Disposable) -> DisposeKey? { - self._lock.lock(); defer { self._lock.unlock() } - - let bagKey = self._disposables?.insert(disposable) - return bagKey.map(DisposeKey.init) + self.lock.performLocked { + let bagKey = self.disposables?.insert(disposable) + return bagKey.map(DisposeKey.init) + } } /// - returns: Gets the number of disposables contained in the `CompositeDisposable`. public var count: Int { - self._lock.lock(); defer { self._lock.unlock() } - return self._disposables?.count ?? 0 + self.lock.performLocked { self.disposables?.count ?? 0 } } /// Removes and disposes the disposable identified by `disposeKey` from the CompositeDisposable. @@ -102,8 +100,7 @@ public final class CompositeDisposable : DisposeBase, Cancelable { } private func _remove(for disposeKey: DisposeKey) -> Disposable? { - self._lock.lock(); defer { self._lock.unlock() } - return self._disposables?.removeKey(disposeKey.key) + self.lock.performLocked { self.disposables?.removeKey(disposeKey.key) } } /// Disposes all disposables in the group and removes them from the group. @@ -114,12 +111,11 @@ public final class CompositeDisposable : DisposeBase, Cancelable { } private func _dispose() -> Bag? { - self._lock.lock(); defer { self._lock.unlock() } - - let disposeBag = self._disposables - self._disposables = nil - - return disposeBag + self.lock.performLocked { + let current = self.disposables + self.disposables = nil + return current + } } } @@ -127,7 +123,7 @@ extension Disposables { /// Creates a disposable with the given disposables. public static func create(_ disposable1: Disposable, _ disposable2: Disposable, _ disposable3: Disposable) -> Cancelable { - return CompositeDisposable(disposable1, disposable2, disposable3) + CompositeDisposable(disposable1, disposable2, disposable3) } /// Creates a disposable with the given disposables. diff --git a/Pods/RxSwift/RxSwift/Disposables/Disposables.swift b/Example/Pods/RxSwift/RxSwift/Disposables/Disposables.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Disposables/Disposables.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/Disposables.swift diff --git a/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift b/Example/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift similarity index 60% rename from Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift index 22e5cb0..49c6c89 100644 --- a/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/DisposeBag.swift @@ -29,11 +29,11 @@ In case explicit disposal is necessary, there is also `CompositeDisposable`. */ public final class DisposeBag: DisposeBase { - private var _lock = SpinLock() + private var lock = SpinLock() // state - fileprivate var _disposables = [Disposable]() - fileprivate var _isDisposed = false + private var disposables = [Disposable]() + private var isDisposed = false /// Constructs new empty dispose bag. public override init() { @@ -48,14 +48,15 @@ public final class DisposeBag: DisposeBase { } private func _insert(_ disposable: Disposable) -> Disposable? { - self._lock.lock(); defer { self._lock.unlock() } - if self._isDisposed { - return disposable - } + self.lock.performLocked { + if self.isDisposed { + return disposable + } - self._disposables.append(disposable) + self.disposables.append(disposable) - return nil + return nil + } } /// This is internal on purpose, take a look at `CompositeDisposable` instead. @@ -68,14 +69,14 @@ public final class DisposeBag: DisposeBase { } private func _dispose() -> [Disposable] { - self._lock.lock(); defer { self._lock.unlock() } - - let disposables = self._disposables - - self._disposables.removeAll(keepingCapacity: false) - self._isDisposed = true - - return disposables + self.lock.performLocked { + let disposables = self.disposables + + self.disposables.removeAll(keepingCapacity: false) + self.isDisposed = true + + return disposables + } } deinit { @@ -84,17 +85,22 @@ public final class DisposeBag: DisposeBase { } extension DisposeBag { - /// Convenience init allows a list of disposables to be gathered for disposal. public convenience init(disposing disposables: Disposable...) { self.init() - self._disposables += disposables + self.disposables += disposables + } + + /// Convenience init which utilizes a function builder to let you pass in a list of + /// disposables to make a DisposeBag of. + public convenience init(@DisposableBuilder builder: () -> [Disposable]) { + self.init(disposing: builder()) } /// Convenience init allows an array of disposables to be gathered for disposal. public convenience init(disposing disposables: [Disposable]) { self.init() - self._disposables += disposables + self.disposables += disposables } /// Convenience function allows a list of disposables to be gathered for disposal. @@ -102,13 +108,27 @@ extension DisposeBag { self.insert(disposables) } + /// Convenience function allows a list of disposables to be gathered for disposal. + public func insert(@DisposableBuilder builder: () -> [Disposable]) { + self.insert(builder()) + } + /// Convenience function allows an array of disposables to be gathered for disposal. public func insert(_ disposables: [Disposable]) { - self._lock.lock(); defer { self._lock.unlock() } - if self._isDisposed { - disposables.forEach { $0.dispose() } - } else { - self._disposables += disposables + self.lock.performLocked { + if self.isDisposed { + disposables.forEach { $0.dispose() } + } else { + self.disposables += disposables + } } } + + /// A function builder accepting a list of Disposables and returning them as an array. + @_functionBuilder + public struct DisposableBuilder { + public static func buildBlock(_ disposables: Disposable...) -> [Disposable] { + return disposables + } + } } diff --git a/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift b/Example/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift diff --git a/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift similarity index 74% rename from Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift index 149f866..dd436ba 100644 --- a/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift @@ -9,11 +9,11 @@ /// Represents a disposable that does nothing on disposal. /// /// Nop = No Operation -fileprivate struct NopDisposable : Disposable { +private struct NopDisposable : Disposable { fileprivate static let noOp: Disposable = NopDisposable() - fileprivate init() { + private init() { } @@ -26,7 +26,5 @@ extension Disposables { /** Creates a disposable that does nothing on disposal. */ - static public func create() -> Disposable { - return NopDisposable.noOp - } + static public func create() -> Disposable { NopDisposable.noOp } } diff --git a/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift similarity index 63% rename from Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift index 922f20a..a59f778 100644 --- a/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/RefCountDisposable.swift @@ -8,20 +8,19 @@ /// Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed. public final class RefCountDisposable : DisposeBase, Cancelable { - private var _lock = SpinLock() - private var _disposable = nil as Disposable? - private var _primaryDisposed = false - private var _count = 0 + private var lock = SpinLock() + private var disposable = nil as Disposable? + private var primaryDisposed = false + private var count = 0 /// - returns: Was resource disposed. public var isDisposed: Bool { - self._lock.lock(); defer { self._lock.unlock() } - return self._disposable == nil + self.lock.performLocked { self.disposable == nil } } /// Initializes a new instance of the `RefCountDisposable`. public init(disposable: Disposable) { - self._disposable = disposable + self.disposable = disposable super.init() } @@ -31,10 +30,10 @@ public final class RefCountDisposable : DisposeBase, Cancelable { When getter is called, a dependent disposable contributing to the reference count that manages the underlying disposable's lifetime is returned. */ public func retain() -> Disposable { - return self._lock.calculateLocked { - if self._disposable != nil { + self.lock.performLocked { + if self.disposable != nil { do { - _ = try incrementChecked(&self._count) + _ = try incrementChecked(&self.count) } catch { rxFatalError("RefCountDisposable increment failed") } @@ -48,12 +47,12 @@ public final class RefCountDisposable : DisposeBase, Cancelable { /// Disposes the underlying disposable only when all dependent disposables have been disposed. public func dispose() { - let oldDisposable: Disposable? = self._lock.calculateLocked { - if let oldDisposable = self._disposable, !self._primaryDisposed { - self._primaryDisposed = true + let oldDisposable: Disposable? = self.lock.performLocked { + if let oldDisposable = self.disposable, !self.primaryDisposed { + self.primaryDisposed = true - if self._count == 0 { - self._disposable = nil + if self.count == 0 { + self.disposable = nil return oldDisposable } } @@ -67,20 +66,20 @@ public final class RefCountDisposable : DisposeBase, Cancelable { } fileprivate func release() { - let oldDisposable: Disposable? = self._lock.calculateLocked { - if let oldDisposable = self._disposable { + let oldDisposable: Disposable? = self.lock.performLocked { + if let oldDisposable = self.disposable { do { - _ = try decrementChecked(&self._count) + _ = try decrementChecked(&self.count) } catch { rxFatalError("RefCountDisposable decrement on release failed") } - guard self._count >= 0 else { + guard self.count >= 0 else { rxFatalError("RefCountDisposable counter is lower than 0") } - if self._primaryDisposed && self._count == 0 { - self._disposable = nil + if self.primaryDisposed && self.count == 0 { + self.disposable = nil return oldDisposable } } @@ -96,18 +95,18 @@ public final class RefCountDisposable : DisposeBase, Cancelable { internal final class RefCountInnerDisposable: DisposeBase, Disposable { - private let _parent: RefCountDisposable - private let _isDisposed = AtomicInt(0) + private let parent: RefCountDisposable + private let isDisposed = AtomicInt(0) init(_ parent: RefCountDisposable) { - self._parent = parent + self.parent = parent super.init() } internal func dispose() { - if fetchOr(self._isDisposed, 1) == 0 { - self._parent.release() + if fetchOr(self.isDisposed, 1) == 0 { + self.parent.release() } } } diff --git a/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift similarity index 81% rename from Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift index c834f5b..2cf997b 100644 --- a/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift @@ -15,14 +15,14 @@ private let disposeScheduledDisposable: (ScheduledDisposable) -> Disposable = { public final class ScheduledDisposable : Cancelable { public let scheduler: ImmediateSchedulerType - private let _isDisposed = AtomicInt(0) + private let disposed = AtomicInt(0) // state - private var _disposable: Disposable? + private var disposable: Disposable? /// - returns: Was resource disposed. public var isDisposed: Bool { - return isFlagSet(self._isDisposed, 1) + isFlagSet(self.disposed, 1) } /** @@ -33,7 +33,7 @@ public final class ScheduledDisposable : Cancelable { */ public init(scheduler: ImmediateSchedulerType, disposable: Disposable) { self.scheduler = scheduler - self._disposable = disposable + self.disposable = disposable } /// Disposes the wrapped disposable on the provided scheduler. @@ -42,9 +42,9 @@ public final class ScheduledDisposable : Cancelable { } func disposeInner() { - if fetchOr(self._isDisposed, 1) == 0 { - self._disposable!.dispose() - self._disposable = nil + if fetchOr(self.disposed, 1) == 0 { + self.disposable!.dispose() + self.disposable = nil } } } diff --git a/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift similarity index 68% rename from Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift index 22dce36..ef4690d 100644 --- a/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/SerialDisposable.swift @@ -8,15 +8,15 @@ /// Represents a disposable resource whose underlying disposable resource can be replaced by another disposable resource, causing automatic disposal of the previous underlying disposable resource. public final class SerialDisposable : DisposeBase, Cancelable { - private var _lock = SpinLock() + private var lock = SpinLock() // state - private var _current = nil as Disposable? - private var _isDisposed = false + private var current = nil as Disposable? + private var disposed = false /// - returns: Was resource disposed. public var isDisposed: Bool { - return self._isDisposed + self.disposed } /// Initializes a new instance of the `SerialDisposable`. @@ -33,18 +33,18 @@ public final class SerialDisposable : DisposeBase, Cancelable { */ public var disposable: Disposable { get { - return self._lock.calculateLocked { - return self._current ?? Disposables.create() + self.lock.performLocked { + self.current ?? Disposables.create() } } set (newDisposable) { - let disposable: Disposable? = self._lock.calculateLocked { - if self._isDisposed { + let disposable: Disposable? = self.lock.performLocked { + if self.isDisposed { return newDisposable } else { - let toDispose = self._current - self._current = newDisposable + let toDispose = self.current + self.current = newDisposable return toDispose } } @@ -61,14 +61,12 @@ public final class SerialDisposable : DisposeBase, Cancelable { } private func _dispose() -> Disposable? { - self._lock.lock(); defer { self._lock.unlock() } - if self._isDisposed { - return nil - } - else { - self._isDisposed = true - let current = self._current - self._current = nil + self.lock.performLocked { + guard !self.isDisposed else { return nil } + + self.disposed = true + let current = self.current + self.current = nil return current } } diff --git a/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift similarity index 76% rename from Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift index 88d59db..d7307d6 100644 --- a/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/SingleAssignmentDisposable.swift @@ -13,18 +13,18 @@ If an underlying disposable resource has already been set, future attempts to se */ public final class SingleAssignmentDisposable : DisposeBase, Cancelable { - fileprivate enum DisposeState: Int32 { + private enum DisposeState: Int32 { case disposed = 1 case disposableSet = 2 } // state - private let _state = AtomicInt(0) - private var _disposable = nil as Disposable? + private let state = AtomicInt(0) + private var disposable = nil as Disposable? /// - returns: A value that indicates whether the object is disposed. public var isDisposed: Bool { - return isFlagSet(self._state, DisposeState.disposed.rawValue) + isFlagSet(self.state, DisposeState.disposed.rawValue) } /// Initializes a new instance of the `SingleAssignmentDisposable`. @@ -36,9 +36,9 @@ public final class SingleAssignmentDisposable : DisposeBase, Cancelable { /// /// **Throws exception if the `SingleAssignmentDisposable` has already been assigned to.** public func setDisposable(_ disposable: Disposable) { - self._disposable = disposable + self.disposable = disposable - let previousState = fetchOr(self._state, DisposeState.disposableSet.rawValue) + let previousState = fetchOr(self.state, DisposeState.disposableSet.rawValue) if (previousState & DisposeState.disposableSet.rawValue) != 0 { rxFatalError("oldState.disposable != nil") @@ -46,24 +46,24 @@ public final class SingleAssignmentDisposable : DisposeBase, Cancelable { if (previousState & DisposeState.disposed.rawValue) != 0 { disposable.dispose() - self._disposable = nil + self.disposable = nil } } /// Disposes the underlying disposable. public func dispose() { - let previousState = fetchOr(self._state, DisposeState.disposed.rawValue) + let previousState = fetchOr(self.state, DisposeState.disposed.rawValue) if (previousState & DisposeState.disposed.rawValue) != 0 { return } if (previousState & DisposeState.disposableSet.rawValue) != 0 { - guard let disposable = self._disposable else { + guard let disposable = self.disposable else { rxFatalError("Disposable not set") } disposable.dispose() - self._disposable = nil + self.disposable = nil } } diff --git a/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift b/Example/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift similarity index 64% rename from Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift rename to Example/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift index 430e4c6..a406c84 100644 --- a/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift +++ b/Example/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift @@ -7,15 +7,15 @@ // struct SubscriptionDisposable : Disposable { - private let _key: T.DisposeKey - private weak var _owner: T? + private let key: T.DisposeKey + private weak var owner: T? init(owner: T, key: T.DisposeKey) { - self._owner = owner - self._key = key + self.owner = owner + self.key = key } func dispose() { - self._owner?.synchronizedUnsubscribe(self._key) + self.owner?.synchronizedUnsubscribe(self.key) } } diff --git a/Pods/RxSwift/RxSwift/Errors.swift b/Example/Pods/RxSwift/RxSwift/Errors.swift similarity index 97% rename from Pods/RxSwift/RxSwift/Errors.swift rename to Example/Pods/RxSwift/RxSwift/Errors.swift index f17b52d..d2d2917 100644 --- a/Pods/RxSwift/RxSwift/Errors.swift +++ b/Example/Pods/RxSwift/RxSwift/Errors.swift @@ -17,7 +17,7 @@ public enum RxError case unknown /// Performing an action on disposed object. case disposed(object: AnyObject) - /// Aritmetic overflow error. + /// Arithmetic overflow error. case overflow /// Argument out of range error. case argumentOutOfRange diff --git a/Pods/RxSwift/RxSwift/Event.swift b/Example/Pods/RxSwift/RxSwift/Event.swift similarity index 92% rename from Pods/RxSwift/RxSwift/Event.swift rename to Example/Pods/RxSwift/RxSwift/Event.swift index 699e3d2..01861a8 100644 --- a/Pods/RxSwift/RxSwift/Event.swift +++ b/Example/Pods/RxSwift/RxSwift/Event.swift @@ -10,7 +10,7 @@ /// /// Sequence grammar: /// **next\* (error | completed)** -public enum Event { +@frozen public enum Event { /// Next element is produced. case next(Element) @@ -94,16 +94,11 @@ public protocol EventConvertible { /// Type of element in event associatedtype Element - @available(*, deprecated, message: "Use `Element` instead.") - typealias ElementType = Element - /// Event representation of this instance var event: Event { get } } extension Event: EventConvertible { /// Event representation of this instance - public var event: Event { - return self - } + public var event: Event { self } } diff --git a/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift b/Example/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift rename to Example/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift diff --git a/Pods/RxSwift/RxSwift/GroupedObservable.swift b/Example/Pods/RxSwift/RxSwift/GroupedObservable.swift similarity index 93% rename from Pods/RxSwift/RxSwift/GroupedObservable.swift rename to Example/Pods/RxSwift/RxSwift/GroupedObservable.swift index 34a2fc2..189a8c4 100644 --- a/Pods/RxSwift/RxSwift/GroupedObservable.swift +++ b/Example/Pods/RxSwift/RxSwift/GroupedObservable.swift @@ -25,11 +25,11 @@ public struct GroupedObservable : ObservableType { /// Subscribes `observer` to receive events for this sequence. public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - return self.source.subscribe(observer) + self.source.subscribe(observer) } /// Converts `self` to `Observable` sequence. public func asObservable() -> Observable { - return self.source + self.source } } diff --git a/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift b/Example/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift similarity index 100% rename from Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift rename to Example/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift diff --git a/Pods/RxSwift/RxSwift/Observable.swift b/Example/Pods/RxSwift/RxSwift/Observable.swift similarity index 58% rename from Pods/RxSwift/RxSwift/Observable.swift rename to Example/Pods/RxSwift/RxSwift/Observable.swift index 5120d23..93a3ed7 100644 --- a/Pods/RxSwift/RxSwift/Observable.swift +++ b/Example/Pods/RxSwift/RxSwift/Observable.swift @@ -20,22 +20,12 @@ public class Observable : ObservableType { rxAbstractMethod() } - public func asObservable() -> Observable { - return self - } + public func asObservable() -> Observable { self } deinit { #if TRACE_RESOURCES _ = Resources.decrementTotal() #endif } - - // this is kind of ugly I know :( - // Swift compiler reports "Not supported yet" when trying to override protocol extensions, so ¯\_(ツ)_/¯ - - /// Optimizations for map operator - internal func composeMap(_ transform: @escaping (Element) throws -> Result) -> Observable { - return _map(source: self, transform: transform) - } } diff --git a/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift b/Example/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift similarity index 84% rename from Pods/RxSwift/RxSwift/ObservableConvertibleType.swift rename to Example/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift index 8db16e6..0f56a81 100644 --- a/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift +++ b/Example/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift @@ -11,9 +11,6 @@ public protocol ObservableConvertibleType { /// Type of elements in sequence. associatedtype Element - @available(*, deprecated, message: "Use `Element` instead.") - typealias E = Element - /// Converts `self` to `Observable` sequence. /// /// - returns: Observable sequence that represents `self`. diff --git a/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift b/Example/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift similarity index 79% rename from Pods/RxSwift/RxSwift/ObservableType+Extensions.swift rename to Example/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift index e8875ea..980f640 100644 --- a/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift +++ b/Example/Pods/RxSwift/RxSwift/ObservableType+Extensions.swift @@ -17,12 +17,11 @@ extension ObservableType { - parameter on: Action to invoke for each event in the observable sequence. - returns: Subscription object used to unsubscribe from the observable sequence. */ - public func subscribe(_ on: @escaping (Event) -> Void) - -> Disposable { - let observer = AnonymousObserver { e in - on(e) - } - return self.asObservable().subscribe(observer) + public func subscribe(_ on: @escaping (Event) -> Void) -> Disposable { + let observer = AnonymousObserver { e in + on(e) + } + return self.asObservable().subscribe(observer) } @@ -83,20 +82,23 @@ extension ObservableType { } } -import class Foundation.NSRecursiveLock +import Foundation extension Hooks { public typealias DefaultErrorHandler = (_ subscriptionCallStack: [String], _ error: Error) -> Void public typealias CustomCaptureSubscriptionCallstack = () -> [String] - fileprivate static let _lock = RecursiveLock() - fileprivate static var _defaultErrorHandler: DefaultErrorHandler = { subscriptionCallStack, error in + private static let lock = RecursiveLock() + private static var _defaultErrorHandler: DefaultErrorHandler = { subscriptionCallStack, error in #if DEBUG let serializedCallStack = subscriptionCallStack.joined(separator: "\n") - print("Unhandled error happened: \(error)\n subscription called from:\n\(serializedCallStack)") + print("Unhandled error happened: \(error)") + if !serializedCallStack.isEmpty { + print("subscription called from:\n\(serializedCallStack)") + } #endif } - fileprivate static var _customCaptureSubscriptionCallstack: CustomCaptureSubscriptionCallstack = { + private static var _customCaptureSubscriptionCallstack: CustomCaptureSubscriptionCallstack = { #if DEBUG return Thread.callStackSymbols #else @@ -107,24 +109,20 @@ extension Hooks { /// Error handler called in case onError handler wasn't provided. public static var defaultErrorHandler: DefaultErrorHandler { get { - _lock.lock(); defer { _lock.unlock() } - return _defaultErrorHandler + lock.performLocked { _defaultErrorHandler } } set { - _lock.lock(); defer { _lock.unlock() } - _defaultErrorHandler = newValue + lock.performLocked { _defaultErrorHandler = newValue } } } /// Subscription callstack block to fetch custom callstack information. public static var customCaptureSubscriptionCallstack: CustomCaptureSubscriptionCallstack { get { - _lock.lock(); defer { _lock.unlock() } - return _customCaptureSubscriptionCallstack + lock.performLocked { _customCaptureSubscriptionCallstack } } set { - _lock.lock(); defer { _lock.unlock() } - _customCaptureSubscriptionCallstack = newValue + lock.performLocked { _customCaptureSubscriptionCallstack = newValue } } } } diff --git a/Pods/RxSwift/RxSwift/ObservableType.swift b/Example/Pods/RxSwift/RxSwift/ObservableType.swift similarity index 94% rename from Pods/RxSwift/RxSwift/ObservableType.swift rename to Example/Pods/RxSwift/RxSwift/ObservableType.swift index dea9bfc..279bf7f 100644 --- a/Pods/RxSwift/RxSwift/ObservableType.swift +++ b/Example/Pods/RxSwift/RxSwift/ObservableType.swift @@ -40,8 +40,6 @@ extension ObservableType { public func asObservable() -> Observable { // temporary workaround //return Observable.create(subscribe: self.subscribe) - return Observable.create { o in - return self.subscribe(o) - } + Observable.create { o in self.subscribe(o) } } } diff --git a/Pods/RxSwift/RxSwift/Observables/AddRef.swift b/Example/Pods/RxSwift/RxSwift/Observables/AddRef.swift similarity index 82% rename from Pods/RxSwift/RxSwift/Observables/AddRef.swift rename to Example/Pods/RxSwift/RxSwift/Observables/AddRef.swift index 2c937a4..a96dfcb 100644 --- a/Pods/RxSwift/RxSwift/Observables/AddRef.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/AddRef.swift @@ -26,18 +26,18 @@ final class AddRefSink : Sink, ObserverType { final class AddRef : Producer { - private let _source: Observable - private let _refCount: RefCountDisposable + private let source: Observable + private let refCount: RefCountDisposable init(source: Observable, refCount: RefCountDisposable) { - self._source = source - self._refCount = refCount + self.source = source + self.refCount = refCount } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { - let releaseDisposable = self._refCount.retain() + let releaseDisposable = self.refCount.retain() let sink = AddRefSink(observer: observer, cancel: cancel) - let subscription = Disposables.create(releaseDisposable, self._source.subscribe(sink)) + let subscription = Disposables.create(releaseDisposable, self.source.subscribe(sink)) return (sink: sink, subscription: subscription) } diff --git a/Pods/RxSwift/RxSwift/Observables/Amb.swift b/Example/Pods/RxSwift/RxSwift/Observables/Amb.swift similarity index 75% rename from Pods/RxSwift/RxSwift/Observables/Amb.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Amb.swift index f8c1746..efc17a8 100644 --- a/Pods/RxSwift/RxSwift/Observables/Amb.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Amb.swift @@ -16,9 +16,9 @@ extension ObservableType { */ public static func amb(_ sequence: Sequence) -> Observable where Sequence.Element == Observable { - return sequence.reduce(Observable.never()) { a, o in - return a.amb(o.asObservable()) - } + sequence.reduce(Observable.never()) { a, o in + a.amb(o.asObservable()) + } } } @@ -35,11 +35,11 @@ extension ObservableType { public func amb (_ right: O2) -> Observable where O2.Element == Element { - return Amb(left: self.asObservable(), right: right.asObservable()) + Amb(left: self.asObservable(), right: right.asObservable()) } } -fileprivate enum AmbState { +private enum AmbState { case neither case left case right @@ -51,24 +51,24 @@ final private class AmbObserver: ObserverType { typealias This = AmbObserver typealias Sink = (This, Event) -> Void - fileprivate let _parent: Parent - fileprivate var _sink: Sink - fileprivate var _cancel: Disposable + private let parent: Parent + fileprivate var sink: Sink + fileprivate var cancel: Disposable init(parent: Parent, cancel: Disposable, sink: @escaping Sink) { #if TRACE_RESOURCES _ = Resources.incrementTotal() #endif - self._parent = parent - self._sink = sink - self._cancel = cancel + self.parent = parent + self.sink = sink + self.cancel = cancel } func on(_ event: Event) { - self._sink(self, event) + self.sink(self, event) if event.isStopEvent { - self._cancel.dispose() + self.cancel.dispose() } } @@ -84,14 +84,14 @@ final private class AmbSink: Sink { typealias Parent = Amb typealias AmbObserverType = AmbObserver - private let _parent: Parent + private let parent: Parent - private let _lock = RecursiveLock() + private let lock = RecursiveLock() // state - private var _choice = AmbState.neither + private var choice = AmbState.neither init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -108,15 +108,15 @@ final private class AmbSink: Sink { } let decide = { (o: AmbObserverType, event: Event, me: AmbState, otherSubscription: Disposable) in - self._lock.performLocked { - if self._choice == .neither { - self._choice = me - o._sink = forwardEvent - o._cancel = disposeAll + self.lock.performLocked { + if self.choice == .neither { + self.choice = me + o.sink = forwardEvent + o.cancel = disposeAll otherSubscription.dispose() } - if self._choice == me { + if self.choice == me { self.forwardOn(event) if event.isStopEvent { self.dispose() @@ -133,20 +133,20 @@ final private class AmbSink: Sink { decide(o, e, .right, subscription1) } - subscription1.setDisposable(self._parent._left.subscribe(sink1)) - subscription2.setDisposable(self._parent._right.subscribe(sink2)) + subscription1.setDisposable(self.parent.left.subscribe(sink1)) + subscription2.setDisposable(self.parent.right.subscribe(sink2)) return disposeAll } } final private class Amb: Producer { - fileprivate let _left: Observable - fileprivate let _right: Observable + fileprivate let left: Observable + fileprivate let right: Observable init(left: Observable, right: Observable) { - self._left = left - self._right = right + self.left = left + self.right = right } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/AsMaybe.swift b/Example/Pods/RxSwift/RxSwift/Observables/AsMaybe.swift similarity index 72% rename from Pods/RxSwift/RxSwift/Observables/AsMaybe.swift rename to Example/Pods/RxSwift/RxSwift/Observables/AsMaybe.swift index d8371e5..6fa6257 100644 --- a/Pods/RxSwift/RxSwift/Observables/AsMaybe.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/AsMaybe.swift @@ -6,25 +6,25 @@ // Copyright © 2017 Krunoslav Zaher. All rights reserved. // -fileprivate final class AsMaybeSink : Sink, ObserverType { +private final class AsMaybeSink : Sink, ObserverType { typealias Element = Observer.Element - private var _element: Event? + private var element: Event? func on(_ event: Event) { switch event { case .next: - if self._element != nil { + if self.element != nil { self.forwardOn(.error(RxError.moreThanOneElement)) self.dispose() } - self._element = event + self.element = event case .error: self.forwardOn(event) self.dispose() case .completed: - if let element = self._element { + if let element = self.element { self.forwardOn(element) } self.forwardOn(.completed) @@ -34,15 +34,15 @@ fileprivate final class AsMaybeSink : Sink, Ob } final class AsMaybe: Producer { - fileprivate let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = AsMaybeSink(observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/AsSingle.swift b/Example/Pods/RxSwift/RxSwift/Observables/AsSingle.swift similarity index 74% rename from Pods/RxSwift/RxSwift/Observables/AsSingle.swift rename to Example/Pods/RxSwift/RxSwift/Observables/AsSingle.swift index 00a2686..b39932f 100644 --- a/Pods/RxSwift/RxSwift/Observables/AsSingle.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/AsSingle.swift @@ -6,25 +6,25 @@ // Copyright © 2017 Krunoslav Zaher. All rights reserved. // -fileprivate final class AsSingleSink : Sink, ObserverType { +private final class AsSingleSink : Sink, ObserverType { typealias Element = Observer.Element - private var _element: Event? + private var element: Event? func on(_ event: Event) { switch event { case .next: - if self._element != nil { + if self.element != nil { self.forwardOn(.error(RxError.moreThanOneElement)) self.dispose() } - self._element = event + self.element = event case .error: self.forwardOn(event) self.dispose() case .completed: - if let element = self._element { + if let element = self.element { self.forwardOn(element) self.forwardOn(.completed) } @@ -37,15 +37,15 @@ fileprivate final class AsSingleSink : Sink, O } final class AsSingle: Producer { - fileprivate let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = AsSingleSink(observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Buffer.swift b/Example/Pods/RxSwift/RxSwift/Observables/Buffer.swift similarity index 67% rename from Pods/RxSwift/RxSwift/Observables/Buffer.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Buffer.swift index 0eb65f3..087c4cf 100644 --- a/Pods/RxSwift/RxSwift/Observables/Buffer.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Buffer.swift @@ -22,22 +22,22 @@ extension ObservableType { */ public func buffer(timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) -> Observable<[Element]> { - return BufferTimeCount(source: self.asObservable(), timeSpan: timeSpan, count: count, scheduler: scheduler) + BufferTimeCount(source: self.asObservable(), timeSpan: timeSpan, count: count, scheduler: scheduler) } } final private class BufferTimeCount: Producer<[Element]> { - fileprivate let _timeSpan: RxTimeInterval - fileprivate let _count: Int - fileprivate let _scheduler: SchedulerType - fileprivate let _source: Observable + fileprivate let timeSpan: RxTimeInterval + fileprivate let count: Int + fileprivate let scheduler: SchedulerType + fileprivate let source: Observable init(source: Observable, timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) { - self._source = source - self._timeSpan = timeSpan - self._count = count - self._scheduler = scheduler + self.source = source + self.timeSpan = timeSpan + self.count = count + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == [Element] { @@ -54,31 +54,31 @@ final private class BufferTimeCountSink , SynchronizedOnType where Observer.Element == [Element] { typealias Parent = BufferTimeCount - private let _parent: Parent + private let parent: Parent - let _lock = RecursiveLock() + let lock = RecursiveLock() // state - private let _timerD = SerialDisposable() - private var _buffer = [Element]() - private var _windowID = 0 + private let timerD = SerialDisposable() + private var buffer = [Element]() + private var windowID = 0 init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - self.createTimer(self._windowID) - return Disposables.create(_timerD, _parent._source.subscribe(self)) + self.createTimer(self.windowID) + return Disposables.create(timerD, parent.source.subscribe(self)) } func startNewWindowAndSendCurrentOne() { - self._windowID = self._windowID &+ 1 - let windowID = self._windowID + self.windowID = self.windowID &+ 1 + let windowID = self.windowID - let buffer = self._buffer - self._buffer = [] + let buffer = self.buffer + self.buffer = [] self.forwardOn(.next(buffer)) self.createTimer(windowID) @@ -88,42 +88,42 @@ final private class BufferTimeCountSink self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next(let element): - self._buffer.append(element) + self.buffer.append(element) - if self._buffer.count == self._parent._count { + if self.buffer.count == self.parent.count { self.startNewWindowAndSendCurrentOne() } case .error(let error): - self._buffer = [] + self.buffer = [] self.forwardOn(.error(error)) self.dispose() case .completed: - self.forwardOn(.next(self._buffer)) + self.forwardOn(.next(self.buffer)) self.forwardOn(.completed) self.dispose() } } func createTimer(_ windowID: Int) { - if self._timerD.isDisposed { + if self.timerD.isDisposed { return } - if self._windowID != windowID { + if self.windowID != windowID { return } let nextTimer = SingleAssignmentDisposable() - self._timerD.disposable = nextTimer + self.timerD.disposable = nextTimer - let disposable = self._parent._scheduler.scheduleRelative(windowID, dueTime: self._parent._timeSpan) { previousWindowID in - self._lock.performLocked { - if previousWindowID != self._windowID { + let disposable = self.parent.scheduler.scheduleRelative(windowID, dueTime: self.parent.timeSpan) { previousWindowID in + self.lock.performLocked { + if previousWindowID != self.windowID { return } diff --git a/Pods/RxSwift/RxSwift/Observables/Catch.swift b/Example/Pods/RxSwift/RxSwift/Observables/Catch.swift similarity index 68% rename from Pods/RxSwift/RxSwift/Observables/Catch.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Catch.swift index 84569ec..2efd660 100644 --- a/Pods/RxSwift/RxSwift/Observables/Catch.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Catch.swift @@ -16,9 +16,23 @@ extension ObservableType { - parameter handler: Error handler function, producing another observable sequence. - returns: An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an error occurred. */ + public func `catch`(_ handler: @escaping (Swift.Error) throws -> Observable) + -> Observable { + Catch(source: self.asObservable(), handler: handler) + } + + /** + Continues an observable sequence that is terminated by an error with the observable sequence produced by the handler. + + - seealso: [catch operator on reactivex.io](http://reactivex.io/documentation/operators/catch.html) + + - parameter handler: Error handler function, producing another observable sequence. + - returns: An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an error occurred. + */ + @available(*, deprecated, renamed: "catch(_:)") public func catchError(_ handler: @escaping (Swift.Error) throws -> Observable) -> Observable { - return Catch(source: self.asObservable(), handler: handler) + `catch`(handler) } /** @@ -29,11 +43,24 @@ extension ObservableType { - parameter element: Last element in an observable sequence in case error occurs. - returns: An observable sequence containing the source sequence's elements, followed by the `element` in case an error occurred. */ + public func catchAndReturn(_ element: Element) + -> Observable { + Catch(source: self.asObservable(), handler: { _ in Observable.just(element) }) + } + + /** + Continues an observable sequence that is terminated by an error with a single element. + + - seealso: [catch operator on reactivex.io](http://reactivex.io/documentation/operators/catch.html) + + - parameter element: Last element in an observable sequence in case error occurs. + - returns: An observable sequence containing the source sequence's elements, followed by the `element` in case an error occurred. + */ + @available(*, deprecated, renamed: "catchAndReturn(_:)") public func catchErrorJustReturn(_ element: Element) -> Observable { - return Catch(source: self.asObservable(), handler: { _ in Observable.just(element) }) + catchAndReturn(element) } - } extension ObservableType { @@ -44,9 +71,22 @@ extension ObservableType { - returns: An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. */ + @available(*, deprecated, renamed: "catch(onSuccess:onFailure:onDisposed:)") public static func catchError(_ sequence: Sequence) -> Observable where Sequence.Element == Observable { - return CatchSequence(sources: sequence) + `catch`(sequence: sequence) + } + + /** + Continues an observable sequence that is terminated by an error with the next observable sequence. + + - seealso: [catch operator on reactivex.io](http://reactivex.io/documentation/operators/catch.html) + + - returns: An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. + */ + public static func `catch`(sequence: Sequence) -> Observable + where Sequence.Element == Observable { + CatchSequence(sources: sequence) } } @@ -62,7 +102,7 @@ extension ObservableType { - returns: Observable sequence to repeat until it successfully terminates. */ public func retry() -> Observable { - return CatchSequence(sources: InfiniteSequence(repeatedValue: self.asObservable())) + CatchSequence(sources: InfiniteSequence(repeatedValue: self.asObservable())) } /** @@ -77,7 +117,7 @@ extension ObservableType { */ public func retry(_ maxAttemptCount: Int) -> Observable { - return CatchSequence(sources: Swift.repeatElement(self.asObservable(), count: maxAttemptCount)) + CatchSequence(sources: Swift.repeatElement(self.asObservable(), count: maxAttemptCount)) } } @@ -87,20 +127,20 @@ final private class CatchSinkProxy: ObserverType { typealias Element = Observer.Element typealias Parent = CatchSink - private let _parent: Parent + private let parent: Parent init(parent: Parent) { - self._parent = parent + self.parent = parent } func on(_ event: Event) { - self._parent.forwardOn(event) + self.parent.forwardOn(event) switch event { case .next: break case .error, .completed: - self._parent.dispose() + self.parent.dispose() } } } @@ -109,20 +149,20 @@ final private class CatchSink: Sink, ObserverT typealias Element = Observer.Element typealias Parent = Catch - private let _parent: Parent - private let _subscription = SerialDisposable() + private let parent: Parent + private let subscription = SerialDisposable() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { let d1 = SingleAssignmentDisposable() - self._subscription.disposable = d1 - d1.setDisposable(self._parent._source.subscribe(self)) + self.subscription.disposable = d1 + d1.setDisposable(self.parent.source.subscribe(self)) - return self._subscription + return self.subscription } func on(_ event: Event) { @@ -134,11 +174,11 @@ final private class CatchSink: Sink, ObserverT self.dispose() case .error(let error): do { - let catchSequence = try self._parent._handler(error) + let catchSequence = try self.parent.handler(error) let observer = CatchSinkProxy(parent: self) - self._subscription.disposable = catchSequence.subscribe(observer) + self.subscription.disposable = catchSequence.subscribe(observer) } catch let e { self.forwardOn(.error(e)) @@ -151,12 +191,12 @@ final private class CatchSink: Sink, ObserverT final private class Catch: Producer { typealias Handler = (Swift.Error) throws -> Observable - fileprivate let _source: Observable - fileprivate let _handler: Handler + fileprivate let source: Observable + fileprivate let handler: Handler init(source: Observable, handler: @escaping Handler) { - self._source = source - self._handler = handler + self.source = source + self.handler = handler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { @@ -174,7 +214,7 @@ final private class CatchSequenceSink - private var _lastError: Swift.Error? + private var lastError: Swift.Error? override init(observer: Observer, cancel: Cancelable) { super.init(observer: observer, cancel: cancel) @@ -185,7 +225,7 @@ final private class CatchSequenceSink) -> Disposable { - return source.subscribe(self) + source.subscribe(self) } override func done() { - if let lastError = self._lastError { + if let lastError = self.lastError { self.forwardOn(.error(lastError)) } else { diff --git a/Pods/RxSwift/RxSwift/Observables/CombineLatest+Collection.swift b/Example/Pods/RxSwift/RxSwift/Observables/CombineLatest+Collection.swift similarity index 56% rename from Pods/RxSwift/RxSwift/Observables/CombineLatest+Collection.swift rename to Example/Pods/RxSwift/RxSwift/Observables/CombineLatest+Collection.swift index f81c704..4350851 100644 --- a/Pods/RxSwift/RxSwift/Observables/CombineLatest+Collection.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/CombineLatest+Collection.swift @@ -17,7 +17,7 @@ extension ObservableType { */ public static func combineLatest(_ collection: Collection, resultSelector: @escaping ([Collection.Element.Element]) throws -> Element) -> Observable where Collection.Element: ObservableType { - return CombineLatestCollectionType(sources: collection, resultSelector: resultSelector) + CombineLatestCollectionType(sources: collection, resultSelector: resultSelector) } /** @@ -29,7 +29,7 @@ extension ObservableType { */ public static func combineLatest(_ collection: Collection) -> Observable<[Element]> where Collection.Element: ObservableType, Collection.Element.Element == Element { - return CombineLatestCollectionType(sources: collection, resultSelector: { $0 }) + CombineLatestCollectionType(sources: collection, resultSelector: { $0 }) } } @@ -39,98 +39,97 @@ final private class CombineLatestCollectionTypeSink typealias SourceElement = Collection.Element.Element - let _parent: Parent + let parent: Parent - let _lock = RecursiveLock() + let lock = RecursiveLock() // state - var _numberOfValues = 0 - var _values: [SourceElement?] - var _isDone: [Bool] - var _numberOfDone = 0 - var _subscriptions: [SingleAssignmentDisposable] + var numberOfValues = 0 + var values: [SourceElement?] + var isDone: [Bool] + var numberOfDone = 0 + var subscriptions: [SingleAssignmentDisposable] init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._values = [SourceElement?](repeating: nil, count: parent._count) - self._isDone = [Bool](repeating: false, count: parent._count) - self._subscriptions = [SingleAssignmentDisposable]() - self._subscriptions.reserveCapacity(parent._count) + self.parent = parent + self.values = [SourceElement?](repeating: nil, count: parent.count) + self.isDone = [Bool](repeating: false, count: parent.count) + self.subscriptions = [SingleAssignmentDisposable]() + self.subscriptions.reserveCapacity(parent.count) - for _ in 0 ..< parent._count { - self._subscriptions.append(SingleAssignmentDisposable()) + for _ in 0 ..< parent.count { + self.subscriptions.append(SingleAssignmentDisposable()) } super.init(observer: observer, cancel: cancel) } func on(_ event: Event, atIndex: Int) { - self._lock.lock(); defer { self._lock.unlock() } // { - switch event { - case .next(let element): - if self._values[atIndex] == nil { - self._numberOfValues += 1 - } - - self._values[atIndex] = element - - if self._numberOfValues < self._parent._count { - let numberOfOthersThatAreDone = self._numberOfDone - (self._isDone[atIndex] ? 1 : 0) - if numberOfOthersThatAreDone == self._parent._count - 1 { - self.forwardOn(.completed) - self.dispose() - } - return - } - - do { - let result = try self._parent._resultSelector(self._values.map { $0! }) - self.forwardOn(.next(result)) - } - catch let error { - self.forwardOn(.error(error)) + self.lock.lock(); defer { self.lock.unlock() } + switch event { + case .next(let element): + if self.values[atIndex] == nil { + self.numberOfValues += 1 + } + + self.values[atIndex] = element + + if self.numberOfValues < self.parent.count { + let numberOfOthersThatAreDone = self.numberOfDone - (self.isDone[atIndex] ? 1 : 0) + if numberOfOthersThatAreDone == self.parent.count - 1 { + self.forwardOn(.completed) self.dispose() } - - case .error(let error): + return + } + + do { + let result = try self.parent.resultSelector(self.values.map { $0! }) + self.forwardOn(.next(result)) + } + catch let error { self.forwardOn(.error(error)) self.dispose() - case .completed: - if self._isDone[atIndex] { - return - } - - self._isDone[atIndex] = true - self._numberOfDone += 1 - - if self._numberOfDone == self._parent._count { - self.forwardOn(.completed) - self.dispose() - } - else { - self._subscriptions[atIndex].dispose() - } } - // } + + case .error(let error): + self.forwardOn(.error(error)) + self.dispose() + case .completed: + if self.isDone[atIndex] { + return + } + + self.isDone[atIndex] = true + self.numberOfDone += 1 + + if self.numberOfDone == self.parent.count { + self.forwardOn(.completed) + self.dispose() + } + else { + self.subscriptions[atIndex].dispose() + } + } } func run() -> Disposable { var j = 0 - for i in self._parent._sources { + for i in self.parent.sources { let index = j let source = i.asObservable() let disposable = source.subscribe(AnyObserver { event in self.on(event, atIndex: index) }) - self._subscriptions[j].setDisposable(disposable) + self.subscriptions[j].setDisposable(disposable) j += 1 } - if self._parent._sources.isEmpty { + if self.parent.sources.isEmpty { do { - let result = try self._parent._resultSelector([]) + let result = try self.parent.resultSelector([]) self.forwardOn(.next(result)) self.forwardOn(.completed) self.dispose() @@ -141,21 +140,21 @@ final private class CombineLatestCollectionTypeSink: Producer where Collection.Element: ObservableConvertibleType { typealias ResultSelector = ([Collection.Element.Element]) throws -> Result - let _sources: Collection - let _resultSelector: ResultSelector - let _count: Int + let sources: Collection + let resultSelector: ResultSelector + let count: Int init(sources: Collection, resultSelector: @escaping ResultSelector) { - self._sources = sources - self._resultSelector = resultSelector - self._count = self._sources.count + self.sources = sources + self.resultSelector = resultSelector + self.count = self.sources.count } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { diff --git a/Pods/RxSwift/RxSwift/Observables/CombineLatest+arity.swift b/Example/Pods/RxSwift/RxSwift/Observables/CombineLatest+arity.swift similarity index 63% rename from Pods/RxSwift/RxSwift/Observables/CombineLatest+arity.swift rename to Example/Pods/RxSwift/RxSwift/Observables/CombineLatest+arity.swift index ece5802..e69bbab 100644 --- a/Pods/RxSwift/RxSwift/Observables/CombineLatest+arity.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/CombineLatest+arity.swift @@ -52,13 +52,13 @@ final class CombineLatestSink2_ : CombineLatestS typealias Result = Observer.Element typealias Parent = CombineLatest2 - let _parent: Parent + let parent: Parent - var _latestElement1: E1! = nil - var _latestElement2: E2! = nil + var latestElement1: E1! = nil + var latestElement2: E2! = nil init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 2, observer: observer, cancel: cancel) } @@ -66,11 +66,11 @@ final class CombineLatestSink2_ : CombineLatestS let subscription1 = SingleAssignmentDisposable() let subscription2 = SingleAssignmentDisposable() - let observer1 = CombineLatestObserver(lock: self._lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1) - let observer2 = CombineLatestObserver(lock: self._lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) + let observer1 = CombineLatestObserver(lock: self.lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self.latestElement1 = e }, this: subscription1) + let observer2 = CombineLatestObserver(lock: self.lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self.latestElement2 = e }, this: subscription2) - subscription1.setDisposable(self._parent._source1.subscribe(observer1)) - subscription2.setDisposable(self._parent._source2.subscribe(observer2)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) return Disposables.create([ subscription1, @@ -78,24 +78,24 @@ final class CombineLatestSink2_ : CombineLatestS ]) } - override func getResult() throws-> Result { - return try self._parent._resultSelector(self._latestElement1, self._latestElement2) + override func getResult() throws -> Result { + try self.parent.resultSelector(self.latestElement1, self.latestElement2) } } final class CombineLatest2 : Producer { typealias ResultSelector = (E1, E2) throws -> Result - let _source1: Observable - let _source2: Observable + let source1: Observable + let source2: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, resultSelector: @escaping ResultSelector) { - self._source1 = source1 - self._source2 = source2 + self.source1 = source1 + self.source2 = source2 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -150,14 +150,14 @@ final class CombineLatestSink3_ : CombineLat typealias Result = Observer.Element typealias Parent = CombineLatest3 - let _parent: Parent + let parent: Parent - var _latestElement1: E1! = nil - var _latestElement2: E2! = nil - var _latestElement3: E3! = nil + var latestElement1: E1! = nil + var latestElement2: E2! = nil + var latestElement3: E3! = nil init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 3, observer: observer, cancel: cancel) } @@ -166,13 +166,13 @@ final class CombineLatestSink3_ : CombineLat let subscription2 = SingleAssignmentDisposable() let subscription3 = SingleAssignmentDisposable() - let observer1 = CombineLatestObserver(lock: self._lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1) - let observer2 = CombineLatestObserver(lock: self._lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) - let observer3 = CombineLatestObserver(lock: self._lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3) + let observer1 = CombineLatestObserver(lock: self.lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self.latestElement1 = e }, this: subscription1) + let observer2 = CombineLatestObserver(lock: self.lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self.latestElement2 = e }, this: subscription2) + let observer3 = CombineLatestObserver(lock: self.lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self.latestElement3 = e }, this: subscription3) - subscription1.setDisposable(self._parent._source1.subscribe(observer1)) - subscription2.setDisposable(self._parent._source2.subscribe(observer2)) - subscription3.setDisposable(self._parent._source3.subscribe(observer3)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) return Disposables.create([ subscription1, @@ -181,26 +181,26 @@ final class CombineLatestSink3_ : CombineLat ]) } - override func getResult() throws-> Result { - return try self._parent._resultSelector(self._latestElement1, self._latestElement2, self._latestElement3) + override func getResult() throws -> Result { + try self.parent.resultSelector(self.latestElement1, self.latestElement2, self.latestElement3) } } final class CombineLatest3 : Producer { - typealias ResultSelector = (E1, E2, E3) throws-> Result + typealias ResultSelector = (E1, E2, E3) throws -> Result - let _source1: Observable - let _source2: Observable - let _source3: Observable + let source1: Observable + let source2: Observable + let source3: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, resultSelector: @escaping ResultSelector) { - self._source1 = source1 - self._source2 = source2 - self._source3 = source3 + self.source1 = source1 + self.source2 = source2 + self.source3 = source3 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -255,15 +255,15 @@ final class CombineLatestSink4_ : Combin typealias Result = Observer.Element typealias Parent = CombineLatest4 - let _parent: Parent + let parent: Parent - var _latestElement1: E1! = nil - var _latestElement2: E2! = nil - var _latestElement3: E3! = nil - var _latestElement4: E4! = nil + var latestElement1: E1! = nil + var latestElement2: E2! = nil + var latestElement3: E3! = nil + var latestElement4: E4! = nil init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 4, observer: observer, cancel: cancel) } @@ -273,15 +273,15 @@ final class CombineLatestSink4_ : Combin let subscription3 = SingleAssignmentDisposable() let subscription4 = SingleAssignmentDisposable() - let observer1 = CombineLatestObserver(lock: self._lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1) - let observer2 = CombineLatestObserver(lock: self._lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) - let observer3 = CombineLatestObserver(lock: self._lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3) - let observer4 = CombineLatestObserver(lock: self._lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4) + let observer1 = CombineLatestObserver(lock: self.lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self.latestElement1 = e }, this: subscription1) + let observer2 = CombineLatestObserver(lock: self.lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self.latestElement2 = e }, this: subscription2) + let observer3 = CombineLatestObserver(lock: self.lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self.latestElement3 = e }, this: subscription3) + let observer4 = CombineLatestObserver(lock: self.lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self.latestElement4 = e }, this: subscription4) - subscription1.setDisposable(self._parent._source1.subscribe(observer1)) - subscription2.setDisposable(self._parent._source2.subscribe(observer2)) - subscription3.setDisposable(self._parent._source3.subscribe(observer3)) - subscription4.setDisposable(self._parent._source4.subscribe(observer4)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) return Disposables.create([ subscription1, @@ -291,28 +291,28 @@ final class CombineLatestSink4_ : Combin ]) } - override func getResult() throws-> Result { - return try self._parent._resultSelector(self._latestElement1, self._latestElement2, self._latestElement3, self._latestElement4) + override func getResult() throws -> Result { + try self.parent.resultSelector(self.latestElement1, self.latestElement2, self.latestElement3, self.latestElement4) } } final class CombineLatest4 : Producer { - typealias ResultSelector = (E1, E2, E3, E4) throws-> Result + typealias ResultSelector = (E1, E2, E3, E4) throws -> Result - let _source1: Observable - let _source2: Observable - let _source3: Observable - let _source4: Observable + let source1: Observable + let source2: Observable + let source3: Observable + let source4: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, resultSelector: @escaping ResultSelector) { - self._source1 = source1 - self._source2 = source2 - self._source3 = source3 - self._source4 = source4 + self.source1 = source1 + self.source2 = source2 + self.source3 = source3 + self.source4 = source4 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -367,16 +367,16 @@ final class CombineLatestSink5_ : Co typealias Result = Observer.Element typealias Parent = CombineLatest5 - let _parent: Parent + let parent: Parent - var _latestElement1: E1! = nil - var _latestElement2: E2! = nil - var _latestElement3: E3! = nil - var _latestElement4: E4! = nil - var _latestElement5: E5! = nil + var latestElement1: E1! = nil + var latestElement2: E2! = nil + var latestElement3: E3! = nil + var latestElement4: E4! = nil + var latestElement5: E5! = nil init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 5, observer: observer, cancel: cancel) } @@ -387,17 +387,17 @@ final class CombineLatestSink5_ : Co let subscription4 = SingleAssignmentDisposable() let subscription5 = SingleAssignmentDisposable() - let observer1 = CombineLatestObserver(lock: self._lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1) - let observer2 = CombineLatestObserver(lock: self._lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) - let observer3 = CombineLatestObserver(lock: self._lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3) - let observer4 = CombineLatestObserver(lock: self._lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4) - let observer5 = CombineLatestObserver(lock: self._lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5) + let observer1 = CombineLatestObserver(lock: self.lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self.latestElement1 = e }, this: subscription1) + let observer2 = CombineLatestObserver(lock: self.lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self.latestElement2 = e }, this: subscription2) + let observer3 = CombineLatestObserver(lock: self.lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self.latestElement3 = e }, this: subscription3) + let observer4 = CombineLatestObserver(lock: self.lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self.latestElement4 = e }, this: subscription4) + let observer5 = CombineLatestObserver(lock: self.lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self.latestElement5 = e }, this: subscription5) - subscription1.setDisposable(self._parent._source1.subscribe(observer1)) - subscription2.setDisposable(self._parent._source2.subscribe(observer2)) - subscription3.setDisposable(self._parent._source3.subscribe(observer3)) - subscription4.setDisposable(self._parent._source4.subscribe(observer4)) - subscription5.setDisposable(self._parent._source5.subscribe(observer5)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) + subscription5.setDisposable(self.parent.source5.subscribe(observer5)) return Disposables.create([ subscription1, @@ -408,30 +408,30 @@ final class CombineLatestSink5_ : Co ]) } - override func getResult() throws-> Result { - return try self._parent._resultSelector(self._latestElement1, self._latestElement2, self._latestElement3, self._latestElement4, self._latestElement5) + override func getResult() throws -> Result { + try self.parent.resultSelector(self.latestElement1, self.latestElement2, self.latestElement3, self.latestElement4, self.latestElement5) } } final class CombineLatest5 : Producer { - typealias ResultSelector = (E1, E2, E3, E4, E5) throws-> Result + typealias ResultSelector = (E1, E2, E3, E4, E5) throws -> Result - let _source1: Observable - let _source2: Observable - let _source3: Observable - let _source4: Observable - let _source5: Observable + let source1: Observable + let source2: Observable + let source3: Observable + let source4: Observable + let source5: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, resultSelector: @escaping ResultSelector) { - self._source1 = source1 - self._source2 = source2 - self._source3 = source3 - self._source4 = source4 - self._source5 = source5 + self.source1 = source1 + self.source2 = source2 + self.source3 = source3 + self.source4 = source4 + self.source5 = source5 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -486,17 +486,17 @@ final class CombineLatestSink6_ typealias Result = Observer.Element typealias Parent = CombineLatest6 - let _parent: Parent + let parent: Parent - var _latestElement1: E1! = nil - var _latestElement2: E2! = nil - var _latestElement3: E3! = nil - var _latestElement4: E4! = nil - var _latestElement5: E5! = nil - var _latestElement6: E6! = nil + var latestElement1: E1! = nil + var latestElement2: E2! = nil + var latestElement3: E3! = nil + var latestElement4: E4! = nil + var latestElement5: E5! = nil + var latestElement6: E6! = nil init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 6, observer: observer, cancel: cancel) } @@ -508,19 +508,19 @@ final class CombineLatestSink6_ let subscription5 = SingleAssignmentDisposable() let subscription6 = SingleAssignmentDisposable() - let observer1 = CombineLatestObserver(lock: self._lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1) - let observer2 = CombineLatestObserver(lock: self._lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) - let observer3 = CombineLatestObserver(lock: self._lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3) - let observer4 = CombineLatestObserver(lock: self._lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4) - let observer5 = CombineLatestObserver(lock: self._lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5) - let observer6 = CombineLatestObserver(lock: self._lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6) + let observer1 = CombineLatestObserver(lock: self.lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self.latestElement1 = e }, this: subscription1) + let observer2 = CombineLatestObserver(lock: self.lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self.latestElement2 = e }, this: subscription2) + let observer3 = CombineLatestObserver(lock: self.lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self.latestElement3 = e }, this: subscription3) + let observer4 = CombineLatestObserver(lock: self.lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self.latestElement4 = e }, this: subscription4) + let observer5 = CombineLatestObserver(lock: self.lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self.latestElement5 = e }, this: subscription5) + let observer6 = CombineLatestObserver(lock: self.lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self.latestElement6 = e }, this: subscription6) - subscription1.setDisposable(self._parent._source1.subscribe(observer1)) - subscription2.setDisposable(self._parent._source2.subscribe(observer2)) - subscription3.setDisposable(self._parent._source3.subscribe(observer3)) - subscription4.setDisposable(self._parent._source4.subscribe(observer4)) - subscription5.setDisposable(self._parent._source5.subscribe(observer5)) - subscription6.setDisposable(self._parent._source6.subscribe(observer6)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) + subscription5.setDisposable(self.parent.source5.subscribe(observer5)) + subscription6.setDisposable(self.parent.source6.subscribe(observer6)) return Disposables.create([ subscription1, @@ -532,32 +532,32 @@ final class CombineLatestSink6_ ]) } - override func getResult() throws-> Result { - return try self._parent._resultSelector(self._latestElement1, self._latestElement2, self._latestElement3, self._latestElement4, self._latestElement5, self._latestElement6) + override func getResult() throws -> Result { + try self.parent.resultSelector(self.latestElement1, self.latestElement2, self.latestElement3, self.latestElement4, self.latestElement5, self.latestElement6) } } final class CombineLatest6 : Producer { - typealias ResultSelector = (E1, E2, E3, E4, E5, E6) throws-> Result + typealias ResultSelector = (E1, E2, E3, E4, E5, E6) throws -> Result - let _source1: Observable - let _source2: Observable - let _source3: Observable - let _source4: Observable - let _source5: Observable - let _source6: Observable + let source1: Observable + let source2: Observable + let source3: Observable + let source4: Observable + let source5: Observable + let source6: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, source6: Observable, resultSelector: @escaping ResultSelector) { - self._source1 = source1 - self._source2 = source2 - self._source3 = source3 - self._source4 = source4 - self._source5 = source5 - self._source6 = source6 + self.source1 = source1 + self.source2 = source2 + self.source3 = source3 + self.source4 = source4 + self.source5 = source5 + self.source6 = source6 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -612,18 +612,18 @@ final class CombineLatestSink7_ - let _parent: Parent + let parent: Parent - var _latestElement1: E1! = nil - var _latestElement2: E2! = nil - var _latestElement3: E3! = nil - var _latestElement4: E4! = nil - var _latestElement5: E5! = nil - var _latestElement6: E6! = nil - var _latestElement7: E7! = nil + var latestElement1: E1! = nil + var latestElement2: E2! = nil + var latestElement3: E3! = nil + var latestElement4: E4! = nil + var latestElement5: E5! = nil + var latestElement6: E6! = nil + var latestElement7: E7! = nil init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 7, observer: observer, cancel: cancel) } @@ -636,21 +636,21 @@ final class CombineLatestSink7_ Void in self._latestElement1 = e }, this: subscription1) - let observer2 = CombineLatestObserver(lock: self._lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) - let observer3 = CombineLatestObserver(lock: self._lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3) - let observer4 = CombineLatestObserver(lock: self._lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4) - let observer5 = CombineLatestObserver(lock: self._lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5) - let observer6 = CombineLatestObserver(lock: self._lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6) - let observer7 = CombineLatestObserver(lock: self._lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7) - - subscription1.setDisposable(self._parent._source1.subscribe(observer1)) - subscription2.setDisposable(self._parent._source2.subscribe(observer2)) - subscription3.setDisposable(self._parent._source3.subscribe(observer3)) - subscription4.setDisposable(self._parent._source4.subscribe(observer4)) - subscription5.setDisposable(self._parent._source5.subscribe(observer5)) - subscription6.setDisposable(self._parent._source6.subscribe(observer6)) - subscription7.setDisposable(self._parent._source7.subscribe(observer7)) + let observer1 = CombineLatestObserver(lock: self.lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self.latestElement1 = e }, this: subscription1) + let observer2 = CombineLatestObserver(lock: self.lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self.latestElement2 = e }, this: subscription2) + let observer3 = CombineLatestObserver(lock: self.lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self.latestElement3 = e }, this: subscription3) + let observer4 = CombineLatestObserver(lock: self.lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self.latestElement4 = e }, this: subscription4) + let observer5 = CombineLatestObserver(lock: self.lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self.latestElement5 = e }, this: subscription5) + let observer6 = CombineLatestObserver(lock: self.lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self.latestElement6 = e }, this: subscription6) + let observer7 = CombineLatestObserver(lock: self.lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self.latestElement7 = e }, this: subscription7) + + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) + subscription5.setDisposable(self.parent.source5.subscribe(observer5)) + subscription6.setDisposable(self.parent.source6.subscribe(observer6)) + subscription7.setDisposable(self.parent.source7.subscribe(observer7)) return Disposables.create([ subscription1, @@ -663,34 +663,34 @@ final class CombineLatestSink7_ Result { - return try self._parent._resultSelector(self._latestElement1, self._latestElement2, self._latestElement3, self._latestElement4, self._latestElement5, self._latestElement6, self._latestElement7) + override func getResult() throws -> Result { + try self.parent.resultSelector(self.latestElement1, self.latestElement2, self.latestElement3, self.latestElement4, self.latestElement5, self.latestElement6, self.latestElement7) } } final class CombineLatest7 : Producer { - typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7) throws-> Result + typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7) throws -> Result - let _source1: Observable - let _source2: Observable - let _source3: Observable - let _source4: Observable - let _source5: Observable - let _source6: Observable - let _source7: Observable + let source1: Observable + let source2: Observable + let source3: Observable + let source4: Observable + let source5: Observable + let source6: Observable + let source7: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, source6: Observable, source7: Observable, resultSelector: @escaping ResultSelector) { - self._source1 = source1 - self._source2 = source2 - self._source3 = source3 - self._source4 = source4 - self._source5 = source5 - self._source6 = source6 - self._source7 = source7 + self.source1 = source1 + self.source2 = source2 + self.source3 = source3 + self.source4 = source4 + self.source5 = source5 + self.source6 = source6 + self.source7 = source7 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -745,19 +745,19 @@ final class CombineLatestSink8_ - let _parent: Parent + let parent: Parent - var _latestElement1: E1! = nil - var _latestElement2: E2! = nil - var _latestElement3: E3! = nil - var _latestElement4: E4! = nil - var _latestElement5: E5! = nil - var _latestElement6: E6! = nil - var _latestElement7: E7! = nil - var _latestElement8: E8! = nil + var latestElement1: E1! = nil + var latestElement2: E2! = nil + var latestElement3: E3! = nil + var latestElement4: E4! = nil + var latestElement5: E5! = nil + var latestElement6: E6! = nil + var latestElement7: E7! = nil + var latestElement8: E8! = nil init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 8, observer: observer, cancel: cancel) } @@ -771,23 +771,23 @@ final class CombineLatestSink8_ Void in self._latestElement1 = e }, this: subscription1) - let observer2 = CombineLatestObserver(lock: self._lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) - let observer3 = CombineLatestObserver(lock: self._lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3) - let observer4 = CombineLatestObserver(lock: self._lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4) - let observer5 = CombineLatestObserver(lock: self._lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5) - let observer6 = CombineLatestObserver(lock: self._lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6) - let observer7 = CombineLatestObserver(lock: self._lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7) - let observer8 = CombineLatestObserver(lock: self._lock, parent: self, index: 7, setLatestValue: { (e: E8) -> Void in self._latestElement8 = e }, this: subscription8) - - subscription1.setDisposable(self._parent._source1.subscribe(observer1)) - subscription2.setDisposable(self._parent._source2.subscribe(observer2)) - subscription3.setDisposable(self._parent._source3.subscribe(observer3)) - subscription4.setDisposable(self._parent._source4.subscribe(observer4)) - subscription5.setDisposable(self._parent._source5.subscribe(observer5)) - subscription6.setDisposable(self._parent._source6.subscribe(observer6)) - subscription7.setDisposable(self._parent._source7.subscribe(observer7)) - subscription8.setDisposable(self._parent._source8.subscribe(observer8)) + let observer1 = CombineLatestObserver(lock: self.lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self.latestElement1 = e }, this: subscription1) + let observer2 = CombineLatestObserver(lock: self.lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self.latestElement2 = e }, this: subscription2) + let observer3 = CombineLatestObserver(lock: self.lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self.latestElement3 = e }, this: subscription3) + let observer4 = CombineLatestObserver(lock: self.lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self.latestElement4 = e }, this: subscription4) + let observer5 = CombineLatestObserver(lock: self.lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self.latestElement5 = e }, this: subscription5) + let observer6 = CombineLatestObserver(lock: self.lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self.latestElement6 = e }, this: subscription6) + let observer7 = CombineLatestObserver(lock: self.lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self.latestElement7 = e }, this: subscription7) + let observer8 = CombineLatestObserver(lock: self.lock, parent: self, index: 7, setLatestValue: { (e: E8) -> Void in self.latestElement8 = e }, this: subscription8) + + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) + subscription5.setDisposable(self.parent.source5.subscribe(observer5)) + subscription6.setDisposable(self.parent.source6.subscribe(observer6)) + subscription7.setDisposable(self.parent.source7.subscribe(observer7)) + subscription8.setDisposable(self.parent.source8.subscribe(observer8)) return Disposables.create([ subscription1, @@ -801,36 +801,36 @@ final class CombineLatestSink8_ Result { - return try self._parent._resultSelector(self._latestElement1, self._latestElement2, self._latestElement3, self._latestElement4, self._latestElement5, self._latestElement6, self._latestElement7, self._latestElement8) + override func getResult() throws -> Result { + try self.parent.resultSelector(self.latestElement1, self.latestElement2, self.latestElement3, self.latestElement4, self.latestElement5, self.latestElement6, self.latestElement7, self.latestElement8) } } final class CombineLatest8 : Producer { - typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7, E8) throws-> Result + typealias ResultSelector = (E1, E2, E3, E4, E5, E6, E7, E8) throws -> Result - let _source1: Observable - let _source2: Observable - let _source3: Observable - let _source4: Observable - let _source5: Observable - let _source6: Observable - let _source7: Observable - let _source8: Observable + let source1: Observable + let source2: Observable + let source3: Observable + let source4: Observable + let source5: Observable + let source6: Observable + let source7: Observable + let source8: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, source6: Observable, source7: Observable, source8: Observable, resultSelector: @escaping ResultSelector) { - self._source1 = source1 - self._source2 = source2 - self._source3 = source3 - self._source4 = source4 - self._source5 = source5 - self._source6 = source6 - self._source7 = source7 - self._source8 = source8 - - self._resultSelector = resultSelector + self.source1 = source1 + self.source2 = source2 + self.source3 = source3 + self.source4 = source4 + self.source5 = source5 + self.source6 = source6 + self.source7 = source7 + self.source8 = source8 + + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { diff --git a/Pods/RxSwift/RxSwift/Observables/CombineLatest.swift b/Example/Pods/RxSwift/RxSwift/Observables/CombineLatest.swift similarity index 59% rename from Pods/RxSwift/RxSwift/Observables/CombineLatest.swift rename to Example/Pods/RxSwift/RxSwift/Observables/CombineLatest.swift index 7d6fa7f..3805861 100644 --- a/Pods/RxSwift/RxSwift/Observables/CombineLatest.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/CombineLatest.swift @@ -17,18 +17,18 @@ class CombineLatestSink , CombineLatestProtocol { typealias Element = Observer.Element - let _lock = RecursiveLock() + let lock = RecursiveLock() - private let _arity: Int - private var _numberOfValues = 0 - private var _numberOfDone = 0 - private var _hasValue: [Bool] - private var _isDone: [Bool] + private let arity: Int + private var numberOfValues = 0 + private var numberOfDone = 0 + private var hasValue: [Bool] + private var isDone: [Bool] init(arity: Int, observer: Observer, cancel: Cancelable) { - self._arity = arity - self._hasValue = [Bool](repeating: false, count: arity) - self._isDone = [Bool](repeating: false, count: arity) + self.arity = arity + self.hasValue = [Bool](repeating: false, count: arity) + self.isDone = [Bool](repeating: false, count: arity) super.init(observer: observer, cancel: cancel) } @@ -38,12 +38,12 @@ class CombineLatestSink } func next(_ index: Int) { - if !self._hasValue[index] { - self._hasValue[index] = true - self._numberOfValues += 1 + if !self.hasValue[index] { + self.hasValue[index] = true + self.numberOfValues += 1 } - if self._numberOfValues == self._arity { + if self.numberOfValues == self.arity { do { let result = try self.getResult() self.forwardOn(.next(result)) @@ -56,8 +56,8 @@ class CombineLatestSink else { var allOthersDone = true - for i in 0 ..< self._arity { - if i != index && !self._isDone[i] { + for i in 0 ..< self.arity { + if i != index && !self.isDone[i] { allOthersDone = false break } @@ -76,14 +76,14 @@ class CombineLatestSink } func done(_ index: Int) { - if self._isDone[index] { + if self.isDone[index] { return } - self._isDone[index] = true - self._numberOfDone += 1 + self.isDone[index] = true + self.numberOfDone += 1 - if self._numberOfDone == self._arity { + if self.numberOfDone == self.arity { self.forwardOn(.completed) self.dispose() } @@ -96,36 +96,36 @@ final class CombineLatestObserver , SynchronizedOnType { typealias ValueSetter = (Element) -> Void - private let _parent: CombineLatestProtocol + private let parent: CombineLatestProtocol - let _lock: RecursiveLock - private let _index: Int - private let _this: Disposable - private let _setLatestValue: ValueSetter + let lock: RecursiveLock + private let index: Int + private let this: Disposable + private let setLatestValue: ValueSetter init(lock: RecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: @escaping ValueSetter, this: Disposable) { - self._lock = lock - self._parent = parent - self._index = index - self._this = this - self._setLatestValue = setLatestValue + self.lock = lock + self.parent = parent + self.index = index + self.this = this + self.setLatestValue = setLatestValue } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next(let value): - self._setLatestValue(value) - self._parent.next(self._index) + self.setLatestValue(value) + self.parent.next(self.index) case .error(let error): - self._this.dispose() - self._parent.fail(error) + self.this.dispose() + self.parent.fail(error) case .completed: - self._this.dispose() - self._parent.done(self._index) + self.this.dispose() + self.parent.done(self.index) } } } diff --git a/Pods/RxSwift/RxSwift/Observables/CompactMap.swift b/Example/Pods/RxSwift/RxSwift/Observables/CompactMap.swift similarity index 73% rename from Pods/RxSwift/RxSwift/Observables/CompactMap.swift rename to Example/Pods/RxSwift/RxSwift/Observables/CompactMap.swift index 09cd3a9..7dbcdfb 100644 --- a/Pods/RxSwift/RxSwift/Observables/CompactMap.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/CompactMap.swift @@ -11,19 +11,13 @@ extension ObservableType { /** Projects each element of an observable sequence into an optional form and filters all optional results. - Equivalent to: - - func compactMap(_ transform: @escaping (Self.E) throws -> Result?) -> RxSwift.Observable { - return self.map { try? transform($0) }.filter { $0 != nil }.map { $0! } - } - - parameter transform: A transform function to apply to each source element and which returns an element or nil. - returns: An observable sequence whose elements are the result of filtering the transform function for each element of the source. */ public func compactMap(_ transform: @escaping (Element) throws -> Result?) -> Observable { - return CompactMap(source: self.asObservable(), transform: transform) + CompactMap(source: self.asObservable(), transform: transform) } } @@ -33,10 +27,10 @@ final private class CompactMapSink: Sink: Sink: Sink: Producer { typealias Transform = (SourceType) throws -> ResultType? - private let _source: Observable + private let source: Observable - private let _transform: Transform + private let transform: Transform init(source: Observable, transform: @escaping Transform) { - self._source = source - self._transform = transform + self.source = source + self.transform = transform } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == ResultType { - let sink = CompactMapSink(transform: self._transform, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let sink = CompactMapSink(transform: self.transform, observer: observer, cancel: cancel) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Concat.swift b/Example/Pods/RxSwift/RxSwift/Observables/Concat.swift similarity index 90% rename from Pods/RxSwift/RxSwift/Observables/Concat.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Concat.swift index 6d76a04..b2fb1a2 100644 --- a/Pods/RxSwift/RxSwift/Observables/Concat.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Concat.swift @@ -17,7 +17,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements of `self`, followed by those of the second sequence. */ public func concat(_ second: Source) -> Observable where Source.Element == Element { - return Observable.concat([self.asObservable(), second.asObservable()]) + Observable.concat([self.asObservable(), second.asObservable()]) } } @@ -72,7 +72,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements of each given sequence, in sequential order. */ public static func concat(_ sources: Observable ...) -> Observable { - return Concat(sources: sources, count: Int64(sources.count)) + Concat(sources: sources, count: Int64(sources.count)) } } @@ -98,12 +98,12 @@ final private class ConcatSink } override func subscribeToNext(_ source: Observable) -> Disposable { - return source.subscribe(self) + source.subscribe(self) } override func extract(_ observable: Observable) -> SequenceGenerator? { if let source = observable as? Concat { - return (source._sources.makeIterator(), source._count) + return (source.sources.makeIterator(), source.count) } else { return nil @@ -114,17 +114,17 @@ final private class ConcatSink final private class Concat: Producer where Sequence.Element: ObservableConvertibleType { typealias Element = Sequence.Element.Element - fileprivate let _sources: Sequence - fileprivate let _count: IntMax? + fileprivate let sources: Sequence + fileprivate let count: IntMax? init(sources: Sequence, count: IntMax?) { - self._sources = sources - self._count = count + self.sources = sources + self.count = count } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = ConcatSink(observer: observer, cancel: cancel) - let subscription = sink.run((self._sources.makeIterator(), self._count)) + let subscription = sink.run((self.sources.makeIterator(), self.count)) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Create.swift b/Example/Pods/RxSwift/RxSwift/Observables/Create.swift similarity index 78% rename from Pods/RxSwift/RxSwift/Observables/Create.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Create.swift index 30eae4c..ca81442 100644 --- a/Pods/RxSwift/RxSwift/Observables/Create.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Create.swift @@ -18,7 +18,7 @@ extension ObservableType { - returns: The observable sequence with the specified implementation for the `subscribe` method. */ public static func create(_ subscribe: @escaping (AnyObserver) -> Disposable) -> Observable { - return AnonymousObservable(subscribe) + AnonymousObservable(subscribe) } } @@ -27,10 +27,10 @@ final private class AnonymousObservableSink: Sink // state - private let _isStopped = AtomicInt(0) + private let isStopped = AtomicInt(0) #if DEBUG - fileprivate let _synchronizationTracker = SynchronizationTracker() + private let synchronizationTracker = SynchronizationTracker() #endif override init(observer: Observer, cancel: Cancelable) { @@ -39,17 +39,17 @@ final private class AnonymousObservableSink: Sink) { #if DEBUG - self._synchronizationTracker.register(synchronizationErrorMessage: .default) - defer { self._synchronizationTracker.unregister() } + self.synchronizationTracker.register(synchronizationErrorMessage: .default) + defer { self.synchronizationTracker.unregister() } #endif switch event { case .next: - if load(self._isStopped) == 1 { + if load(self.isStopped) == 1 { return } self.forwardOn(event) case .error, .completed: - if fetchOr(self._isStopped, 1) == 0 { + if fetchOr(self.isStopped, 1) == 0 { self.forwardOn(event) self.dispose() } @@ -57,17 +57,17 @@ final private class AnonymousObservableSink: Sink Disposable { - return parent._subscribeHandler(AnyObserver(self)) + parent.subscribeHandler(AnyObserver(self)) } } final private class AnonymousObservable: Producer { typealias SubscribeHandler = (AnyObserver) -> Disposable - let _subscribeHandler: SubscribeHandler + let subscribeHandler: SubscribeHandler init(_ subscribeHandler: @escaping SubscribeHandler) { - self._subscribeHandler = subscribeHandler + self.subscribeHandler = subscribeHandler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/Debounce.swift b/Example/Pods/RxSwift/RxSwift/Observables/Debounce.swift similarity index 69% rename from Pods/RxSwift/RxSwift/Observables/Debounce.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Debounce.swift index 6f84711..dfab004 100644 --- a/Pods/RxSwift/RxSwift/Observables/Debounce.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Debounce.swift @@ -31,24 +31,24 @@ final private class DebounceSink typealias Element = Observer.Element typealias ParentType = Debounce - private let _parent: ParentType + private let parent: ParentType - let _lock = RecursiveLock() + let lock = RecursiveLock() // state - private var _id = 0 as UInt64 - private var _value: Element? + private var id = 0 as UInt64 + private var value: Element? let cancellable = SerialDisposable() init(parent: ParentType, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - let subscription = self._parent._source.subscribe(self) + let subscription = self.parent.source.subscribe(self) return Disposables.create(subscription, cancellable) } @@ -57,27 +57,27 @@ final private class DebounceSink self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next(let element): - self._id = self._id &+ 1 - let currentId = self._id - self._value = element + self.id = self.id &+ 1 + let currentId = self.id + self.value = element - let scheduler = self._parent._scheduler - let dueTime = self._parent._dueTime + let scheduler = self.parent.scheduler + let dueTime = self.parent.dueTime let d = SingleAssignmentDisposable() self.cancellable.disposable = d d.setDisposable(scheduler.scheduleRelative(currentId, dueTime: dueTime, action: self.propagate)) case .error: - self._value = nil + self.value = nil self.forwardOn(event) self.dispose() case .completed: - if let value = self._value { - self._value = nil + if let value = self.value { + self.value = nil self.forwardOn(.next(value)) } self.forwardOn(.completed) @@ -86,27 +86,28 @@ final private class DebounceSink } func propagate(_ currentId: UInt64) -> Disposable { - self._lock.lock(); defer { self._lock.unlock() } // { - let originalValue = self._value + self.lock.performLocked { + let originalValue = self.value - if let value = originalValue, self._id == currentId { - self._value = nil - self.forwardOn(.next(value)) + if let value = originalValue, self.id == currentId { + self.value = nil + self.forwardOn(.next(value)) + } + + return Disposables.create() } - // } - return Disposables.create() } } final private class Debounce: Producer { - fileprivate let _source: Observable - fileprivate let _dueTime: RxTimeInterval - fileprivate let _scheduler: SchedulerType + fileprivate let source: Observable + fileprivate let dueTime: RxTimeInterval + fileprivate let scheduler: SchedulerType init(source: Observable, dueTime: RxTimeInterval, scheduler: SchedulerType) { - self._source = source - self._dueTime = dueTime - self._scheduler = scheduler + self.source = source + self.dueTime = dueTime + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/Debug.swift b/Example/Pods/RxSwift/RxSwift/Observables/Debug.swift similarity index 69% rename from Pods/RxSwift/RxSwift/Observables/Debug.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Debug.swift index 103c6e8..762e394 100644 --- a/Pods/RxSwift/RxSwift/Observables/Debug.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Debug.swift @@ -6,8 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import struct Foundation.Date -import class Foundation.DateFormatter +import Foundation extension ObservableType { @@ -26,9 +25,9 @@ extension ObservableType { } } -fileprivate let dateFormat = "yyyy-MM-dd HH:mm:ss.SSS" +private let dateFormat = "yyyy-MM-dd HH:mm:ss.SSS" -fileprivate func logEvent(_ identifier: String, dateFormat: DateFormatter, content: String) { +private func logEvent(_ identifier: String, dateFormat: DateFormatter, content: String) { print("\(dateFormat.string(from: Date())): \(identifier) -> \(content)") } @@ -36,14 +35,14 @@ final private class DebugSink: S typealias Element = Observer.Element typealias Parent = Debug - private let _parent: Parent - private let _timestampFormatter = DateFormatter() + private let parent: Parent + private let timestampFormatter = DateFormatter() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._timestampFormatter.dateFormat = dateFormat + self.parent = parent + self.timestampFormatter.dateFormat = dateFormat - logEvent(self._parent._identifier, dateFormat: self._timestampFormatter, content: "subscribed") + logEvent(self.parent.identifier, dateFormat: self.timestampFormatter, content: "subscribed") super.init(observer: observer, cancel: cancel) } @@ -52,11 +51,11 @@ final private class DebugSink: S let maxEventTextLength = 40 let eventText = "\(event)" - let eventNormalized = (eventText.count > maxEventTextLength) && self._parent._trimOutput + let eventNormalized = (eventText.count > maxEventTextLength) && self.parent.trimOutput ? String(eventText.prefix(maxEventTextLength / 2)) + "..." + String(eventText.suffix(maxEventTextLength / 2)) : eventText - logEvent(self._parent._identifier, dateFormat: self._timestampFormatter, content: "Event \(eventNormalized)") + logEvent(self.parent.identifier, dateFormat: self.timestampFormatter, content: "Event \(eventNormalized)") self.forwardOn(event) if event.isStopEvent { @@ -65,39 +64,39 @@ final private class DebugSink: S } override func dispose() { - if !self.disposed { - logEvent(self._parent._identifier, dateFormat: self._timestampFormatter, content: "isDisposed") + if !self.isDisposed { + logEvent(self.parent.identifier, dateFormat: self.timestampFormatter, content: "isDisposed") } super.dispose() } } final private class Debug: Producer { - fileprivate let _identifier: String - fileprivate let _trimOutput: Bool - fileprivate let _source: Source + fileprivate let identifier: String + fileprivate let trimOutput: Bool + private let source: Source init(source: Source, identifier: String?, trimOutput: Bool, file: String, line: UInt, function: String) { - self._trimOutput = trimOutput + self.trimOutput = trimOutput if let identifier = identifier { - self._identifier = identifier + self.identifier = identifier } else { let trimmedFile: String - if let lastIndex = file.lastIndexOf("/") { + if let lastIndex = file.lastIndex(of: "/") { trimmedFile = String(file[file.index(after: lastIndex) ..< file.endIndex]) } else { trimmedFile = file } - self._identifier = "\(trimmedFile):\(line) (\(function))" + self.identifier = "\(trimmedFile):\(line) (\(function))" } - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Source.Element { let sink = DebugSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Example/Pods/RxSwift/RxSwift/Observables/Decode.swift b/Example/Pods/RxSwift/RxSwift/Observables/Decode.swift new file mode 100644 index 0000000..8bc7342 --- /dev/null +++ b/Example/Pods/RxSwift/RxSwift/Observables/Decode.swift @@ -0,0 +1,34 @@ +// +// Decode.swift +// RxSwift +// +// Created by Shai Mishali on 24/07/2020. +// Copyright © 2020 Krunoslav Zaher. All rights reserved. +// + +import Foundation + +public extension ObservableType where Element == Data { + /// Attempt to decode the emitted `Data` using a provided decoder. + /// + /// - parameter type: A `Decodable`-conforming type to attempt to decode to + /// - parameter decoder: A capable decoder, e.g. `JSONDecoder` or `PropertyListDecoder` + /// + /// - note: If using a custom decoder, it must conform to the `DataDecoder` protocol. + /// + /// - returns: An `Observable` of the decoded type + func decode(type: Item.Type, + decoder: Decoder) -> Observable { + map { try decoder.decode(type, from: $0) } + } +} + +/// Represents an entity capable of decoding raw `Data` +/// into a concrete `Decodable` type +public protocol DataDecoder { + func decode(_ type: Item.Type, from data: Data) throws -> Item +} + +extension JSONDecoder: DataDecoder {} +extension PropertyListDecoder: DataDecoder {} diff --git a/Pods/RxSwift/RxSwift/Observables/DefaultIfEmpty.swift b/Example/Pods/RxSwift/RxSwift/Observables/DefaultIfEmpty.swift similarity index 74% rename from Pods/RxSwift/RxSwift/Observables/DefaultIfEmpty.swift rename to Example/Pods/RxSwift/RxSwift/Observables/DefaultIfEmpty.swift index 5ad1bef..8d133d8 100644 --- a/Pods/RxSwift/RxSwift/Observables/DefaultIfEmpty.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/DefaultIfEmpty.swift @@ -17,31 +17,31 @@ extension ObservableType { - returns: An observable sequence which emits default element end completes in case the original sequence is empty */ public func ifEmpty(default: Element) -> Observable { - return DefaultIfEmpty(source: self.asObservable(), default: `default`) + DefaultIfEmpty(source: self.asObservable(), default: `default`) } } final private class DefaultIfEmptySink: Sink, ObserverType { typealias Element = Observer.Element - private let _default: Element - private var _isEmpty = true + private let `default`: Element + private var isEmpty = true init(default: Element, observer: Observer, cancel: Cancelable) { - self._default = `default` + self.default = `default` super.init(observer: observer, cancel: cancel) } func on(_ event: Event) { switch event { case .next: - self._isEmpty = false + self.isEmpty = false self.forwardOn(event) case .error: self.forwardOn(event) self.dispose() case .completed: - if self._isEmpty { - self.forwardOn(.next(self._default)) + if self.isEmpty { + self.forwardOn(.next(self.default)) } self.forwardOn(.completed) self.dispose() @@ -50,17 +50,17 @@ final private class DefaultIfEmptySink: Sink, } final private class DefaultIfEmpty: Producer { - private let _source: Observable - private let _default: SourceType + private let source: Observable + private let `default`: SourceType init(source: Observable, `default`: SourceType) { - self._source = source - self._default = `default` + self.source = source + self.default = `default` } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == SourceType { - let sink = DefaultIfEmptySink(default: self._default, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let sink = DefaultIfEmptySink(default: self.default, observer: observer, cancel: cancel) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Deferred.swift b/Example/Pods/RxSwift/RxSwift/Observables/Deferred.swift similarity index 83% rename from Pods/RxSwift/RxSwift/Observables/Deferred.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Deferred.swift index 8152f5c..b81cb16 100644 --- a/Pods/RxSwift/RxSwift/Observables/Deferred.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Deferred.swift @@ -17,23 +17,23 @@ extension ObservableType { */ public static func deferred(_ observableFactory: @escaping () throws -> Observable) -> Observable { - return Deferred(observableFactory: observableFactory) + Deferred(observableFactory: observableFactory) } } final private class DeferredSink: Sink, ObserverType where Source.Element == Observer.Element { typealias Element = Observer.Element - private let _observableFactory: () throws -> Source + private let observableFactory: () throws -> Source init(observableFactory: @escaping () throws -> Source, observer: Observer, cancel: Cancelable) { - self._observableFactory = observableFactory + self.observableFactory = observableFactory super.init(observer: observer, cancel: cancel) } func run() -> Disposable { do { - let result = try self._observableFactory() + let result = try self.observableFactory() return result.subscribe(self) } catch let e { @@ -60,15 +60,15 @@ final private class DeferredSink final private class Deferred: Producer { typealias Factory = () throws -> Source - private let _observableFactory : Factory + private let observableFactory : Factory init(observableFactory: @escaping Factory) { - self._observableFactory = observableFactory + self.observableFactory = observableFactory } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Source.Element { - let sink = DeferredSink(observableFactory: self._observableFactory, observer: observer, cancel: cancel) + let sink = DeferredSink(observableFactory: self.observableFactory, observer: observer, cancel: cancel) let subscription = sink.run() return (sink: sink, subscription: subscription) } diff --git a/Pods/RxSwift/RxSwift/Observables/Delay.swift b/Example/Pods/RxSwift/RxSwift/Observables/Delay.swift similarity index 55% rename from Pods/RxSwift/RxSwift/Observables/Delay.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Delay.swift index 1c00a49..9f71c32 100644 --- a/Pods/RxSwift/RxSwift/Observables/Delay.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Delay.swift @@ -6,7 +6,7 @@ // Copyright © 2016 Krunoslav Zaher. All rights reserved. // -import struct Foundation.Date +import Foundation extension ObservableType { @@ -32,27 +32,26 @@ final private class DelaySink typealias Source = Observable typealias DisposeKey = Bag.KeyType - private let _lock = RecursiveLock() + private let lock = RecursiveLock() - private let _dueTime: RxTimeInterval - private let _scheduler: SchedulerType + private let dueTime: RxTimeInterval + private let scheduler: SchedulerType - private let _sourceSubscription = SingleAssignmentDisposable() - private let _cancelable = SerialDisposable() + private let sourceSubscription = SingleAssignmentDisposable() + private let cancelable = SerialDisposable() // is scheduled some action - private var _active = false + private var active = false // is "run loop" on different scheduler running - private var _running = false - private var _errorEvent: Event? + private var running = false + private var errorEvent: Event? // state - private var _queue = Queue<(eventTime: RxTime, event: Event)>(capacity: 0) - private var _disposed = false + private var queue = Queue<(eventTime: RxTime, event: Event)>(capacity: 0) init(observer: Observer, dueTime: RxTimeInterval, scheduler: SchedulerType, cancel: Cancelable) { - self._dueTime = dueTime - self._scheduler = scheduler + self.dueTime = dueTime + self.scheduler = scheduler super.init(observer: observer, cancel: cancel) } @@ -62,13 +61,12 @@ final private class DelaySink // // Another complication is that scheduler is potentially concurrent so internal queue is used. func drainQueue(state: (), scheduler: AnyRecursiveScheduler<()>) { - - self._lock.lock() // { - let hasFailed = self._errorEvent != nil - if !hasFailed { - self._running = true - } - self._lock.unlock() // } + self.lock.lock() + let hasFailed = self.errorEvent != nil + if !hasFailed { + self.running = true + } + self.lock.unlock() if hasFailed { return @@ -77,24 +75,24 @@ final private class DelaySink var ranAtLeastOnce = false while true { - self._lock.lock() // { - let errorEvent = self._errorEvent + self.lock.lock() + let errorEvent = self.errorEvent - let eventToForwardImmediately = ranAtLeastOnce ? nil : self._queue.dequeue()?.event - let nextEventToScheduleOriginalTime: Date? = ranAtLeastOnce && !self._queue.isEmpty ? self._queue.peek().eventTime : nil + let eventToForwardImmediately = ranAtLeastOnce ? nil : self.queue.dequeue()?.event + let nextEventToScheduleOriginalTime: Date? = ranAtLeastOnce && !self.queue.isEmpty ? self.queue.peek().eventTime : nil - if errorEvent == nil { - if eventToForwardImmediately != nil { - } - else if nextEventToScheduleOriginalTime != nil { - self._running = false - } - else { - self._running = false - self._active = false - } + if errorEvent == nil { + if eventToForwardImmediately != nil { + } + else if nextEventToScheduleOriginalTime != nil { + self.running = false } - self._lock.unlock() // { + else { + self.running = false + self.active = false + } + } + self.lock.unlock() if let errorEvent = errorEvent { self.forwardOn(errorEvent) @@ -111,7 +109,7 @@ final private class DelaySink } } else if let nextEventToScheduleOriginalTime = nextEventToScheduleOriginalTime { - scheduler.schedule((), dueTime: self._dueTime.reduceWithSpanBetween(earlierDate: nextEventToScheduleOriginalTime, laterDate: self._scheduler.now)) + scheduler.schedule((), dueTime: self.dueTime.reduceWithSpanBetween(earlierDate: nextEventToScheduleOriginalTime, laterDate: self.scheduler.now)) return } else { @@ -123,54 +121,54 @@ final private class DelaySink func on(_ event: Event) { if event.isStopEvent { - self._sourceSubscription.dispose() + self.sourceSubscription.dispose() } switch event { case .error: - self._lock.lock() // { - let shouldSendImmediately = !self._running - self._queue = Queue(capacity: 0) - self._errorEvent = event - self._lock.unlock() // } + self.lock.lock() + let shouldSendImmediately = !self.running + self.queue = Queue(capacity: 0) + self.errorEvent = event + self.lock.unlock() if shouldSendImmediately { self.forwardOn(event) self.dispose() } default: - self._lock.lock() // { - let shouldSchedule = !self._active - self._active = true - self._queue.enqueue((self._scheduler.now, event)) - self._lock.unlock() // } + self.lock.lock() + let shouldSchedule = !self.active + self.active = true + self.queue.enqueue((self.scheduler.now, event)) + self.lock.unlock() if shouldSchedule { - self._cancelable.disposable = self._scheduler.scheduleRecursive((), dueTime: self._dueTime, action: self.drainQueue) + self.cancelable.disposable = self.scheduler.scheduleRecursive((), dueTime: self.dueTime, action: self.drainQueue) } } } func run(source: Observable) -> Disposable { - self._sourceSubscription.setDisposable(source.subscribe(self)) - return Disposables.create(_sourceSubscription, _cancelable) + self.sourceSubscription.setDisposable(source.subscribe(self)) + return Disposables.create(sourceSubscription, cancelable) } } final private class Delay: Producer { - private let _source: Observable - private let _dueTime: RxTimeInterval - private let _scheduler: SchedulerType + private let source: Observable + private let dueTime: RxTimeInterval + private let scheduler: SchedulerType init(source: Observable, dueTime: RxTimeInterval, scheduler: SchedulerType) { - self._source = source - self._dueTime = dueTime - self._scheduler = scheduler + self.source = source + self.dueTime = dueTime + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { - let sink = DelaySink(observer: observer, dueTime: self._dueTime, scheduler: self._scheduler, cancel: cancel) - let subscription = sink.run(source: self._source) + let sink = DelaySink(observer: observer, dueTime: self.dueTime, scheduler: self.scheduler, cancel: cancel) + let subscription = sink.run(source: self.source) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/DelaySubscription.swift b/Example/Pods/RxSwift/RxSwift/Observables/DelaySubscription.swift similarity index 76% rename from Pods/RxSwift/RxSwift/Observables/DelaySubscription.swift rename to Example/Pods/RxSwift/RxSwift/Observables/DelaySubscription.swift index a329d60..fd8c495 100644 --- a/Pods/RxSwift/RxSwift/Observables/DelaySubscription.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/DelaySubscription.swift @@ -19,7 +19,7 @@ extension ObservableType { */ public func delaySubscription(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observable { - return DelaySubscription(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) + DelaySubscription(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) } } @@ -37,20 +37,20 @@ final private class DelaySubscriptionSink } final private class DelaySubscription: Producer { - private let _source: Observable - private let _dueTime: RxTimeInterval - private let _scheduler: SchedulerType + private let source: Observable + private let dueTime: RxTimeInterval + private let scheduler: SchedulerType init(source: Observable, dueTime: RxTimeInterval, scheduler: SchedulerType) { - self._source = source - self._dueTime = dueTime - self._scheduler = scheduler + self.source = source + self.dueTime = dueTime + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = DelaySubscriptionSink(observer: observer, cancel: cancel) - let subscription = self._scheduler.scheduleRelative((), dueTime: self._dueTime) { _ in - return self._source.subscribe(sink) + let subscription = self.scheduler.scheduleRelative((), dueTime: self.dueTime) { _ in + return self.source.subscribe(sink) } return (sink: sink, subscription: subscription) diff --git a/Pods/RxSwift/RxSwift/Observables/Dematerialize.swift b/Example/Pods/RxSwift/RxSwift/Observables/Dematerialize.swift similarity index 81% rename from Pods/RxSwift/RxSwift/Observables/Dematerialize.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Dematerialize.swift index 8337311..2ccd546 100644 --- a/Pods/RxSwift/RxSwift/Observables/Dematerialize.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Dematerialize.swift @@ -13,12 +13,12 @@ extension ObservableType where Element: EventConvertible { - returns: The dematerialized observable sequence. */ public func dematerialize() -> Observable { - return Dematerialize(source: self.asObservable()) + Dematerialize(source: self.asObservable()) } } -fileprivate final class DematerializeSink: Sink, ObserverType where Observer.Element == T.Element { +private final class DematerializeSink: Sink, ObserverType where Observer.Element == T.Element { fileprivate func on(_ event: Event) { switch event { case .next(let element): @@ -37,15 +37,15 @@ fileprivate final class DematerializeSink: Producer { - private let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == T.Element { let sink = DematerializeSink(observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/DistinctUntilChanged.swift b/Example/Pods/RxSwift/RxSwift/Observables/DistinctUntilChanged.swift similarity index 74% rename from Pods/RxSwift/RxSwift/Observables/DistinctUntilChanged.swift rename to Example/Pods/RxSwift/RxSwift/Observables/DistinctUntilChanged.swift index 5bf38d6..c127b5a 100644 --- a/Pods/RxSwift/RxSwift/Observables/DistinctUntilChanged.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/DistinctUntilChanged.swift @@ -17,7 +17,7 @@ extension ObservableType where Element: Equatable { */ public func distinctUntilChanged() -> Observable { - return self.distinctUntilChanged({ $0 }, comparer: { ($0 == $1) }) + self.distinctUntilChanged({ $0 }, comparer: { ($0 == $1) }) } } @@ -32,7 +32,7 @@ extension ObservableType { */ public func distinctUntilChanged(_ keySelector: @escaping (Element) throws -> Key) -> Observable { - return self.distinctUntilChanged(keySelector, comparer: { $0 == $1 }) + self.distinctUntilChanged(keySelector, comparer: { $0 == $1 }) } /** @@ -45,7 +45,7 @@ extension ObservableType { */ public func distinctUntilChanged(_ comparer: @escaping (Element, Element) throws -> Bool) -> Observable { - return self.distinctUntilChanged({ $0 }, comparer: comparer) + self.distinctUntilChanged({ $0 }, comparer: comparer) } /** @@ -61,16 +61,28 @@ extension ObservableType { -> Observable { return DistinctUntilChanged(source: self.asObservable(), selector: keySelector, comparer: comparer) } + + /** + Returns an observable sequence that contains only contiguous elements with distinct values in the provided key path on each object. + + - seealso: [distinct operator on reactivex.io](http://reactivex.io/documentation/operators/distinct.html) + + - returns: An observable sequence only containing the distinct contiguous elements, based on equality operator on the provided key path + */ + public func distinctUntilChanged(at keyPath: KeyPath) -> + Observable { + self.distinctUntilChanged { $0[keyPath: keyPath] == $1[keyPath: keyPath] } + } } final private class DistinctUntilChangedSink: Sink, ObserverType { typealias Element = Observer.Element - private let _parent: DistinctUntilChanged - private var _currentKey: Key? + private let parent: DistinctUntilChanged + private var currentKey: Key? init(parent: DistinctUntilChanged, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -78,17 +90,17 @@ final private class DistinctUntilChangedSink: Sink< switch event { case .next(let value): do { - let key = try self._parent._selector(value) + let key = try self.parent.selector(value) var areEqual = false - if let currentKey = self._currentKey { - areEqual = try self._parent._comparer(currentKey, key) + if let currentKey = self.currentKey { + areEqual = try self.parent.comparer(currentKey, key) } if areEqual { return } - self._currentKey = key + self.currentKey = key self.forwardOn(event) } @@ -107,19 +119,19 @@ final private class DistinctUntilChanged: Producer { typealias KeySelector = (Element) throws -> Key typealias EqualityComparer = (Key, Key) throws -> Bool - fileprivate let _source: Observable - fileprivate let _selector: KeySelector - fileprivate let _comparer: EqualityComparer + private let source: Observable + fileprivate let selector: KeySelector + fileprivate let comparer: EqualityComparer init(source: Observable, selector: @escaping KeySelector, comparer: @escaping EqualityComparer) { - self._source = source - self._selector = selector - self._comparer = comparer + self.source = source + self.selector = selector + self.comparer = comparer } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = DistinctUntilChangedSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Do.swift b/Example/Pods/RxSwift/RxSwift/Observables/Do.swift similarity index 79% rename from Pods/RxSwift/RxSwift/Observables/Do.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Do.swift index 8f0c228..3c8c68b 100644 --- a/Pods/RxSwift/RxSwift/Observables/Do.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Do.swift @@ -52,20 +52,20 @@ final private class DoSink: Sink, ObserverType typealias EventHandler = (Event) throws -> Void typealias AfterEventHandler = (Event) throws -> Void - private let _eventHandler: EventHandler - private let _afterEventHandler: AfterEventHandler + private let eventHandler: EventHandler + private let afterEventHandler: AfterEventHandler init(eventHandler: @escaping EventHandler, afterEventHandler: @escaping AfterEventHandler, observer: Observer, cancel: Cancelable) { - self._eventHandler = eventHandler - self._afterEventHandler = afterEventHandler + self.eventHandler = eventHandler + self.afterEventHandler = afterEventHandler super.init(observer: observer, cancel: cancel) } func on(_ event: Event) { do { - try self._eventHandler(event) + try self.eventHandler(event) self.forwardOn(event) - try self._afterEventHandler(event) + try self.afterEventHandler(event) if event.isStopEvent { self.dispose() } @@ -81,28 +81,28 @@ final private class Do: Producer { typealias EventHandler = (Event) throws -> Void typealias AfterEventHandler = (Event) throws -> Void - fileprivate let _source: Observable - fileprivate let _eventHandler: EventHandler - fileprivate let _afterEventHandler: AfterEventHandler - fileprivate let _onSubscribe: (() -> Void)? - fileprivate let _onSubscribed: (() -> Void)? - fileprivate let _onDispose: (() -> Void)? + private let source: Observable + private let eventHandler: EventHandler + private let afterEventHandler: AfterEventHandler + private let onSubscribe: (() -> Void)? + private let onSubscribed: (() -> Void)? + private let onDispose: (() -> Void)? init(source: Observable, eventHandler: @escaping EventHandler, afterEventHandler: @escaping AfterEventHandler, onSubscribe: (() -> Void)?, onSubscribed: (() -> Void)?, onDispose: (() -> Void)?) { - self._source = source - self._eventHandler = eventHandler - self._afterEventHandler = afterEventHandler - self._onSubscribe = onSubscribe - self._onSubscribed = onSubscribed - self._onDispose = onDispose + self.source = source + self.eventHandler = eventHandler + self.afterEventHandler = afterEventHandler + self.onSubscribe = onSubscribe + self.onSubscribed = onSubscribed + self.onDispose = onDispose } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { - self._onSubscribe?() - let sink = DoSink(eventHandler: self._eventHandler, afterEventHandler: self._afterEventHandler, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) - self._onSubscribed?() - let onDispose = self._onDispose + self.onSubscribe?() + let sink = DoSink(eventHandler: self.eventHandler, afterEventHandler: self.afterEventHandler, observer: observer, cancel: cancel) + let subscription = self.source.subscribe(sink) + self.onSubscribed?() + let onDispose = self.onDispose let allSubscriptions = Disposables.create { subscription.dispose() onDispose?() diff --git a/Pods/RxSwift/RxSwift/Observables/ElementAt.swift b/Example/Pods/RxSwift/RxSwift/Observables/ElementAt.swift similarity index 67% rename from Pods/RxSwift/RxSwift/Observables/ElementAt.swift rename to Example/Pods/RxSwift/RxSwift/Observables/ElementAt.swift index f8750f0..3f09c70 100644 --- a/Pods/RxSwift/RxSwift/Observables/ElementAt.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/ElementAt.swift @@ -7,7 +7,6 @@ // extension ObservableType { - /** Returns a sequence emitting only element _n_ emitted by an Observable @@ -16,9 +15,23 @@ extension ObservableType { - parameter index: The index of the required element (starting from 0). - returns: An observable sequence that emits the desired element as its own sole emission. */ + @available(*, deprecated, renamed: "element(at:)") public func elementAt(_ index: Int) -> Observable { - return ElementAt(source: self.asObservable(), index: index, throwOnEmpty: true) + element(at: index) + } + + /** + Returns a sequence emitting only element _n_ emitted by an Observable + + - seealso: [elementAt operator on reactivex.io](http://reactivex.io/documentation/operators/elementat.html) + + - parameter index: The index of the required element (starting from 0). + - returns: An observable sequence that emits the desired element as its own sole emission. + */ + public func element(at index: Int) + -> Observable { + ElementAt(source: self.asObservable(), index: index, throwOnEmpty: true) } } @@ -26,12 +39,12 @@ final private class ElementAtSink: Sink, Obser typealias SourceType = Observer.Element typealias Parent = ElementAt - let _parent: Parent - var _i: Int + let parent: Parent + var i: Int init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._i = parent._index + self.parent = parent + self.i = parent.index super.init(observer: observer, cancel: cancel) } @@ -40,14 +53,14 @@ final private class ElementAtSink: Sink, Obser switch event { case .next: - if self._i == 0 { + if self.i == 0 { self.forwardOn(event) self.forwardOn(.completed) self.dispose() } do { - _ = try decrementChecked(&self._i) + _ = try decrementChecked(&self.i) } catch let e { self.forwardOn(.error(e)) self.dispose() @@ -58,7 +71,7 @@ final private class ElementAtSink: Sink, Obser self.forwardOn(.error(e)) self.dispose() case .completed: - if self._parent._throwOnEmpty { + if self.parent.throwOnEmpty { self.forwardOn(.error(RxError.argumentOutOfRange)) } else { self.forwardOn(.completed) @@ -70,23 +83,23 @@ final private class ElementAtSink: Sink, Obser } final private class ElementAt: Producer { - let _source: Observable - let _throwOnEmpty: Bool - let _index: Int + let source: Observable + let throwOnEmpty: Bool + let index: Int init(source: Observable, index: Int, throwOnEmpty: Bool) { if index < 0 { rxFatalError("index can't be negative") } - self._source = source - self._index = index - self._throwOnEmpty = throwOnEmpty + self.source = source + self.index = index + self.throwOnEmpty = throwOnEmpty } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == SourceType { let sink = ElementAtSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Empty.swift b/Example/Pods/RxSwift/RxSwift/Observables/Empty.swift similarity index 95% rename from Pods/RxSwift/RxSwift/Observables/Empty.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Empty.swift index 4ea2995..9ca5965 100644 --- a/Pods/RxSwift/RxSwift/Observables/Empty.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Empty.swift @@ -15,7 +15,7 @@ extension ObservableType { - returns: An observable sequence with no elements. */ public static func empty() -> Observable { - return EmptyProducer() + EmptyProducer() } } diff --git a/Pods/RxSwift/RxSwift/Observables/Enumerated.swift b/Example/Pods/RxSwift/RxSwift/Observables/Enumerated.swift similarity index 90% rename from Pods/RxSwift/RxSwift/Observables/Enumerated.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Enumerated.swift index bd92381..ef8a0ff 100644 --- a/Pods/RxSwift/RxSwift/Observables/Enumerated.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Enumerated.swift @@ -17,7 +17,7 @@ extension ObservableType { */ public func enumerated() -> Observable<(index: Int, element: Element)> { - return Enumerated(source: self.asObservable()) + Enumerated(source: self.asObservable()) } } @@ -47,15 +47,15 @@ final private class EnumeratedSink: Sink: Producer<(index: Int, element: Element)> { - private let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == (index: Int, element: Element) { let sink = EnumeratedSink(observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Error.swift b/Example/Pods/RxSwift/RxSwift/Observables/Error.swift similarity index 84% rename from Pods/RxSwift/RxSwift/Observables/Error.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Error.swift index 530fe3e..2e722d6 100644 --- a/Pods/RxSwift/RxSwift/Observables/Error.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Error.swift @@ -15,19 +15,19 @@ extension ObservableType { - returns: The observable sequence that terminates with specified error. */ public static func error(_ error: Swift.Error) -> Observable { - return ErrorProducer(error: error) + ErrorProducer(error: error) } } final private class ErrorProducer: Producer { - private let _error: Swift.Error + private let error: Swift.Error init(error: Swift.Error) { - self._error = error + self.error = error } override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - observer.on(.error(self._error)) + observer.on(.error(self.error)) return Disposables.create() } } diff --git a/Pods/RxSwift/RxSwift/Observables/Filter.swift b/Example/Pods/RxSwift/RxSwift/Observables/Filter.swift similarity index 77% rename from Pods/RxSwift/RxSwift/Observables/Filter.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Filter.swift index 5f787d6..61d3ce7 100644 --- a/Pods/RxSwift/RxSwift/Observables/Filter.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Filter.swift @@ -18,12 +18,11 @@ extension ObservableType { */ public func filter(_ predicate: @escaping (Element) throws -> Bool) -> Observable { - return Filter(source: self.asObservable(), predicate: predicate) + Filter(source: self.asObservable(), predicate: predicate) } } extension ObservableType { - /** Skips elements and completes (or errors) when the observable sequence completes (or errors). Equivalent to filter that always returns false. @@ -32,11 +31,8 @@ extension ObservableType { - returns: An observable sequence that skips all elements of the source sequence. */ public func ignoreElements() - -> Completable { - return self.flatMap { _ in - return Observable.empty() - } - .asCompletable() + -> Observable { + self.flatMap { _ in Observable.empty() } } } @@ -44,10 +40,10 @@ final private class FilterSink: Sink, Observer typealias Predicate = (Element) throws -> Bool typealias Element = Observer.Element - private let _predicate: Predicate + private let predicate: Predicate init(predicate: @escaping Predicate, observer: Observer, cancel: Cancelable) { - self._predicate = predicate + self.predicate = predicate super.init(observer: observer, cancel: cancel) } @@ -55,7 +51,7 @@ final private class FilterSink: Sink, Observer switch event { case .next(let value): do { - let satisfies = try self._predicate(value) + let satisfies = try self.predicate(value) if satisfies { self.forwardOn(.next(value)) } @@ -74,17 +70,17 @@ final private class FilterSink: Sink, Observer final private class Filter: Producer { typealias Predicate = (Element) throws -> Bool - private let _source: Observable - private let _predicate: Predicate + private let source: Observable + private let predicate: Predicate init(source: Observable, predicate: @escaping Predicate) { - self._source = source - self._predicate = predicate + self.source = source + self.predicate = predicate } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { - let sink = FilterSink(predicate: self._predicate, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let sink = FilterSink(predicate: self.predicate, observer: observer, cancel: cancel) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/First.swift b/Example/Pods/RxSwift/RxSwift/Observables/First.swift similarity index 79% rename from Pods/RxSwift/RxSwift/Observables/First.swift rename to Example/Pods/RxSwift/RxSwift/Observables/First.swift index 4c56223..0014114 100644 --- a/Pods/RxSwift/RxSwift/Observables/First.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/First.swift @@ -6,7 +6,7 @@ // Copyright © 2017 Krunoslav Zaher. All rights reserved. // -fileprivate final class FirstSink : Sink, ObserverType where Observer.Element == Element? { +private final class FirstSink : Sink, ObserverType where Observer.Element == Element? { typealias Parent = First func on(_ event: Event) { @@ -27,15 +27,15 @@ fileprivate final class FirstSink : Sink: Producer { - fileprivate let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element? { let sink = FirstSink(observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Generate.swift b/Example/Pods/RxSwift/RxSwift/Observables/Generate.swift similarity index 70% rename from Pods/RxSwift/RxSwift/Observables/Generate.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Generate.swift index 5c9d0c1..7b924b3 100644 --- a/Pods/RxSwift/RxSwift/Observables/Generate.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Generate.swift @@ -20,32 +20,32 @@ extension ObservableType { - returns: The generated sequence. */ public static func generate(initialState: Element, condition: @escaping (Element) throws -> Bool, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance, iterate: @escaping (Element) throws -> Element) -> Observable { - return Generate(initialState: initialState, condition: condition, iterate: iterate, resultSelector: { $0 }, scheduler: scheduler) + Generate(initialState: initialState, condition: condition, iterate: iterate, resultSelector: { $0 }, scheduler: scheduler) } } final private class GenerateSink: Sink { typealias Parent = Generate - private let _parent: Parent + private let parent: Parent - private var _state: Sequence + private var state: Sequence init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._state = parent._initialState + self.parent = parent + self.state = parent.initialState super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - return self._parent._scheduler.scheduleRecursive(true) { isFirst, recurse -> Void in + return self.parent.scheduler.scheduleRecursive(true) { isFirst, recurse -> Void in do { if !isFirst { - self._state = try self._parent._iterate(self._state) + self.state = try self.parent.iterate(self.state) } - if try self._parent._condition(self._state) { - let result = try self._parent._resultSelector(self._state) + if try self.parent.condition(self.state) { + let result = try self.parent.resultSelector(self.state) self.forwardOn(.next(result)) recurse(false) @@ -64,18 +64,18 @@ final private class GenerateSink: Sink: Producer { - fileprivate let _initialState: Sequence - fileprivate let _condition: (Sequence) throws -> Bool - fileprivate let _iterate: (Sequence) throws -> Sequence - fileprivate let _resultSelector: (Sequence) throws -> Element - fileprivate let _scheduler: ImmediateSchedulerType + fileprivate let initialState: Sequence + fileprivate let condition: (Sequence) throws -> Bool + fileprivate let iterate: (Sequence) throws -> Sequence + fileprivate let resultSelector: (Sequence) throws -> Element + fileprivate let scheduler: ImmediateSchedulerType init(initialState: Sequence, condition: @escaping (Sequence) throws -> Bool, iterate: @escaping (Sequence) throws -> Sequence, resultSelector: @escaping (Sequence) throws -> Element, scheduler: ImmediateSchedulerType) { - self._initialState = initialState - self._condition = condition - self._iterate = iterate - self._resultSelector = resultSelector - self._scheduler = scheduler + self.initialState = initialState + self.condition = condition + self.iterate = iterate + self.resultSelector = resultSelector + self.scheduler = scheduler super.init() } diff --git a/Pods/RxSwift/RxSwift/Observables/GroupBy.swift b/Example/Pods/RxSwift/RxSwift/Observables/GroupBy.swift similarity index 71% rename from Pods/RxSwift/RxSwift/Observables/GroupBy.swift rename to Example/Pods/RxSwift/RxSwift/Observables/GroupBy.swift index 6ae101c..88cbda7 100644 --- a/Pods/RxSwift/RxSwift/Observables/GroupBy.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/GroupBy.swift @@ -17,22 +17,22 @@ extension ObservableType { */ public func groupBy(keySelector: @escaping (Element) throws -> Key) -> Observable> { - return GroupBy(source: self.asObservable(), selector: keySelector) + GroupBy(source: self.asObservable(), selector: keySelector) } } final private class GroupedObservableImpl: Observable { - private var _subject: PublishSubject - private var _refCount: RefCountDisposable + private var subject: PublishSubject + private var refCount: RefCountDisposable init(subject: PublishSubject, refCount: RefCountDisposable) { - self._subject = subject - self._refCount = refCount + self.subject = subject + self.refCount = refCount } override public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - let release = self._refCount.retain() - let subscription = self._subject.subscribe(observer) + let release = self.refCount.retain() + let subscription = self.subject.subscribe(observer) return Disposables.create(release, subscription) } } @@ -44,35 +44,35 @@ final private class GroupBySink typealias ResultType = Observer.Element typealias Parent = GroupBy - private let _parent: Parent - private let _subscription = SingleAssignmentDisposable() - private var _refCountDisposable: RefCountDisposable! - private var _groupedSubjectTable: [Key: PublishSubject] + private let parent: Parent + private let subscription = SingleAssignmentDisposable() + private var refCountDisposable: RefCountDisposable! + private var groupedSubjectTable: [Key: PublishSubject] init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._groupedSubjectTable = [Key: PublishSubject]() + self.parent = parent + self.groupedSubjectTable = [Key: PublishSubject]() super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - self._refCountDisposable = RefCountDisposable(disposable: self._subscription) + self.refCountDisposable = RefCountDisposable(disposable: self.subscription) - self._subscription.setDisposable(self._parent._source.subscribe(self)) + self.subscription.setDisposable(self.parent.source.subscribe(self)) - return self._refCountDisposable + return self.refCountDisposable } private func onGroupEvent(key: Key, value: Element) { - if let writer = self._groupedSubjectTable[key] { + if let writer = self.groupedSubjectTable[key] { writer.on(.next(value)) } else { let writer = PublishSubject() - self._groupedSubjectTable[key] = writer + self.groupedSubjectTable[key] = writer let group = GroupedObservable( key: key, - source: GroupedObservableImpl(subject: writer, refCount: _refCountDisposable) + source: GroupedObservableImpl(subject: writer, refCount: refCountDisposable) ) self.forwardOn(.next(group)) @@ -84,7 +84,7 @@ final private class GroupBySink switch event { case let .next(value): do { - let groupKey = try self._parent._selector(value) + let groupKey = try self.parent.selector(value) self.onGroupEvent(key: groupKey, value: value) } catch let e { @@ -96,7 +96,7 @@ final private class GroupBySink case .completed: self.forwardOnGroups(event: .completed) self.forwardOn(.completed) - self._subscription.dispose() + self.subscription.dispose() self.dispose() } } @@ -104,12 +104,12 @@ final private class GroupBySink final func error(_ error: Swift.Error) { self.forwardOnGroups(event: .error(error)) self.forwardOn(.error(error)) - self._subscription.dispose() + self.subscription.dispose() self.dispose() } final func forwardOnGroups(event: Event) { - for writer in self._groupedSubjectTable.values { + for writer in self.groupedSubjectTable.values { writer.on(event) } } @@ -118,12 +118,12 @@ final private class GroupBySink final private class GroupBy: Producer> { typealias KeySelector = (Element) throws -> Key - fileprivate let _source: Observable - fileprivate let _selector: KeySelector + fileprivate let source: Observable + fileprivate let selector: KeySelector init(source: Observable, selector: @escaping KeySelector) { - self._source = source - self._selector = selector + self.source = source + self.selector = selector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == GroupedObservable { diff --git a/Pods/RxSwift/RxSwift/Observables/Just.swift b/Example/Pods/RxSwift/RxSwift/Observables/Just.swift similarity index 81% rename from Pods/RxSwift/RxSwift/Observables/Just.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Just.swift index df4f302..9349083 100644 --- a/Pods/RxSwift/RxSwift/Observables/Just.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Just.swift @@ -16,7 +16,7 @@ extension ObservableType { - returns: An observable sequence containing the single specified element. */ public static func just(_ element: Element) -> Observable { - return Just(element: element) + Just(element: element) } /** @@ -29,23 +29,23 @@ extension ObservableType { - returns: An observable sequence containing the single specified element. */ public static func just(_ element: Element, scheduler: ImmediateSchedulerType) -> Observable { - return JustScheduled(element: element, scheduler: scheduler) + JustScheduled(element: element, scheduler: scheduler) } } final private class JustScheduledSink: Sink { typealias Parent = JustScheduled - private let _parent: Parent + private let parent: Parent init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - let scheduler = self._parent._scheduler - return scheduler.schedule(self._parent._element) { element in + let scheduler = self.parent.scheduler + return scheduler.schedule(self.parent.element) { element in self.forwardOn(.next(element)) return scheduler.schedule(()) { _ in self.forwardOn(.completed) @@ -57,12 +57,12 @@ final private class JustScheduledSink: Sink { } final private class JustScheduled: Producer { - fileprivate let _scheduler: ImmediateSchedulerType - fileprivate let _element: Element + fileprivate let scheduler: ImmediateSchedulerType + fileprivate let element: Element init(element: Element, scheduler: ImmediateSchedulerType) { - self._scheduler = scheduler - self._element = element + self.scheduler = scheduler + self.element = element } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { @@ -73,14 +73,14 @@ final private class JustScheduled: Producer { } final private class Just: Producer { - private let _element: Element + private let element: Element init(element: Element) { - self._element = element + self.element = element } override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - observer.on(.next(self._element)) + observer.on(.next(self.element)) observer.on(.completed) return Disposables.create() } diff --git a/Pods/RxSwift/RxSwift/Observables/Map.swift b/Example/Pods/RxSwift/RxSwift/Observables/Map.swift similarity index 58% rename from Pods/RxSwift/RxSwift/Observables/Map.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Map.swift index 315f375..0691273 100644 --- a/Pods/RxSwift/RxSwift/Observables/Map.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Map.swift @@ -19,7 +19,7 @@ extension ObservableType { */ public func map(_ transform: @escaping (Element) throws -> Result) -> Observable { - return self.asObservable().composeMap(transform) + Map(source: self.asObservable(), transform: transform) } } @@ -29,10 +29,10 @@ final private class MapSink: Sink, typealias ResultType = Observer.Element typealias Element = SourceType - private let _transform: Transform + private let transform: Transform init(transform: @escaping Transform, observer: Observer, cancel: Cancelable) { - self._transform = transform + self.transform = transform super.init(observer: observer, cancel: cancel) } @@ -40,7 +40,7 @@ final private class MapSink: Sink, switch event { case .next(let element): do { - let mappedElement = try self._transform(element) + let mappedElement = try self.transform(element) self.forwardOn(.next(mappedElement)) } catch let e { @@ -57,52 +57,21 @@ final private class MapSink: Sink, } } -#if TRACE_RESOURCES - fileprivate let _numberOfMapOperators = AtomicInt(0) - extension Resources { - public static var numberOfMapOperators: Int32 { - return load(_numberOfMapOperators) - } - } -#endif - -internal func _map(source: Observable, transform: @escaping (Element) throws -> Result) -> Observable { - return Map(source: source, transform: transform) -} - final private class Map: Producer { typealias Transform = (SourceType) throws -> ResultType - private let _source: Observable + private let source: Observable - private let _transform: Transform + private let transform: Transform init(source: Observable, transform: @escaping Transform) { - self._source = source - self._transform = transform - -#if TRACE_RESOURCES - _ = increment(_numberOfMapOperators) -#endif - } - - override func composeMap(_ selector: @escaping (ResultType) throws -> Result) -> Observable { - let originalSelector = self._transform - return Map(source: self._source, transform: { (s: SourceType) throws -> Result in - let r: ResultType = try originalSelector(s) - return try selector(r) - }) + self.source = source + self.transform = transform } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == ResultType { - let sink = MapSink(transform: self._transform, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let sink = MapSink(transform: self.transform, observer: observer, cancel: cancel) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } - - #if TRACE_RESOURCES - deinit { - _ = decrement(_numberOfMapOperators) - } - #endif } diff --git a/Pods/RxSwift/RxSwift/Observables/Materialize.swift b/Example/Pods/RxSwift/RxSwift/Observables/Materialize.swift similarity index 79% rename from Pods/RxSwift/RxSwift/Observables/Materialize.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Materialize.swift index e035e96..e2577be 100644 --- a/Pods/RxSwift/RxSwift/Observables/Materialize.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Materialize.swift @@ -13,11 +13,11 @@ extension ObservableType { - returns: An observable sequence that wraps events in an Event. The returned Observable never errors, but it does complete after observing all of the events of the underlying Observable. */ public func materialize() -> Observable> { - return Materialize(source: self.asObservable()) + Materialize(source: self.asObservable()) } } -fileprivate final class MaterializeSink: Sink, ObserverType where Observer.Element == Event { +private final class MaterializeSink: Sink, ObserverType where Observer.Element == Event { func on(_ event: Event) { self.forwardOn(.next(event)) @@ -29,15 +29,15 @@ fileprivate final class MaterializeSink: Sink: Producer> { - private let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = MaterializeSink(observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } diff --git a/Pods/RxSwift/RxSwift/Observables/Merge.swift b/Example/Pods/RxSwift/RxSwift/Observables/Merge.swift similarity index 68% rename from Pods/RxSwift/RxSwift/Observables/Merge.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Merge.swift index 3bc7943..51a6462 100644 --- a/Pods/RxSwift/RxSwift/Observables/Merge.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Merge.swift @@ -40,7 +40,7 @@ extension ObservableType { } } -extension ObservableType where Element : ObservableConvertibleType { +extension ObservableType where Element: ObservableConvertibleType { /** Merges elements from all observable sequences in the given enumerable sequence into a single observable sequence. @@ -50,7 +50,7 @@ extension ObservableType where Element : ObservableConvertibleType { - returns: The observable sequence that merges the elements of the observable sequences. */ public func merge() -> Observable { - return Merge(source: self.asObservable()) + Merge(source: self.asObservable()) } /** @@ -63,11 +63,11 @@ extension ObservableType where Element : ObservableConvertibleType { */ public func merge(maxConcurrent: Int) -> Observable { - return MergeLimited(source: self.asObservable(), maxConcurrent: maxConcurrent) + MergeLimited(source: self.asObservable(), maxConcurrent: maxConcurrent) } } -extension ObservableType where Element : ObservableConvertibleType { +extension ObservableType where Element: ObservableConvertibleType { /** Concatenates all inner observable sequences, as long as the previous observable sequence terminated successfully. @@ -77,7 +77,7 @@ extension ObservableType where Element : ObservableConvertibleType { - returns: An observable sequence that contains the elements of each observed inner sequence, in sequential order. */ public func concat() -> Observable { - return self.merge(maxConcurrent: 1) + self.merge(maxConcurrent: 1) } } @@ -91,7 +91,7 @@ extension ObservableType { - returns: The observable sequence that merges the elements of the observable sequences. */ public static func merge(_ sources: Collection) -> Observable where Collection.Element == Observable { - return MergeArray(sources: Array(sources)) + MergeArray(sources: Array(sources)) } /** @@ -103,7 +103,7 @@ extension ObservableType { - returns: The observable sequence that merges the elements of the observable sequences. */ public static func merge(_ sources: [Observable]) -> Observable { - return MergeArray(sources: sources) + MergeArray(sources: sources) } /** @@ -115,7 +115,7 @@ extension ObservableType { - returns: The observable sequence that merges the elements of the observable sequences. */ public static func merge(_ sources: Observable...) -> Observable { - return MergeArray(sources: sources) + MergeArray(sources: sources) } } @@ -132,11 +132,11 @@ extension ObservableType { public func concatMap(_ selector: @escaping (Element) throws -> Source) -> Observable { - return ConcatMap(source: self.asObservable(), selector: selector) + return ConcatMap(source: self.asObservable(), selector: selector) } } -fileprivate final class MergeLimitedSinkIter +private final class MergeLimitedSinkIter : ObserverType , LockOwnerType , SynchronizedOnType where SourceSequence.Element == Observer.Element { @@ -144,65 +144,65 @@ fileprivate final class MergeLimitedSinkIter - private let _parent: Parent - private let _disposeKey: DisposeKey + private let parent: Parent + private let disposeKey: DisposeKey - var _lock: RecursiveLock { - return self._parent._lock + var lock: RecursiveLock { + self.parent.lock } init(parent: Parent, disposeKey: DisposeKey) { - self._parent = parent - self._disposeKey = disposeKey + self.parent = parent + self.disposeKey = disposeKey } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next: - self._parent.forwardOn(event) + self.parent.forwardOn(event) case .error: - self._parent.forwardOn(event) - self._parent.dispose() + self.parent.forwardOn(event) + self.parent.dispose() case .completed: - self._parent._group.remove(for: self._disposeKey) - if let next = self._parent._queue.dequeue() { - self._parent.subscribe(next, group: self._parent._group) + self.parent.group.remove(for: self.disposeKey) + if let next = self.parent.queue.dequeue() { + self.parent.subscribe(next, group: self.parent.group) } else { - self._parent._activeCount -= 1 + self.parent.activeCount -= 1 - if self._parent._stopped && self._parent._activeCount == 0 { - self._parent.forwardOn(.completed) - self._parent.dispose() + if self.parent.stopped && self.parent.activeCount == 0 { + self.parent.forwardOn(.completed) + self.parent.dispose() } } } } } -fileprivate final class ConcatMapSink: MergeLimitedSink where Observer.Element == SourceSequence.Element { +private final class ConcatMapSink: MergeLimitedSink where Observer.Element == SourceSequence.Element { typealias Selector = (SourceElement) throws -> SourceSequence - private let _selector: Selector + private let selector: Selector init(selector: @escaping Selector, observer: Observer, cancel: Cancelable) { - self._selector = selector + self.selector = selector super.init(maxConcurrent: 1, observer: observer, cancel: cancel) } override func performMap(_ element: SourceElement) throws -> SourceSequence { - return try self._selector(element) + try self.selector(element) } } -fileprivate final class MergeLimitedBasicSink: MergeLimitedSink where Observer.Element == SourceSequence.Element { +private final class MergeLimitedBasicSink: MergeLimitedSink where Observer.Element == SourceSequence.Element { override func performMap(_ element: SourceSequence) throws -> SourceSequence { - return element + element } } @@ -211,29 +211,29 @@ private class MergeLimitedSink - let _maxConcurrent: Int + let maxConcurrent: Int - let _lock = RecursiveLock() + let lock = RecursiveLock() // state - var _stopped = false - var _activeCount = 0 - var _queue = QueueType(capacity: 2) + var stopped = false + var activeCount = 0 + var queue = QueueType(capacity: 2) - let _sourceSubscription = SingleAssignmentDisposable() - let _group = CompositeDisposable() + let sourceSubscription = SingleAssignmentDisposable() + let group = CompositeDisposable() init(maxConcurrent: Int, observer: Observer, cancel: Cancelable) { - self._maxConcurrent = maxConcurrent + self.maxConcurrent = maxConcurrent super.init(observer: observer, cancel: cancel) } func run(_ source: Observable) -> Disposable { - _ = self._group.insert(self._sourceSubscription) + _ = self.group.insert(self.sourceSubscription) let disposable = source.subscribe(self) - self._sourceSubscription.setDisposable(disposable) - return self._group + self.sourceSubscription.setDisposable(disposable) + return self.group } func subscribe(_ innerSource: SourceSequence, group: CompositeDisposable) { @@ -255,16 +255,16 @@ private class MergeLimitedSink SourceSequence? { - self._lock.lock(); defer { self._lock.unlock() } // { + self.lock.performLocked { let subscribe: Bool - if self._activeCount < self._maxConcurrent { - self._activeCount += 1 + if self.activeCount < self.maxConcurrent { + self.activeCount += 1 subscribe = true } else { do { let value = try self.performMap(element) - self._queue.enqueue(value) + self.queue.enqueue(value) } catch { self.forwardOn(.error(error)) self.dispose() @@ -282,125 +282,125 @@ private class MergeLimitedSink) { switch event { case .next(let element): if let sequence = self.nextElementArrived(element: element) { - self.subscribe(sequence, group: self._group) + self.subscribe(sequence, group: self.group) } case .error(let error): - self._lock.lock(); defer { self._lock.unlock() } - - self.forwardOn(.error(error)) - self.dispose() - case .completed: - self._lock.lock(); defer { self._lock.unlock() } - - if self._activeCount == 0 { - self.forwardOn(.completed) + self.lock.performLocked { + self.forwardOn(.error(error)) self.dispose() } - else { - self._sourceSubscription.dispose() - } + case .completed: + self.lock.performLocked { + if self.activeCount == 0 { + self.forwardOn(.completed) + self.dispose() + } + else { + self.sourceSubscription.dispose() + } - self._stopped = true + self.stopped = true + } } } } final private class MergeLimited: Producer { - private let _source: Observable - private let _maxConcurrent: Int + private let source: Observable + private let maxConcurrent: Int init(source: Observable, maxConcurrent: Int) { - self._source = source - self._maxConcurrent = maxConcurrent + self.source = source + self.maxConcurrent = maxConcurrent } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == SourceSequence.Element { - let sink = MergeLimitedBasicSink(maxConcurrent: self._maxConcurrent, observer: observer, cancel: cancel) - let subscription = sink.run(self._source) + let sink = MergeLimitedBasicSink(maxConcurrent: self.maxConcurrent, observer: observer, cancel: cancel) + let subscription = sink.run(self.source) return (sink: sink, subscription: subscription) } } // MARK: Merge -fileprivate final class MergeBasicSink : MergeSink where Observer.Element == Source.Element { +private final class MergeBasicSink : MergeSink where Observer.Element == Source.Element { override func performMap(_ element: Source) throws -> Source { - return element + element } } // MARK: flatMap -fileprivate final class FlatMapSink : MergeSink where Observer.Element == SourceSequence.Element { +private final class FlatMapSink : MergeSink where Observer.Element == SourceSequence.Element { typealias Selector = (SourceElement) throws -> SourceSequence - private let _selector: Selector + private let selector: Selector init(selector: @escaping Selector, observer: Observer, cancel: Cancelable) { - self._selector = selector + self.selector = selector super.init(observer: observer, cancel: cancel) } override func performMap(_ element: SourceElement) throws -> SourceSequence { - return try self._selector(element) + try self.selector(element) } } // MARK: FlatMapFirst -fileprivate final class FlatMapFirstSink : MergeSink where Observer.Element == SourceSequence.Element { +private final class FlatMapFirstSink : MergeSink where Observer.Element == SourceSequence.Element { typealias Selector = (SourceElement) throws -> SourceSequence - private let _selector: Selector + private let selector: Selector override var subscribeNext: Bool { - return self._activeCount == 0 + self.activeCount == 0 } init(selector: @escaping Selector, observer: Observer, cancel: Cancelable) { - self._selector = selector + self.selector = selector super.init(observer: observer, cancel: cancel) } override func performMap(_ element: SourceElement) throws -> SourceSequence { - return try self._selector(element) + try self.selector(element) } } -fileprivate final class MergeSinkIter : ObserverType where Observer.Element == SourceSequence.Element { +private final class MergeSinkIter : ObserverType where Observer.Element == SourceSequence.Element { typealias Parent = MergeSink typealias DisposeKey = CompositeDisposable.DisposeKey typealias Element = Observer.Element - private let _parent: Parent - private let _disposeKey: DisposeKey + private let parent: Parent + private let disposeKey: DisposeKey init(parent: Parent, disposeKey: DisposeKey) { - self._parent = parent - self._disposeKey = disposeKey + self.parent = parent + self.disposeKey = disposeKey } func on(_ event: Event) { - self._parent._lock.lock(); defer { self._parent._lock.unlock() } // lock { + self.parent.lock.performLocked { switch event { case .next(let value): - self._parent.forwardOn(.next(value)) + self.parent.forwardOn(.next(value)) case .error(let error): - self._parent.forwardOn(.error(error)) - self._parent.dispose() + self.parent.forwardOn(.error(error)) + self.parent.dispose() case .completed: - self._parent._group.remove(for: self._disposeKey) - self._parent._activeCount -= 1 - self._parent.checkCompleted() + self.parent.group.remove(for: self.disposeKey) + self.parent.activeCount -= 1 + self.parent.checkCompleted() } - // } + } } } @@ -411,18 +411,18 @@ private class MergeSink SourceSequence? { - self._lock.lock(); defer { self._lock.unlock() } // { + self.lock.performLocked { if !self.subscribeNext { return nil } do { let value = try self.performMap(element) - self._activeCount += 1 + self.activeCount += 1 return value } catch let e { @@ -449,7 +449,7 @@ private class MergeSink) { @@ -459,20 +459,22 @@ private class MergeSink) { let iterDisposable = SingleAssignmentDisposable() - if let disposeKey = self._group.insert(iterDisposable) { + if let disposeKey = self.group.insert(iterDisposable) { let iter = MergeSinkIter(parent: self, disposeKey: disposeKey) let subscription = source.subscribe(iter) iterDisposable.setDisposable(subscription) @@ -480,34 +482,34 @@ private class MergeSink]) -> Disposable { - self._activeCount += sources.count + self.activeCount += sources.count for source in sources { self.subscribeInner(source) } - self._stopped = true + self.stopped = true self.checkCompleted() - return self._group + return self.group } @inline(__always) func checkCompleted() { - if self._stopped && self._activeCount == 0 { + if self.stopped && self.activeCount == 0 { self.forwardOn(.completed) self.dispose() } } func run(_ source: Observable) -> Disposable { - _ = self._group.insert(self._sourceSubscription) + _ = self.group.insert(self.sourceSubscription) let subscription = source.subscribe(self) - self._sourceSubscription.setDisposable(subscription) + self.sourceSubscription.setDisposable(subscription) - return self._group + return self.group } } @@ -516,18 +518,18 @@ private class MergeSink: Producer { typealias Selector = (SourceElement) throws -> SourceSequence - private let _source: Observable + private let source: Observable - private let _selector: Selector + private let selector: Selector init(source: Observable, selector: @escaping Selector) { - self._source = source - self._selector = selector + self.source = source + self.selector = selector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == SourceSequence.Element { - let sink = FlatMapSink(selector: self._selector, observer: observer, cancel: cancel) - let subscription = sink.run(self._source) + let sink = FlatMapSink(selector: self.selector, observer: observer, cancel: cancel) + let subscription = sink.run(self.source) return (sink: sink, subscription: subscription) } } @@ -535,18 +537,18 @@ final private class FlatMap: Producer { typealias Selector = (SourceElement) throws -> SourceSequence - private let _source: Observable + private let source: Observable - private let _selector: Selector + private let selector: Selector init(source: Observable, selector: @escaping Selector) { - self._source = source - self._selector = selector + self.source = source + self.selector = selector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == SourceSequence.Element { - let sink = FlatMapFirstSink(selector: self._selector, observer: observer, cancel: cancel) - let subscription = sink.run(self._source) + let sink = FlatMapFirstSink(selector: self.selector, observer: observer, cancel: cancel) + let subscription = sink.run(self.source) return (sink: sink, subscription: subscription) } } @@ -554,45 +556,45 @@ final private class FlatMapFirst: Producer { typealias Selector = (SourceElement) throws -> SourceSequence - private let _source: Observable - private let _selector: Selector + private let source: Observable + private let selector: Selector init(source: Observable, selector: @escaping Selector) { - self._source = source - self._selector = selector + self.source = source + self.selector = selector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == SourceSequence.Element { - let sink = ConcatMapSink(selector: self._selector, observer: observer, cancel: cancel) - let subscription = sink.run(self._source) + let sink = ConcatMapSink(selector: self.selector, observer: observer, cancel: cancel) + let subscription = sink.run(self.source) return (sink: sink, subscription: subscription) } } final class Merge : Producer { - private let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == SourceSequence.Element { let sink = MergeBasicSink(observer: observer, cancel: cancel) - let subscription = sink.run(self._source) + let subscription = sink.run(self.source) return (sink: sink, subscription: subscription) } } final private class MergeArray: Producer { - private let _sources: [Observable] + private let sources: [Observable] init(sources: [Observable]) { - self._sources = sources + self.sources = sources } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = MergeBasicSink, Observer>(observer: observer, cancel: cancel) - let subscription = sink.run(self._sources) + let subscription = sink.run(self.sources) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Multicast.swift b/Example/Pods/RxSwift/RxSwift/Observables/Multicast.swift similarity index 71% rename from Pods/RxSwift/RxSwift/Observables/Multicast.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Multicast.swift index ca90548..1ebcf02 100644 --- a/Pods/RxSwift/RxSwift/Observables/Multicast.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Multicast.swift @@ -60,7 +60,7 @@ extension ObservableType { - returns: A connectable observable sequence that shares a single subscription to the underlying sequence. */ public func publish() -> ConnectableObservable { - return self.multicast { PublishSubject() } + self.multicast { PublishSubject() } } } @@ -78,7 +78,7 @@ extension ObservableType { */ public func replay(_ bufferSize: Int) -> ConnectableObservable { - return self.multicast { ReplaySubject.create(bufferSize: bufferSize) } + self.multicast { ReplaySubject.create(bufferSize: bufferSize) } } /** @@ -92,7 +92,7 @@ extension ObservableType { */ public func replayAll() -> ConnectableObservable { - return self.multicast { ReplaySubject.createUnbounded() } + self.multicast { ReplaySubject.createUnbounded() } } } @@ -106,7 +106,7 @@ extension ConnectableObservableType { - returns: An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. */ public func refCount() -> Observable { - return RefCount(source: self) + RefCount(source: self) } } @@ -126,7 +126,7 @@ extension ObservableType { */ public func multicast(_ subject: Subject) -> ConnectableObservable where Subject.Observer.Element == Element { - return ConnectableObservableAdapter(source: self.asObservable(), makeSubject: { subject }) + ConnectableObservableAdapter(source: self.asObservable(), makeSubject: { subject }) } /** @@ -143,54 +143,53 @@ extension ObservableType { */ public func multicast(makeSubject: @escaping () -> Subject) -> ConnectableObservable where Subject.Observer.Element == Element { - return ConnectableObservableAdapter(source: self.asObservable(), makeSubject: makeSubject) + ConnectableObservableAdapter(source: self.asObservable(), makeSubject: makeSubject) } } final private class Connection: ObserverType, Disposable { typealias Element = Subject.Observer.Element - private var _lock: RecursiveLock + private var lock: RecursiveLock // state - private var _parent: ConnectableObservableAdapter? - private var _subscription : Disposable? - private var _subjectObserver: Subject.Observer + private var parent: ConnectableObservableAdapter? + private var subscription : Disposable? + private var subjectObserver: Subject.Observer - private let _disposed = AtomicInt(0) + private let disposed = AtomicInt(0) init(parent: ConnectableObservableAdapter, subjectObserver: Subject.Observer, lock: RecursiveLock, subscription: Disposable) { - self._parent = parent - self._subscription = subscription - self._lock = lock - self._subjectObserver = subjectObserver + self.parent = parent + self.subscription = subscription + self.lock = lock + self.subjectObserver = subjectObserver } func on(_ event: Event) { - if isFlagSet(self._disposed, 1) { + if isFlagSet(self.disposed, 1) { return } if event.isStopEvent { self.dispose() } - self._subjectObserver.on(event) + self.subjectObserver.on(event) } func dispose() { - _lock.lock(); defer { _lock.unlock() } // { - fetchOr(self._disposed, 1) - guard let parent = _parent else { + lock.lock(); defer { lock.unlock() } + fetchOr(self.disposed, 1) + guard let parent = self.parent else { return } - if parent._connection === self { - parent._connection = nil - parent._subject = nil + if parent.connection === self { + parent.connection = nil + parent.subject = nil } - self._parent = nil + self.parent = nil - self._subscription?.dispose() - self._subscription = nil - // } + self.subscription?.dispose() + self.subscription = nil } } @@ -198,49 +197,49 @@ final private class ConnectableObservableAdapter : ConnectableObservable { typealias ConnectionType = Connection - fileprivate let _source: Observable - fileprivate let _makeSubject: () -> Subject + private let source: Observable + private let makeSubject: () -> Subject - fileprivate let _lock = RecursiveLock() - fileprivate var _subject: Subject? + fileprivate let lock = RecursiveLock() + fileprivate var subject: Subject? // state - fileprivate var _connection: ConnectionType? + fileprivate var connection: ConnectionType? init(source: Observable, makeSubject: @escaping () -> Subject) { - self._source = source - self._makeSubject = makeSubject - self._subject = nil - self._connection = nil + self.source = source + self.makeSubject = makeSubject + self.subject = nil + self.connection = nil } override func connect() -> Disposable { - return self._lock.calculateLocked { - if let connection = self._connection { + return self.lock.performLocked { + if let connection = self.connection { return connection } let singleAssignmentDisposable = SingleAssignmentDisposable() - let connection = Connection(parent: self, subjectObserver: self.lazySubject.asObserver(), lock: self._lock, subscription: singleAssignmentDisposable) - self._connection = connection - let subscription = self._source.subscribe(connection) + let connection = Connection(parent: self, subjectObserver: self.lazySubject.asObserver(), lock: self.lock, subscription: singleAssignmentDisposable) + self.connection = connection + let subscription = self.source.subscribe(connection) singleAssignmentDisposable.setDisposable(subscription) return connection } } - fileprivate var lazySubject: Subject { - if let subject = self._subject { + private var lazySubject: Subject { + if let subject = self.subject { return subject } - let subject = self._makeSubject() - self._subject = subject + let subject = self.makeSubject() + self.subject = subject return subject } override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Subject.Element { - return self.lazySubject.subscribe(observer) + self.lazySubject.subscribe(observer) } } @@ -250,56 +249,54 @@ final private class RefCountSink - private let _parent: Parent + private let parent: Parent - private var _connectionIdSnapshot: Int64 = -1 + private var connectionIdSnapshot: Int64 = -1 init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - let subscription = self._parent._source.subscribe(self) - self._parent._lock.lock(); defer { self._parent._lock.unlock() } // { + let subscription = self.parent.source.subscribe(self) + self.parent.lock.lock(); defer { self.parent.lock.unlock() } - self._connectionIdSnapshot = self._parent._connectionId + self.connectionIdSnapshot = self.parent.connectionId - if self.disposed { + if self.isDisposed { return Disposables.create() } - if self._parent._count == 0 { - self._parent._count = 1 - self._parent._connectableSubscription = self._parent._source.connect() + if self.parent.count == 0 { + self.parent.count = 1 + self.parent.connectableSubscription = self.parent.source.connect() } else { - self._parent._count += 1 + self.parent.count += 1 } - // } return Disposables.create { subscription.dispose() - self._parent._lock.lock(); defer { self._parent._lock.unlock() } // { - if self._parent._connectionId != self._connectionIdSnapshot { + self.parent.lock.lock(); defer { self.parent.lock.unlock() } + if self.parent.connectionId != self.connectionIdSnapshot { return } - if self._parent._count == 1 { - self._parent._count = 0 - guard let connectableSubscription = self._parent._connectableSubscription else { + if self.parent.count == 1 { + self.parent.count = 0 + guard let connectableSubscription = self.parent.connectableSubscription else { return } connectableSubscription.dispose() - self._parent._connectableSubscription = nil + self.parent.connectableSubscription = nil } - else if self._parent._count > 1 { - self._parent._count -= 1 + else if self.parent.count > 1 { + self.parent.count -= 1 } else { rxFatalError("Something went wrong with RefCount disposing mechanism") } - // } } } @@ -308,16 +305,15 @@ final private class RefCountSink: Producer { - fileprivate let _lock = RecursiveLock() + fileprivate let lock = RecursiveLock() // state - fileprivate var _count = 0 - fileprivate var _connectionId: Int64 = 0 - fileprivate var _connectableSubscription = nil as Disposable? + fileprivate var count = 0 + fileprivate var connectionId: Int64 = 0 + fileprivate var connectableSubscription = nil as Disposable? - fileprivate let _source: ConnectableSource + fileprivate let source: ConnectableSource init(source: ConnectableSource) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) @@ -351,19 +347,19 @@ final private class MulticastSink: typealias ResultType = Element typealias MutlicastType = Multicast - private let _parent: MutlicastType + private let parent: MutlicastType init(parent: MutlicastType, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { do { - let subject = try self._parent._subjectSelector() - let connectable = ConnectableObservableAdapter(source: self._parent._source, makeSubject: { subject }) + let subject = try self.parent.subjectSelector() + let connectable = ConnectableObservableAdapter(source: self.parent.source, makeSubject: { subject }) - let observable = try self._parent._selector(connectable) + let observable = try self.parent.selector(connectable) let subscription = observable.subscribe(self) let connection = connectable.connect() @@ -391,14 +387,14 @@ final private class Multicast: Producer { typealias SubjectSelectorType = () throws -> Subject typealias SelectorType = (Observable) throws -> Observable - fileprivate let _source: Observable - fileprivate let _subjectSelector: SubjectSelectorType - fileprivate let _selector: SelectorType + fileprivate let source: Observable + fileprivate let subjectSelector: SubjectSelectorType + fileprivate let selector: SelectorType init(source: Observable, subjectSelector: @escaping SubjectSelectorType, selector: @escaping SelectorType) { - self._source = source - self._subjectSelector = subjectSelector - self._selector = selector + self.source = source + self.subjectSelector = subjectSelector + self.selector = selector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { diff --git a/Pods/RxSwift/RxSwift/Observables/Never.swift b/Example/Pods/RxSwift/RxSwift/Observables/Never.swift similarity index 91% rename from Pods/RxSwift/RxSwift/Observables/Never.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Never.swift index c56e567..7b456ee 100644 --- a/Pods/RxSwift/RxSwift/Observables/Never.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Never.swift @@ -16,12 +16,12 @@ extension ObservableType { - returns: An observable sequence whose observers will never get called. */ public static func never() -> Observable { - return NeverProducer() + NeverProducer() } } final private class NeverProducer: Producer { override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - return Disposables.create() + Disposables.create() } } diff --git a/Pods/RxSwift/RxSwift/Observables/ObserveOn.swift b/Example/Pods/RxSwift/RxSwift/Observables/ObserveOn.swift similarity index 65% rename from Pods/RxSwift/RxSwift/Observables/ObserveOn.swift rename to Example/Pods/RxSwift/RxSwift/Observables/ObserveOn.swift index 5121150..6b8689e 100644 --- a/Pods/RxSwift/RxSwift/Observables/ObserveOn.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/ObserveOn.swift @@ -7,6 +7,26 @@ // extension ObservableType { + /** + Wraps the source sequence in order to run its observer callbacks on the specified scheduler. + + This only invokes observer callbacks on a `scheduler`. In case the subscription and/or unsubscription + actions have side-effects that require to be run on a scheduler, use `subscribeOn`. + + - seealso: [observeOn operator on reactivex.io](http://reactivex.io/documentation/operators/observeon.html) + + - parameter scheduler: Scheduler to notify observers on. + - returns: The source sequence whose observations happen on the specified scheduler. + */ + public func observe(on scheduler: ImmediateSchedulerType) + -> Observable { + guard let serialScheduler = scheduler as? SerialDispatchQueueScheduler else { + return ObserveOn(source: self.asObservable(), scheduler: scheduler) + } + + return ObserveOnSerialDispatchQueue(source: self.asObservable(), + scheduler: serialScheduler) + } /** Wraps the source sequence in order to run its observer callbacks on the specified scheduler. @@ -19,14 +39,10 @@ extension ObservableType { - parameter scheduler: Scheduler to notify observers on. - returns: The source sequence whose observations happen on the specified scheduler. */ + @available(*, deprecated, renamed: "observe(on:)") public func observeOn(_ scheduler: ImmediateSchedulerType) -> Observable { - if let scheduler = scheduler as? SerialDispatchQueueScheduler { - return ObserveOnSerialDispatchQueue(source: self.asObservable(), scheduler: scheduler) - } - else { - return ObserveOn(source: self.asObservable(), scheduler: scheduler) - } + observe(on: scheduler) } } @@ -66,31 +82,31 @@ enum ObserveOnState : Int32 { final private class ObserveOnSink: ObserverBase { typealias Element = Observer.Element - let _scheduler: ImmediateSchedulerType + let scheduler: ImmediateSchedulerType - var _lock = SpinLock() - let _observer: Observer + var lock = SpinLock() + let observer: Observer // state - var _state = ObserveOnState.stopped - var _queue = Queue>(capacity: 10) + var state = ObserveOnState.stopped + var queue = Queue>(capacity: 10) - let _scheduleDisposable = SerialDisposable() - let _cancel: Cancelable + let scheduleDisposable = SerialDisposable() + let cancel: Cancelable init(scheduler: ImmediateSchedulerType, observer: Observer, cancel: Cancelable) { - self._scheduler = scheduler - self._observer = observer - self._cancel = cancel + self.scheduler = scheduler + self.observer = observer + self.cancel = cancel } override func onCore(_ event: Event) { - let shouldStart = self._lock.calculateLocked { () -> Bool in - self._queue.enqueue(event) + let shouldStart = self.lock.performLocked { () -> Bool in + self.queue.enqueue(event) - switch self._state { + switch self.state { case .stopped: - self._state = .running + self.state = .running return true case .running: return false @@ -98,22 +114,22 @@ final private class ObserveOnSink: ObserverBase Void) { - let (nextEvent, observer) = self._lock.calculateLocked { () -> (Event?, Observer) in - if !self._queue.isEmpty { - return (self._queue.dequeue(), self._observer) + let (nextEvent, observer) = self.lock.performLocked { () -> (Event?, Observer) in + if !self.queue.isEmpty { + return (self.queue.dequeue(), self.observer) } else { - self._state = .stopped - return (nil, self._observer) + self.state = .stopped + return (nil, self.observer) } } - if let nextEvent = nextEvent, !self._cancel.isDisposed { + if let nextEvent = nextEvent, !self.cancel.isDisposed { observer.on(nextEvent) if nextEvent.isStopEvent { self.dispose() @@ -123,35 +139,31 @@ final private class ObserveOnSink: ObserverBase Bool { - self._lock.lock(); defer { self._lock.unlock() } // { - if !self._queue.isEmpty { - return true - } - else { - self._state = .stopped - return false - } - // } + func shouldContinue_synchronized() -> Bool { + self.lock.performLocked { + let isEmpty = self.queue.isEmpty + if isEmpty { self.state = .stopped } + return !isEmpty + } } override func dispose() { super.dispose() - self._cancel.dispose() - self._scheduleDisposable.dispose() + self.cancel.dispose() + self.scheduleDisposable.dispose() } } #if TRACE_RESOURCES - fileprivate let _numberOfSerialDispatchQueueObservables = AtomicInt(0) + private let numberOfSerialDispatchObservables = AtomicInt(0) extension Resources { /** Counts number of `SerialDispatchQueueObservables`. @@ -159,7 +171,7 @@ final private class ObserveOnSink: ObserverBase: Producer { #if TRACE_RESOURCES _ = Resources.incrementTotal() - _ = increment(_numberOfSerialDispatchQueueObservables) + _ = increment(numberOfSerialDispatchObservables) #endif } @@ -225,7 +237,7 @@ final private class ObserveOnSerialDispatchQueue: Producer { #if TRACE_RESOURCES deinit { _ = Resources.decrementTotal() - _ = decrement(_numberOfSerialDispatchQueueObservables) + _ = decrement(numberOfSerialDispatchObservables) } #endif } diff --git a/Pods/RxSwift/RxSwift/Observables/Optional.swift b/Example/Pods/RxSwift/RxSwift/Observables/Optional.swift similarity index 80% rename from Pods/RxSwift/RxSwift/Observables/Optional.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Optional.swift index 9bf5b1c..64f8f1f 100644 --- a/Pods/RxSwift/RxSwift/Observables/Optional.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Optional.swift @@ -16,7 +16,7 @@ extension ObservableType { - returns: An observable sequence containing the wrapped value or not from given optional. */ public static func from(optional: Element?) -> Observable { - return ObservableOptional(optional: optional) + ObservableOptional(optional: optional) } /** @@ -29,7 +29,7 @@ extension ObservableType { - returns: An observable sequence containing the wrapped value or not from given optional. */ public static func from(optional: Element?, scheduler: ImmediateSchedulerType) -> Observable { - return ObservableOptionalScheduled(optional: optional, scheduler: scheduler) + ObservableOptionalScheduled(optional: optional, scheduler: scheduler) } } @@ -37,18 +37,18 @@ final private class ObservableOptionalScheduledSink: Sin typealias Element = Observer.Element typealias Parent = ObservableOptionalScheduled - private let _parent: Parent + private let parent: Parent init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - return self._parent._scheduler.schedule(self._parent._optional) { (optional: Element?) -> Disposable in + return self.parent.scheduler.schedule(self.parent.optional) { (optional: Element?) -> Disposable in if let next = optional { self.forwardOn(.next(next)) - return self._parent._scheduler.schedule(()) { _ in + return self.parent.scheduler.schedule(()) { _ in self.forwardOn(.completed) self.dispose() return Disposables.create() @@ -63,12 +63,12 @@ final private class ObservableOptionalScheduledSink: Sin } final private class ObservableOptionalScheduled: Producer { - fileprivate let _optional: Element? - fileprivate let _scheduler: ImmediateSchedulerType + fileprivate let optional: Element? + fileprivate let scheduler: ImmediateSchedulerType init(optional: Element?, scheduler: ImmediateSchedulerType) { - self._optional = optional - self._scheduler = scheduler + self.optional = optional + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { @@ -79,14 +79,14 @@ final private class ObservableOptionalScheduled: Producer { } final private class ObservableOptional: Producer { - private let _optional: Element? + private let optional: Element? init(optional: Element?) { - self._optional = optional + self.optional = optional } override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - if let element = self._optional { + if let element = self.optional { observer.on(.next(element)) } observer.on(.completed) diff --git a/Pods/RxSwift/RxSwift/Observables/Producer.swift b/Example/Pods/RxSwift/RxSwift/Observables/Producer.swift similarity index 73% rename from Pods/RxSwift/RxSwift/Observables/Producer.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Producer.swift index f78d9a6..e611930 100644 --- a/Pods/RxSwift/RxSwift/Observables/Producer.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Producer.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -class Producer : Observable { +class Producer: Observable { override init() { super.init() } @@ -36,25 +36,25 @@ class Producer : Observable { } } -fileprivate final class SinkDisposer: Cancelable { - fileprivate enum DisposeState: Int32 { +private final class SinkDisposer: Cancelable { + private enum DisposeState: Int32 { case disposed = 1 case sinkAndSubscriptionSet = 2 } - private let _state = AtomicInt(0) - private var _sink: Disposable? - private var _subscription: Disposable? + private let state = AtomicInt(0) + private var sink: Disposable? + private var subscription: Disposable? var isDisposed: Bool { - return isFlagSet(self._state, DisposeState.disposed.rawValue) + isFlagSet(self.state, DisposeState.disposed.rawValue) } func setSinkAndSubscription(sink: Disposable, subscription: Disposable) { - self._sink = sink - self._subscription = subscription + self.sink = sink + self.subscription = subscription - let previousState = fetchOr(self._state, DisposeState.sinkAndSubscriptionSet.rawValue) + let previousState = fetchOr(self.state, DisposeState.sinkAndSubscriptionSet.rawValue) if (previousState & DisposeState.sinkAndSubscriptionSet.rawValue) != 0 { rxFatalError("Sink and subscription were already set") } @@ -62,31 +62,31 @@ fileprivate final class SinkDisposer: Cancelable { if (previousState & DisposeState.disposed.rawValue) != 0 { sink.dispose() subscription.dispose() - self._sink = nil - self._subscription = nil + self.sink = nil + self.subscription = nil } } func dispose() { - let previousState = fetchOr(self._state, DisposeState.disposed.rawValue) + let previousState = fetchOr(self.state, DisposeState.disposed.rawValue) if (previousState & DisposeState.disposed.rawValue) != 0 { return } if (previousState & DisposeState.sinkAndSubscriptionSet.rawValue) != 0 { - guard let sink = self._sink else { + guard let sink = self.sink else { rxFatalError("Sink not set") } - guard let subscription = self._subscription else { + guard let subscription = self.subscription else { rxFatalError("Subscription not set") } sink.dispose() subscription.dispose() - self._sink = nil - self._subscription = nil + self.sink = nil + self.subscription = nil } } } diff --git a/Pods/RxSwift/RxSwift/Observables/Range.swift b/Example/Pods/RxSwift/RxSwift/Observables/Range.swift similarity index 77% rename from Pods/RxSwift/RxSwift/Observables/Range.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Range.swift index f88c999..2453532 100644 --- a/Pods/RxSwift/RxSwift/Observables/Range.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Range.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -extension ObservableType where Element : RxAbstractInteger { +extension ObservableType where Element: RxAbstractInteger { /** Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to generate and send out observer messages. @@ -18,14 +18,14 @@ extension ObservableType where Element : RxAbstractInteger { - returns: An observable sequence that contains a range of sequential integral numbers. */ public static func range(start: Element, count: Element, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { - return RangeProducer(start: start, count: count, scheduler: scheduler) + RangeProducer(start: start, count: count, scheduler: scheduler) } } final private class RangeProducer: Producer { - fileprivate let _start: Element - fileprivate let _count: Element - fileprivate let _scheduler: ImmediateSchedulerType + fileprivate let start: Element + fileprivate let count: Element + fileprivate let scheduler: ImmediateSchedulerType init(start: Element, count: Element, scheduler: ImmediateSchedulerType) { guard count >= 0 else { @@ -36,9 +36,9 @@ final private class RangeProducer: Producer rxFatalError("overflow of count") } - self._start = start - self._count = count - self._scheduler = scheduler + self.start = start + self.count = count + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { @@ -51,17 +51,17 @@ final private class RangeProducer: Producer final private class RangeSink: Sink where Observer.Element: RxAbstractInteger { typealias Parent = RangeProducer - private let _parent: Parent + private let parent: Parent init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - return self._parent._scheduler.scheduleRecursive(0 as Observer.Element) { i, recurse in - if i < self._parent._count { - self.forwardOn(.next(self._parent._start + i)) + return self.parent.scheduler.scheduleRecursive(0 as Observer.Element) { i, recurse in + if i < self.parent.count { + self.forwardOn(.next(self.parent.start + i)) recurse(i + 1) } else { diff --git a/Pods/RxSwift/RxSwift/Observables/Reduce.swift b/Example/Pods/RxSwift/RxSwift/Observables/Reduce.swift similarity index 79% rename from Pods/RxSwift/RxSwift/Observables/Reduce.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Reduce.swift index 7814c6a..d5fab34 100644 --- a/Pods/RxSwift/RxSwift/Observables/Reduce.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Reduce.swift @@ -22,7 +22,7 @@ extension ObservableType { */ public func reduce(_ seed: A, accumulator: @escaping (A, Element) throws -> A, mapResult: @escaping (A) throws -> Result) -> Observable { - return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: mapResult) + Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: mapResult) } /** @@ -38,7 +38,7 @@ extension ObservableType { */ public func reduce(_ seed: A, accumulator: @escaping (A, Element) throws -> A) -> Observable { - return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: { $0 }) + Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: { $0 }) } } @@ -46,12 +46,12 @@ final private class ReduceSink - private let _parent: Parent - private var _accumulation: AccumulateType + private let parent: Parent + private var accumulation: AccumulateType init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._accumulation = parent._seed + self.parent = parent + self.accumulation = parent.seed super.init(observer: observer, cancel: cancel) } @@ -60,7 +60,7 @@ final private class ReduceSink: Producer AccumulateType typealias ResultSelectorType = (AccumulateType) throws -> ResultType - fileprivate let _source: Observable - fileprivate let _seed: AccumulateType - fileprivate let _accumulator: AccumulatorType - fileprivate let _mapResult: ResultSelectorType + private let source: Observable + fileprivate let seed: AccumulateType + fileprivate let accumulator: AccumulatorType + fileprivate let mapResult: ResultSelectorType init(source: Observable, seed: AccumulateType, accumulator: @escaping AccumulatorType, mapResult: @escaping ResultSelectorType) { - self._source = source - self._seed = seed - self._accumulator = accumulator - self._mapResult = mapResult + self.source = source + self.seed = seed + self.accumulator = accumulator + self.mapResult = mapResult } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == ResultType { let sink = ReduceSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Repeat.swift b/Example/Pods/RxSwift/RxSwift/Observables/Repeat.swift similarity index 81% rename from Pods/RxSwift/RxSwift/Observables/Repeat.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Repeat.swift index 4fed45c..69a3ba0 100644 --- a/Pods/RxSwift/RxSwift/Observables/Repeat.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Repeat.swift @@ -17,17 +17,17 @@ extension ObservableType { - returns: An observable sequence that repeats the given element infinitely. */ public static func repeatElement(_ element: Element, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { - return RepeatElement(element: element, scheduler: scheduler) + RepeatElement(element: element, scheduler: scheduler) } } final private class RepeatElement: Producer { - fileprivate let _element: Element - fileprivate let _scheduler: ImmediateSchedulerType + fileprivate let element: Element + fileprivate let scheduler: ImmediateSchedulerType init(element: Element, scheduler: ImmediateSchedulerType) { - self._element = element - self._scheduler = scheduler + self.element = element + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { @@ -41,15 +41,15 @@ final private class RepeatElement: Producer { final private class RepeatElementSink: Sink { typealias Parent = RepeatElement - private let _parent: Parent + private let parent: Parent init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - return self._parent._scheduler.scheduleRecursive(self._parent._element) { e, recurse in + return self.parent.scheduler.scheduleRecursive(self.parent.element) { e, recurse in self.forwardOn(.next(e)) recurse(e) } diff --git a/Pods/RxSwift/RxSwift/Observables/RetryWhen.swift b/Example/Pods/RxSwift/RxSwift/Observables/RetryWhen.swift similarity index 56% rename from Pods/RxSwift/RxSwift/Observables/RetryWhen.swift rename to Example/Pods/RxSwift/RxSwift/Observables/RetryWhen.swift index decd309..52a2709 100644 --- a/Pods/RxSwift/RxSwift/Observables/RetryWhen.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/RetryWhen.swift @@ -7,6 +7,19 @@ // extension ObservableType { + /** + Repeats the source observable sequence on error when the notifier emits a next value. + If the source observable errors and the notifier completes, it will complete the source sequence. + + - seealso: [retry operator on reactivex.io](http://reactivex.io/documentation/operators/retry.html) + + - parameter notificationHandler: A handler that is passed an observable sequence of errors raised by the source observable and returns and observable that either continues, completes or errors. This behavior is then applied to the source observable. + - returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete. + */ + public func retry(when notificationHandler: @escaping (Observable) -> TriggerObservable) + -> Observable { + RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) + } /** Repeats the source observable sequence on error when the notifier emits a next value. @@ -17,9 +30,24 @@ extension ObservableType { - parameter notificationHandler: A handler that is passed an observable sequence of errors raised by the source observable and returns and observable that either continues, completes or errors. This behavior is then applied to the source observable. - returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete. */ + @available(*, deprecated, renamed: "retry(when:)") public func retryWhen(_ notificationHandler: @escaping (Observable) -> TriggerObservable) -> Observable { - return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) + retry(when: notificationHandler) + } + + /** + Repeats the source observable sequence on error when the notifier emits a next value. + If the source observable errors and the notifier completes, it will complete the source sequence. + + - seealso: [retry operator on reactivex.io](http://reactivex.io/documentation/operators/retry.html) + + - parameter notificationHandler: A handler that is passed an observable sequence of errors raised by the source observable and returns and observable that either continues, completes or errors. This behavior is then applied to the source observable. + - returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete. + */ + public func retry(when notificationHandler: @escaping (Observable) -> TriggerObservable) + -> Observable { + RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) } /** @@ -31,9 +59,10 @@ extension ObservableType { - parameter notificationHandler: A handler that is passed an observable sequence of errors raised by the source observable and returns and observable that either continues, completes or errors. This behavior is then applied to the source observable. - returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete. */ + @available(*, deprecated, renamed: "retry(when:)") public func retryWhen(_ notificationHandler: @escaping (Observable) -> TriggerObservable) -> Observable { - return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) + RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) } } @@ -43,23 +72,23 @@ final private class RetryTriggerSink - fileprivate let _parent: Parent + private let parent: Parent init(parent: Parent) { - self._parent = parent + self.parent = parent } func on(_ event: Event) { switch event { case .next: - self._parent._parent._lastError = nil - self._parent._parent.schedule(.moveNext) + self.parent.parent.lastError = nil + self.parent.parent.schedule(.moveNext) case .error(let e): - self._parent._parent.forwardOn(.error(e)) - self._parent._parent.dispose() + self.parent.parent.forwardOn(.error(e)) + self.parent.parent.dispose() case .completed: - self._parent._parent.forwardOn(.completed) - self._parent._parent.dispose() + self.parent.parent.forwardOn(.completed) + self.parent.parent.dispose() } } } @@ -70,43 +99,43 @@ final private class RetryWhenSequenceSinkIter - fileprivate let _parent: Parent - fileprivate let _errorHandlerSubscription = SingleAssignmentDisposable() - fileprivate let _subscription: Disposable + fileprivate let parent: Parent + private let errorHandlerSubscription = SingleAssignmentDisposable() + private let subscription: Disposable init(parent: Parent, subscription: Disposable) { - self._parent = parent - self._subscription = subscription + self.parent = parent + self.subscription = subscription } func on(_ event: Event) { switch event { case .next: - self._parent.forwardOn(event) + self.parent.forwardOn(event) case .error(let error): - self._parent._lastError = error + self.parent.lastError = error if let failedWith = error as? Error { // dispose current subscription - self._subscription.dispose() + self.subscription.dispose() - let errorHandlerSubscription = self._parent._notifier.subscribe(RetryTriggerSink(parent: self)) - self._errorHandlerSubscription.setDisposable(errorHandlerSubscription) - self._parent._errorSubject.on(.next(failedWith)) + let errorHandlerSubscription = self.parent.notifier.subscribe(RetryTriggerSink(parent: self)) + self.errorHandlerSubscription.setDisposable(errorHandlerSubscription) + self.parent.errorSubject.on(.next(failedWith)) } else { - self._parent.forwardOn(.error(error)) - self._parent.dispose() + self.parent.forwardOn(.error(error)) + self.parent.dispose() } case .completed: - self._parent.forwardOn(event) - self._parent.dispose() + self.parent.forwardOn(event) + self.parent.dispose() } } final func dispose() { - self._subscription.dispose() - self._errorHandlerSubscription.dispose() + self.subscription.dispose() + self.errorHandlerSubscription.dispose() } } @@ -115,25 +144,25 @@ final private class RetryWhenSequenceSink - let _lock = RecursiveLock() + let lock = RecursiveLock() - fileprivate let _parent: Parent + private let parent: Parent - fileprivate var _lastError: Swift.Error? - fileprivate let _errorSubject = PublishSubject() - fileprivate let _handler: Observable - fileprivate let _notifier = PublishSubject() + fileprivate var lastError: Swift.Error? + fileprivate let errorSubject = PublishSubject() + private let handler: Observable + fileprivate let notifier = PublishSubject() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._handler = parent._notificationHandler(self._errorSubject).asObservable() + self.parent = parent + self.handler = parent.notificationHandler(self.errorSubject).asObservable() super.init(observer: observer, cancel: cancel) } override func done() { - if let lastError = self._lastError { + if let lastError = self.lastError { self.forwardOn(.error(lastError)) - self._lastError = nil + self.lastError = nil } else { self.forwardOn(.completed) @@ -157,7 +186,7 @@ final private class RetryWhenSequenceSink Disposable { - let triggerSubscription = self._handler.subscribe(self._notifier.asObserver()) + let triggerSubscription = self.handler.subscribe(self.notifier.asObserver()) let superSubscription = super.run(sources) return Disposables.create(superSubscription, triggerSubscription) } @@ -166,17 +195,17 @@ final private class RetryWhenSequenceSink: Producer where Sequence.Element: ObservableType { typealias Element = Sequence.Element.Element - fileprivate let _sources: Sequence - fileprivate let _notificationHandler: (Observable) -> TriggerObservable + private let sources: Sequence + fileprivate let notificationHandler: (Observable) -> TriggerObservable init(sources: Sequence, notificationHandler: @escaping (Observable) -> TriggerObservable) { - self._sources = sources - self._notificationHandler = notificationHandler + self.sources = sources + self.notificationHandler = notificationHandler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = RetryWhenSequenceSink(parent: self, observer: observer, cancel: cancel) - let subscription = sink.run((self._sources.makeIterator(), nil)) + let subscription = sink.run((self.sources.makeIterator(), nil)) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Sample.swift b/Example/Pods/RxSwift/RxSwift/Observables/Sample.swift similarity index 55% rename from Pods/RxSwift/RxSwift/Observables/Sample.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Sample.swift index 4fab683..9301c9a 100644 --- a/Pods/RxSwift/RxSwift/Observables/Sample.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Sample.swift @@ -13,16 +13,18 @@ extension ObservableType { Upon each sampling tick, the latest element (if any) in the source sequence during the last sampling interval is sent to the resulting sequence. - **In case there were no new elements between sampler ticks, no element is sent to the resulting sequence.** + **In case there were no new elements between sampler ticks, you may provide a default value to be emitted, instead + to the resulting sequence otherwise no element is sent.** - seealso: [sample operator on reactivex.io](http://reactivex.io/documentation/operators/sample.html) - parameter sampler: Sampling tick sequence. + - parameter defaultValue: a value to return if there are no new elements between sampler ticks - returns: Sampled observable sequence. */ - public func sample(_ sampler: Source) + public func sample(_ sampler: Source, defaultValue: Element? = nil) -> Observable { - return Sample(source: self.asObservable(), sampler: sampler.asObservable()) + return Sample(source: self.asObservable(), sampler: sampler.asObservable(), defaultValue: defaultValue) } } @@ -34,35 +36,35 @@ final private class SamplerSink typealias Parent = SampleSequenceSink - fileprivate let _parent: Parent + private let parent: Parent - var _lock: RecursiveLock { - return self._parent._lock + var lock: RecursiveLock { + self.parent.lock } init(parent: Parent) { - self._parent = parent + self.parent = parent } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next, .completed: - if let element = _parent._element { - self._parent._element = nil - self._parent.forwardOn(.next(element)) + if let element = parent.element ?? self.parent.defaultValue { + self.parent.element = nil + self.parent.forwardOn(.next(element)) } - if self._parent._atEnd { - self._parent.forwardOn(.completed) - self._parent.dispose() + if self.parent.atEnd { + self.parent.forwardOn(.completed) + self.parent.dispose() } case .error(let e): - self._parent.forwardOn(.error(e)) - self._parent.dispose() + self.parent.forwardOn(.error(e)) + self.parent.dispose() } } } @@ -75,58 +77,62 @@ final private class SampleSequenceSink typealias Element = Observer.Element typealias Parent = Sample - fileprivate let _parent: Parent + fileprivate let parent: Parent + fileprivate let defaultValue: Element? - let _lock = RecursiveLock() + let lock = RecursiveLock() // state - fileprivate var _element = nil as Element? - fileprivate var _atEnd = false + fileprivate var element = nil as Element? + fileprivate var atEnd = false - fileprivate let _sourceSubscription = SingleAssignmentDisposable() + private let sourceSubscription = SingleAssignmentDisposable() - init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + init(parent: Parent, observer: Observer, cancel: Cancelable, defaultValue: Element? = nil) { + self.parent = parent + self.defaultValue = defaultValue super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - self._sourceSubscription.setDisposable(self._parent._source.subscribe(self)) - let samplerSubscription = self._parent._sampler.subscribe(SamplerSink(parent: self)) + self.sourceSubscription.setDisposable(self.parent.source.subscribe(self)) + let samplerSubscription = self.parent.sampler.subscribe(SamplerSink(parent: self)) - return Disposables.create(_sourceSubscription, samplerSubscription) + return Disposables.create(sourceSubscription, samplerSubscription) } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next(let element): - self._element = element + self.element = element case .error: self.forwardOn(event) self.dispose() case .completed: - self._atEnd = true - self._sourceSubscription.dispose() + self.atEnd = true + self.sourceSubscription.dispose() } } } final private class Sample: Producer { - fileprivate let _source: Observable - fileprivate let _sampler: Observable - - init(source: Observable, sampler: Observable) { - self._source = source - self._sampler = sampler + fileprivate let source: Observable + fileprivate let sampler: Observable + fileprivate let defaultValue: Element? + + init(source: Observable, sampler: Observable, defaultValue: Element? = nil) { + self.source = source + self.sampler = sampler + self.defaultValue = defaultValue } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { - let sink = SampleSequenceSink(parent: self, observer: observer, cancel: cancel) + let sink = SampleSequenceSink(parent: self, observer: observer, cancel: cancel, defaultValue: self.defaultValue) let subscription = sink.run() return (sink: sink, subscription: subscription) } diff --git a/Pods/RxSwift/RxSwift/Observables/Scan.swift b/Example/Pods/RxSwift/RxSwift/Observables/Scan.swift similarity index 82% rename from Pods/RxSwift/RxSwift/Observables/Scan.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Scan.swift index 7920ae9..ecf69c8 100644 --- a/Pods/RxSwift/RxSwift/Observables/Scan.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Scan.swift @@ -21,7 +21,7 @@ extension ObservableType { */ public func scan(into seed: A, accumulator: @escaping (inout A, Element) throws -> Void) -> Observable { - return Scan(source: self.asObservable(), seed: seed, accumulator: accumulator) + Scan(source: self.asObservable(), seed: seed, accumulator: accumulator) } /** @@ -48,12 +48,12 @@ final private class ScanSink: Sink, O typealias Accumulate = Observer.Element typealias Parent = Scan - fileprivate let _parent: Parent - fileprivate var _accumulate: Accumulate + private let parent: Parent + private var accumulate: Accumulate init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._accumulate = parent._seed + self.parent = parent + self.accumulate = parent.seed super.init(observer: observer, cancel: cancel) } @@ -61,8 +61,8 @@ final private class ScanSink: Sink, O switch event { case .next(let element): do { - try self._parent._accumulator(&self._accumulate, element) - self.forwardOn(.next(self._accumulate)) + try self.parent.accumulator(&self.accumulate, element) + self.forwardOn(.next(self.accumulate)) } catch let error { self.forwardOn(.error(error)) @@ -82,19 +82,19 @@ final private class ScanSink: Sink, O final private class Scan: Producer { typealias Accumulator = (inout Accumulate, Element) throws -> Void - fileprivate let _source: Observable - fileprivate let _seed: Accumulate - fileprivate let _accumulator: Accumulator + private let source: Observable + fileprivate let seed: Accumulate + fileprivate let accumulator: Accumulator init(source: Observable, seed: Accumulate, accumulator: @escaping Accumulator) { - self._source = source - self._seed = seed - self._accumulator = accumulator + self.source = source + self.seed = seed + self.accumulator = accumulator } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Accumulate { let sink = ScanSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Sequence.swift b/Example/Pods/RxSwift/RxSwift/Observables/Sequence.swift similarity index 83% rename from Pods/RxSwift/RxSwift/Observables/Sequence.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Sequence.swift index f158565..c6d1089 100644 --- a/Pods/RxSwift/RxSwift/Observables/Sequence.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Sequence.swift @@ -19,7 +19,7 @@ extension ObservableType { - returns: The observable sequence whose elements are pulled from the given arguments. */ public static func of(_ elements: Element ..., scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { - return ObservableSequence(elements: elements, scheduler: scheduler) + ObservableSequence(elements: elements, scheduler: scheduler) } } @@ -32,7 +32,7 @@ extension ObservableType { - returns: The observable sequence whose elements are pulled from the given enumerable sequence. */ public static func from(_ array: [Element], scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { - return ObservableSequence(elements: array, scheduler: scheduler) + ObservableSequence(elements: array, scheduler: scheduler) } /** @@ -43,22 +43,22 @@ extension ObservableType { - returns: The observable sequence whose elements are pulled from the given enumerable sequence. */ public static func from(_ sequence: Sequence, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable where Sequence.Element == Element { - return ObservableSequence(elements: sequence, scheduler: scheduler) + ObservableSequence(elements: sequence, scheduler: scheduler) } } final private class ObservableSequenceSink: Sink where Sequence.Element == Observer.Element { typealias Parent = ObservableSequence - private let _parent: Parent + private let parent: Parent init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - return self._parent._scheduler.scheduleRecursive(self._parent._elements.makeIterator()) { iterator, recurse in + return self.parent.scheduler.scheduleRecursive(self.parent.elements.makeIterator()) { iterator, recurse in var mutableIterator = iterator if let next = mutableIterator.next() { self.forwardOn(.next(next)) @@ -73,12 +73,12 @@ final private class ObservableSequenceSink: Producer { - fileprivate let _elements: Sequence - fileprivate let _scheduler: ImmediateSchedulerType + fileprivate let elements: Sequence + fileprivate let scheduler: ImmediateSchedulerType init(elements: Sequence, scheduler: ImmediateSchedulerType) { - self._elements = elements - self._scheduler = scheduler + self.elements = elements + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/ShareReplayScope.swift b/Example/Pods/RxSwift/RxSwift/Observables/ShareReplayScope.swift similarity index 65% rename from Pods/RxSwift/RxSwift/Observables/ShareReplayScope.swift rename to Example/Pods/RxSwift/RxSwift/Observables/ShareReplayScope.swift index 9565a49..59d440d 100644 --- a/Pods/RxSwift/RxSwift/Observables/ShareReplayScope.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/ShareReplayScope.swift @@ -156,24 +156,24 @@ extension ObservableType { } } -fileprivate final class ShareReplay1WhileConnectedConnection +private final class ShareReplay1WhileConnectedConnection : ObserverType , SynchronizedUnsubscribeType { typealias Observers = AnyObserver.s typealias DisposeKey = Observers.KeyType typealias Parent = ShareReplay1WhileConnected - private let _parent: Parent - private let _subscription = SingleAssignmentDisposable() + private let parent: Parent + private let subscription = SingleAssignmentDisposable() - private let _lock: RecursiveLock - private var _disposed: Bool = false - fileprivate var _observers = Observers() - fileprivate var _element: Element? + private let lock: RecursiveLock + private var disposed: Bool = false + fileprivate var observers = Observers() + private var element: Element? init(parent: Parent, lock: RecursiveLock) { - self._parent = parent - self._lock = lock + self.parent = parent + self.lock = lock #if TRACE_RESOURCES _ = Resources.incrementTotal() @@ -181,69 +181,65 @@ fileprivate final class ShareReplay1WhileConnectedConnection } final func on(_ event: Event) { - self._lock.lock() - let observers = self._synchronized_on(event) - self._lock.unlock() + let observers = self.lock.performLocked { self.synchronized_on(event) } dispatch(observers, event) } - final private func _synchronized_on(_ event: Event) -> Observers { - if self._disposed { + final private func synchronized_on(_ event: Event) -> Observers { + if self.disposed { return Observers() } switch event { case .next(let element): - self._element = element - return self._observers + self.element = element + return self.observers case .error, .completed: - let observers = self._observers - self._synchronized_dispose() + let observers = self.observers + self.synchronized_dispose() return observers } } final func connect() { - self._subscription.setDisposable(self._parent._source.subscribe(self)) + self.subscription.setDisposable(self.parent.source.subscribe(self)) } - final func _synchronized_subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - self._lock.lock(); defer { self._lock.unlock() } - if let element = self._element { - observer.on(.next(element)) - } + final func synchronized_subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { + self.lock.performLocked { + if let element = self.element { + observer.on(.next(element)) + } - let disposeKey = self._observers.insert(observer.on) + let disposeKey = self.observers.insert(observer.on) - return SubscriptionDisposable(owner: self, key: disposeKey) + return SubscriptionDisposable(owner: self, key: disposeKey) + } } - final private func _synchronized_dispose() { - self._disposed = true - if self._parent._connection === self { - self._parent._connection = nil + final private func synchronized_dispose() { + self.disposed = true + if self.parent.connection === self { + self.parent.connection = nil } - self._observers = Observers() + self.observers = Observers() } final func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { - self._lock.lock() - let shouldDisconnect = self._synchronized_unsubscribe(disposeKey) - self._lock.unlock() - if shouldDisconnect { - self._subscription.dispose() + if self.lock.performLocked({ self.synchronized_unsubscribe(disposeKey) }) { + self.subscription.dispose() } } @inline(__always) - final private func _synchronized_unsubscribe(_ disposeKey: DisposeKey) -> Bool { + final private func synchronized_unsubscribe(_ disposeKey: DisposeKey) -> Bool { // if already unsubscribed, just return - if self._observers.removeKey(disposeKey) == nil { + if self.observers.removeKey(disposeKey) == nil { return false } - if self._observers.count == 0 { - self._synchronized_dispose() + if self.observers.count == 0 { + self.synchronized_dispose() return true } @@ -263,25 +259,23 @@ final private class ShareReplay1WhileConnected fileprivate typealias Connection = ShareReplay1WhileConnectedConnection - fileprivate let _source: Observable + fileprivate let source: Observable - fileprivate let _lock = RecursiveLock() + private let lock = RecursiveLock() - fileprivate var _connection: Connection? + fileprivate var connection: Connection? init(source: Observable) { - self._source = source + self.source = source } override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - self._lock.lock() - - let connection = self._synchronized_subscribe(observer) - let count = connection._observers.count - - let disposable = connection._synchronized_subscribe(observer) + self.lock.lock() + let connection = self.synchronized_subscribe(observer) + let count = connection.observers.count - self._lock.unlock() + let disposable = connection.synchronized_subscribe(observer) + self.lock.unlock() if count == 0 { connection.connect() @@ -291,40 +285,40 @@ final private class ShareReplay1WhileConnected } @inline(__always) - private func _synchronized_subscribe(_ observer: Observer) -> Connection where Observer.Element == Element { + private func synchronized_subscribe(_ observer: Observer) -> Connection where Observer.Element == Element { let connection: Connection - if let existingConnection = self._connection { + if let existingConnection = self.connection { connection = existingConnection } else { connection = ShareReplay1WhileConnectedConnection( parent: self, - lock: self._lock) - self._connection = connection + lock: self.lock) + self.connection = connection } return connection } } -fileprivate final class ShareWhileConnectedConnection +private final class ShareWhileConnectedConnection : ObserverType , SynchronizedUnsubscribeType { typealias Observers = AnyObserver.s typealias DisposeKey = Observers.KeyType typealias Parent = ShareWhileConnected - private let _parent: Parent - private let _subscription = SingleAssignmentDisposable() + private let parent: Parent + private let subscription = SingleAssignmentDisposable() - private let _lock: RecursiveLock - private var _disposed: Bool = false - fileprivate var _observers = Observers() + private let lock: RecursiveLock + private var disposed: Bool = false + fileprivate var observers = Observers() init(parent: Parent, lock: RecursiveLock) { - self._parent = parent - self._lock = lock + self.parent = parent + self.lock = lock #if TRACE_RESOURCES _ = Resources.incrementTotal() @@ -332,65 +326,60 @@ fileprivate final class ShareWhileConnectedConnection } final func on(_ event: Event) { - self._lock.lock() - let observers = self._synchronized_on(event) - self._lock.unlock() + let observers = self.lock.performLocked { self.synchronized_on(event) } dispatch(observers, event) } - final private func _synchronized_on(_ event: Event) -> Observers { - if self._disposed { + final private func synchronized_on(_ event: Event) -> Observers { + if self.disposed { return Observers() } switch event { case .next: - return self._observers + return self.observers case .error, .completed: - let observers = self._observers - self._synchronized_dispose() + let observers = self.observers + self.synchronized_dispose() return observers } } final func connect() { - self._subscription.setDisposable(self._parent._source.subscribe(self)) + self.subscription.setDisposable(self.parent.source.subscribe(self)) } - final func _synchronized_subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - self._lock.lock(); defer { self._lock.unlock() } + final func synchronized_subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { + self.lock.performLocked { + let disposeKey = self.observers.insert(observer.on) - let disposeKey = self._observers.insert(observer.on) - - return SubscriptionDisposable(owner: self, key: disposeKey) + return SubscriptionDisposable(owner: self, key: disposeKey) + } } - final private func _synchronized_dispose() { - self._disposed = true - if self._parent._connection === self { - self._parent._connection = nil + final private func synchronized_dispose() { + self.disposed = true + if self.parent.connection === self { + self.parent.connection = nil } - self._observers = Observers() + self.observers = Observers() } final func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { - self._lock.lock() - let shouldDisconnect = self._synchronized_unsubscribe(disposeKey) - self._lock.unlock() - if shouldDisconnect { - self._subscription.dispose() + if self.lock.performLocked({ self.synchronized_unsubscribe(disposeKey) }) { + self.subscription.dispose() } } @inline(__always) - final private func _synchronized_unsubscribe(_ disposeKey: DisposeKey) -> Bool { + final private func synchronized_unsubscribe(_ disposeKey: DisposeKey) -> Bool { // if already unsubscribed, just return - if self._observers.removeKey(disposeKey) == nil { + if self.observers.removeKey(disposeKey) == nil { return false } - if self._observers.count == 0 { - self._synchronized_dispose() + if self.observers.count == 0 { + self.synchronized_dispose() return true } @@ -410,25 +399,23 @@ final private class ShareWhileConnected fileprivate typealias Connection = ShareWhileConnectedConnection - fileprivate let _source: Observable + fileprivate let source: Observable - fileprivate let _lock = RecursiveLock() + private let lock = RecursiveLock() - fileprivate var _connection: Connection? + fileprivate var connection: Connection? init(source: Observable) { - self._source = source + self.source = source } override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { - self._lock.lock() - - let connection = self._synchronized_subscribe(observer) - let count = connection._observers.count - - let disposable = connection._synchronized_subscribe(observer) + self.lock.lock() + let connection = self.synchronized_subscribe(observer) + let count = connection.observers.count - self._lock.unlock() + let disposable = connection.synchronized_subscribe(observer) + self.lock.unlock() if count == 0 { connection.connect() @@ -438,17 +425,17 @@ final private class ShareWhileConnected } @inline(__always) - private func _synchronized_subscribe(_ observer: Observer) -> Connection where Observer.Element == Element { + private func synchronized_subscribe(_ observer: Observer) -> Connection where Observer.Element == Element { let connection: Connection - if let existingConnection = self._connection { + if let existingConnection = self.connection { connection = existingConnection } else { connection = ShareWhileConnectedConnection( parent: self, - lock: self._lock) - self._connection = connection + lock: self.lock) + self.connection = connection } return connection diff --git a/Pods/RxSwift/RxSwift/Observables/SingleAsync.swift b/Example/Pods/RxSwift/RxSwift/Observables/SingleAsync.swift similarity index 80% rename from Pods/RxSwift/RxSwift/Observables/SingleAsync.swift rename to Example/Pods/RxSwift/RxSwift/Observables/SingleAsync.swift index e50a9be..04e2217 100644 --- a/Pods/RxSwift/RxSwift/Observables/SingleAsync.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/SingleAsync.swift @@ -18,7 +18,7 @@ extension ObservableType { */ public func single() -> Observable { - return SingleAsync(source: self.asObservable()) + SingleAsync(source: self.asObservable()) } /** @@ -32,19 +32,19 @@ extension ObservableType { */ public func single(_ predicate: @escaping (Element) throws -> Bool) -> Observable { - return SingleAsync(source: self.asObservable(), predicate: predicate) + SingleAsync(source: self.asObservable(), predicate: predicate) } } -fileprivate final class SingleAsyncSink : Sink, ObserverType { +private final class SingleAsyncSink : Sink, ObserverType { typealias Element = Observer.Element typealias Parent = SingleAsync - private let _parent: Parent - private var _seenValue: Bool = false + private let parent: Parent + private var seenValue: Bool = false init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -52,7 +52,7 @@ fileprivate final class SingleAsyncSink : Sink switch event { case .next(let value): do { - let forward = try self._parent._predicate?(value) ?? true + let forward = try self.parent.predicate?(value) ?? true if !forward { return } @@ -63,19 +63,19 @@ fileprivate final class SingleAsyncSink : Sink return } - if self._seenValue { + if self.seenValue { self.forwardOn(.error(RxError.moreThanOneElement)) self.dispose() return } - self._seenValue = true + self.seenValue = true self.forwardOn(.next(value)) case .error: self.forwardOn(event) self.dispose() case .completed: - if self._seenValue { + if self.seenValue { self.forwardOn(.completed) } else { self.forwardOn(.error(RxError.noElements)) @@ -88,17 +88,17 @@ fileprivate final class SingleAsyncSink : Sink final class SingleAsync: Producer { typealias Predicate = (Element) throws -> Bool - fileprivate let _source: Observable - fileprivate let _predicate: Predicate? + private let source: Observable + fileprivate let predicate: Predicate? init(source: Observable, predicate: Predicate? = nil) { - self._source = source - self._predicate = predicate + self.source = source + self.predicate = predicate } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = SingleAsyncSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Example/Pods/RxSwift/RxSwift/Observables/Sink.swift b/Example/Pods/RxSwift/RxSwift/Observables/Sink.swift new file mode 100644 index 0000000..ed4fec0 --- /dev/null +++ b/Example/Pods/RxSwift/RxSwift/Observables/Sink.swift @@ -0,0 +1,75 @@ +// +// Sink.swift +// RxSwift +// +// Created by Krunoslav Zaher on 2/19/15. +// Copyright © 2015 Krunoslav Zaher. All rights reserved. +// + +class Sink: Disposable { + fileprivate let observer: Observer + fileprivate let cancel: Cancelable + private let disposed = AtomicInt(0) + + #if DEBUG + private let synchronizationTracker = SynchronizationTracker() + #endif + + init(observer: Observer, cancel: Cancelable) { +#if TRACE_RESOURCES + _ = Resources.incrementTotal() +#endif + self.observer = observer + self.cancel = cancel + } + + final func forwardOn(_ event: Event) { + #if DEBUG + self.synchronizationTracker.register(synchronizationErrorMessage: .default) + defer { self.synchronizationTracker.unregister() } + #endif + if isFlagSet(self.disposed, 1) { + return + } + self.observer.on(event) + } + + final func forwarder() -> SinkForward { + SinkForward(forward: self) + } + + final var isDisposed: Bool { + isFlagSet(self.disposed, 1) + } + + func dispose() { + fetchOr(self.disposed, 1) + self.cancel.dispose() + } + + deinit { +#if TRACE_RESOURCES + _ = Resources.decrementTotal() +#endif + } +} + +final class SinkForward: ObserverType { + typealias Element = Observer.Element + + private let forward: Sink + + init(forward: Sink) { + self.forward = forward + } + + final func on(_ event: Event) { + switch event { + case .next: + self.forward.observer.on(event) + case .error, .completed: + self.forward.observer.on(event) + self.forward.cancel.dispose() + } + } +} diff --git a/Pods/RxSwift/RxSwift/Observables/Skip.swift b/Example/Pods/RxSwift/RxSwift/Observables/Skip.swift similarity index 96% rename from Pods/RxSwift/RxSwift/Observables/Skip.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Skip.swift index 3076f9c..5856f37 100644 --- a/Pods/RxSwift/RxSwift/Observables/Skip.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Skip.swift @@ -18,7 +18,7 @@ extension ObservableType { */ public func skip(_ count: Int) -> Observable { - return SkipCount(source: self.asObservable(), count: count) + SkipCount(source: self.asObservable(), count: count) } } @@ -35,7 +35,7 @@ extension ObservableType { */ public func skip(_ duration: RxTimeInterval, scheduler: SchedulerType) -> Observable { - return SkipTime(source: self.asObservable(), duration: duration, scheduler: scheduler) + SkipTime(source: self.asObservable(), duration: duration, scheduler: scheduler) } } diff --git a/Pods/RxSwift/RxSwift/Observables/SkipUntil.swift b/Example/Pods/RxSwift/RxSwift/Observables/SkipUntil.swift similarity index 58% rename from Pods/RxSwift/RxSwift/Observables/SkipUntil.swift rename to Example/Pods/RxSwift/RxSwift/Observables/SkipUntil.swift index 056d795..c8fe193 100644 --- a/Pods/RxSwift/RxSwift/Observables/SkipUntil.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/SkipUntil.swift @@ -7,6 +7,18 @@ // extension ObservableType { + /** + Returns the elements from the source observable sequence that are emitted after the other observable sequence produces an element. + + - seealso: [skipUntil operator on reactivex.io](http://reactivex.io/documentation/operators/skipuntil.html) + + - parameter other: Observable sequence that starts propagation of elements of the source sequence. + - returns: An observable sequence containing the elements of the source sequence that are emitted after the other sequence emits an item. + */ + public func skip(until other: Source) + -> Observable { + SkipUntil(source: self.asObservable(), other: other.asObservable()) + } /** Returns the elements from the source observable sequence that are emitted after the other observable sequence produces an element. @@ -16,9 +28,10 @@ extension ObservableType { - parameter other: Observable sequence that starts propagation of elements of the source sequence. - returns: An observable sequence containing the elements of the source sequence that are emitted after the other sequence emits an item. */ + @available(*, deprecated, renamed: "skip(until:)") public func skipUntil(_ other: Source) -> Observable { - return SkipUntil(source: self.asObservable(), other: other.asObservable()) + skip(until: other) } } @@ -29,16 +42,16 @@ final private class SkipUntilSinkOther typealias Parent = SkipUntilSink typealias Element = Other - fileprivate let _parent: Parent + private let parent: Parent - var _lock: RecursiveLock { - return self._parent._lock + var lock: RecursiveLock { + self.parent.lock } - let _subscription = SingleAssignmentDisposable() + let subscription = SingleAssignmentDisposable() init(parent: Parent) { - self._parent = parent + self.parent = parent #if TRACE_RESOURCES _ = Resources.incrementTotal() #endif @@ -48,16 +61,16 @@ final private class SkipUntilSinkOther self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next: - self._parent._forwardElements = true - self._subscription.dispose() + self.parent.forwardElements = true + self.subscription.dispose() case .error(let e): - self._parent.forwardOn(.error(e)) - self._parent.dispose() + self.parent.forwardOn(.error(e)) + self.parent.dispose() case .completed: - self._subscription.dispose() + self.subscription.dispose() } } @@ -78,14 +91,14 @@ final private class SkipUntilSink typealias Element = Observer.Element typealias Parent = SkipUntil - let _lock = RecursiveLock() - fileprivate let _parent: Parent - fileprivate var _forwardElements = false + let lock = RecursiveLock() + private let parent: Parent + fileprivate var forwardElements = false - fileprivate let _sourceSubscription = SingleAssignmentDisposable() + private let sourceSubscription = SingleAssignmentDisposable() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -93,17 +106,17 @@ final private class SkipUntilSink self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next: - if self._forwardElements { + if self.forwardElements { self.forwardOn(event) } case .error: self.forwardOn(event) self.dispose() case .completed: - if self._forwardElements { + if self.forwardElements { self.forwardOn(event) } self.dispose() @@ -111,24 +124,24 @@ final private class SkipUntilSink } func run() -> Disposable { - let sourceSubscription = self._parent._source.subscribe(self) + let sourceSubscription = self.parent.source.subscribe(self) let otherObserver = SkipUntilSinkOther(parent: self) - let otherSubscription = self._parent._other.subscribe(otherObserver) - self._sourceSubscription.setDisposable(sourceSubscription) - otherObserver._subscription.setDisposable(otherSubscription) + let otherSubscription = self.parent.other.subscribe(otherObserver) + self.sourceSubscription.setDisposable(sourceSubscription) + otherObserver.subscription.setDisposable(otherSubscription) - return Disposables.create(_sourceSubscription, otherObserver._subscription) + return Disposables.create(sourceSubscription, otherObserver.subscription) } } final private class SkipUntil: Producer { - fileprivate let _source: Observable - fileprivate let _other: Observable + fileprivate let source: Observable + fileprivate let other: Observable init(source: Observable, other: Observable) { - self._source = source - self._other = other + self.source = source + self.other = other } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/SkipWhile.swift b/Example/Pods/RxSwift/RxSwift/Observables/SkipWhile.swift similarity index 62% rename from Pods/RxSwift/RxSwift/Observables/SkipWhile.swift rename to Example/Pods/RxSwift/RxSwift/Observables/SkipWhile.swift index db9f5a6..a62f88d 100644 --- a/Pods/RxSwift/RxSwift/Observables/SkipWhile.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/SkipWhile.swift @@ -7,6 +7,17 @@ // extension ObservableType { + /** + Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. + + - seealso: [skipWhile operator on reactivex.io](http://reactivex.io/documentation/operators/skipwhile.html) + + - parameter predicate: A function to test each element for a condition. + - returns: An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. + */ + public func skip(while predicate: @escaping (Element) throws -> Bool) -> Observable { + SkipWhile(source: self.asObservable(), predicate: predicate) + } /** Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements. @@ -16,8 +27,9 @@ extension ObservableType { - parameter predicate: A function to test each element for a condition. - returns: An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. */ + @available(*, deprecated, renamed: "skip(while:)") public func skipWhile(_ predicate: @escaping (Element) throws -> Bool) -> Observable { - return SkipWhile(source: self.asObservable(), predicate: predicate) + SkipWhile(source: self.asObservable(), predicate: predicate) } } @@ -25,20 +37,20 @@ final private class SkipWhileSink: Sink, Obser typealias Element = Observer.Element typealias Parent = SkipWhile - fileprivate let _parent: Parent - fileprivate var _running = false + private let parent: Parent + private var running = false init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func on(_ event: Event) { switch event { case .next(let value): - if !self._running { + if !self.running { do { - self._running = try !self._parent._predicate(value) + self.running = try !self.parent.predicate(value) } catch let e { self.forwardOn(.error(e)) self.dispose() @@ -46,7 +58,7 @@ final private class SkipWhileSink: Sink, Obser } } - if self._running { + if self.running { self.forwardOn(.next(value)) } case .error, .completed: @@ -59,17 +71,17 @@ final private class SkipWhileSink: Sink, Obser final private class SkipWhile: Producer { typealias Predicate = (Element) throws -> Bool - fileprivate let _source: Observable - fileprivate let _predicate: Predicate + private let source: Observable + fileprivate let predicate: Predicate init(source: Observable, predicate: @escaping Predicate) { - self._source = source - self._predicate = predicate + self.source = source + self.predicate = predicate } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = SkipWhileSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/StartWith.swift b/Example/Pods/RxSwift/RxSwift/Observables/StartWith.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Observables/StartWith.swift rename to Example/Pods/RxSwift/RxSwift/Observables/StartWith.swift diff --git a/Pods/RxSwift/RxSwift/Observables/SubscribeOn.swift b/Example/Pods/RxSwift/RxSwift/Observables/SubscribeOn.swift similarity index 75% rename from Pods/RxSwift/RxSwift/Observables/SubscribeOn.swift rename to Example/Pods/RxSwift/RxSwift/Observables/SubscribeOn.swift index 5f7be0b..e8e41d9 100644 --- a/Pods/RxSwift/RxSwift/Observables/SubscribeOn.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/SubscribeOn.swift @@ -7,6 +7,25 @@ // extension ObservableType { + /** + Wraps the source sequence in order to run its subscription and unsubscription logic on the specified + scheduler. + + This operation is not commonly used. + + This only performs the side-effects of subscription and unsubscription on the specified scheduler. + + In order to invoke observer callbacks on a `scheduler`, use `observeOn`. + + - seealso: [subscribeOn operator on reactivex.io](http://reactivex.io/documentation/operators/subscribeon.html) + + - parameter scheduler: Scheduler to perform subscription and unsubscription actions on. + - returns: The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. + */ + public func subscribe(on scheduler: ImmediateSchedulerType) + -> Observable { + SubscribeOn(source: self, scheduler: scheduler) + } /** Wraps the source sequence in order to run its subscription and unsubscription logic on the specified @@ -23,9 +42,10 @@ extension ObservableType { - parameter scheduler: Scheduler to perform subscription and unsubscription actions on. - returns: The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. */ + @available(*, deprecated, renamed: "subscribe(on:)") public func subscribeOn(_ scheduler: ImmediateSchedulerType) -> Observable { - return SubscribeOn(source: self, scheduler: scheduler) + subscribe(on: scheduler) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Switch.swift b/Example/Pods/RxSwift/RxSwift/Observables/Switch.swift similarity index 62% rename from Pods/RxSwift/RxSwift/Observables/Switch.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Switch.swift index ac12f2f..5aa60b9 100644 --- a/Pods/RxSwift/RxSwift/Observables/Switch.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Switch.swift @@ -21,11 +21,28 @@ extension ObservableType { */ public func flatMapLatest(_ selector: @escaping (Element) throws -> Source) -> Observable { - return FlatMapLatest(source: self.asObservable(), selector: selector) + return FlatMapLatest(source: self.asObservable(), selector: selector) + } + + /** + Projects each element of an observable sequence into a new sequence of observable sequences and then + transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence. + + It is a combination of `map` + `switchLatest` operator + + - seealso: [flatMapLatest operator on reactivex.io](http://reactivex.io/documentation/operators/flatmap.html) + + - parameter selector: A transform function to apply to each element. + - returns: An observable sequence whose elements are the result of invoking the transform function on each element of source producing an + Observable of Observable sequences and that at any point in time produces the elements of the most recent inner observable sequence that has been received. + */ + public func flatMapLatest(_ selector: @escaping (Element) throws -> Source) + -> Infallible { + return Infallible(flatMapLatest(selector)) } } -extension ObservableType where Element : ObservableConvertibleType { +extension ObservableType where Element: ObservableConvertibleType { /** Transforms an observable sequence of observable sequences into an observable sequence @@ -39,7 +56,7 @@ extension ObservableType where Element : ObservableConvertibleType { - returns: The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received. */ public func switchLatest() -> Observable { - return Switch(source: self.asObservable()) + Switch(source: self.asObservable()) } } @@ -48,15 +65,15 @@ private class SwitchSink) -> Disposable { let subscription = source.subscribe(self) - self._subscriptions.setDisposable(subscription) - return Disposables.create(_subscriptions, _innerSubscription) + self.subscriptions.setDisposable(subscription) + return Disposables.create(subscriptions, innerSubscription) } func performMap(_ element: SourceType) throws -> Source { @@ -74,20 +91,20 @@ private class SwitchSink (Int, Observable)? { - self._lock.lock(); defer { self._lock.unlock() } // { - do { - let observable = try self.performMap(element).asObservable() - self._hasLatest = true - self._latest = self._latest &+ 1 - return (self._latest, observable) - } - catch let error { - self.forwardOn(.error(error)) - self.dispose() - } + self.lock.lock(); defer { self.lock.unlock() } + + do { + let observable = try self.performMap(element).asObservable() + self.hasLatest = true + self.latest = self.latest &+ 1 + return (self.latest, observable) + } + catch let error { + self.forwardOn(.error(error)) + self.dispose() + } - return nil - // } + return nil } func on(_ event: Event) { @@ -95,23 +112,23 @@ private class SwitchSink - fileprivate let _parent: Parent - fileprivate let _id: Int - fileprivate let _self: Disposable + private let parent: Parent + private let id: Int + private let this: Disposable - var _lock: RecursiveLock { - return self._parent._lock + var lock: RecursiveLock { + self.parent.lock } - init(parent: Parent, id: Int, _self: Disposable) { - self._parent = parent - self._id = id - self._self = _self + init(parent: Parent, id: Int, this: Disposable) { + self.parent = parent + self.id = id + self.this = this } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next: break case .error, .completed: - self._self.dispose() + self.this.dispose() } - if self._parent._latest != self._id { + if self.parent.latest != self.id { return } switch event { case .next: - self._parent.forwardOn(event) + self.parent.forwardOn(event) case .error: - self._parent.forwardOn(event) - self._parent.dispose() + self.parent.forwardOn(event) + self.parent.dispose() case .completed: - self._parent._hasLatest = false - if self._parent._stopped { - self._parent.forwardOn(event) - self._parent.dispose() + self.parent.hasLatest = false + if self.parent.stopped { + self.parent.forwardOn(event) + self.parent.dispose() } } } @@ -180,37 +197,37 @@ final private class SwitchIdentitySink Source { - return element + element } } final private class MapSwitchSink: SwitchSink where Observer.Element == Source.Element { typealias Selector = (SourceType) throws -> Source - fileprivate let _selector: Selector + private let selector: Selector init(selector: @escaping Selector, observer: Observer, cancel: Cancelable) { - self._selector = selector + self.selector = selector super.init(observer: observer, cancel: cancel) } override func performMap(_ element: SourceType) throws -> Source { - return try self._selector(element) + try self.selector(element) } } // MARK: Producers final private class Switch: Producer { - fileprivate let _source: Observable + private let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Source.Element { let sink = SwitchIdentitySink(observer: observer, cancel: cancel) - let subscription = sink.run(self._source) + let subscription = sink.run(self.source) return (sink: sink, subscription: subscription) } } @@ -218,17 +235,17 @@ final private class Switch: Producer: Producer { typealias Selector = (SourceType) throws -> Source - fileprivate let _source: Observable - fileprivate let _selector: Selector + private let source: Observable + private let selector: Selector init(source: Observable, selector: @escaping Selector) { - self._source = source - self._selector = selector + self.source = source + self.selector = selector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Source.Element { - let sink = MapSwitchSink(selector: self._selector, observer: observer, cancel: cancel) - let subscription = sink.run(self._source) + let sink = MapSwitchSink(selector: self.selector, observer: observer, cancel: cancel) + let subscription = sink.run(self.source) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/SwitchIfEmpty.swift b/Example/Pods/RxSwift/RxSwift/Observables/SwitchIfEmpty.swift similarity index 70% rename from Pods/RxSwift/RxSwift/Observables/SwitchIfEmpty.swift rename to Example/Pods/RxSwift/RxSwift/Observables/SwitchIfEmpty.swift index 5ead0f2..a8827c4 100644 --- a/Pods/RxSwift/RxSwift/Observables/SwitchIfEmpty.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/SwitchIfEmpty.swift @@ -16,25 +16,25 @@ extension ObservableType { - returns: Observable sequence that contains elements from switchTo sequence if source is empty, otherwise returns source sequence elements. */ public func ifEmpty(switchTo other: Observable) -> Observable { - return SwitchIfEmpty(source: self.asObservable(), ifEmpty: other) + SwitchIfEmpty(source: self.asObservable(), ifEmpty: other) } } final private class SwitchIfEmpty: Producer { - private let _source: Observable - private let _ifEmpty: Observable + private let source: Observable + private let ifEmpty: Observable init(source: Observable, ifEmpty: Observable) { - self._source = source - self._ifEmpty = ifEmpty + self.source = source + self.ifEmpty = ifEmpty } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { - let sink = SwitchIfEmptySink(ifEmpty: self._ifEmpty, + let sink = SwitchIfEmptySink(ifEmpty: self.ifEmpty, observer: observer, cancel: cancel) - let subscription = sink.run(self._source.asObservable()) + let subscription = sink.run(self.source.asObservable()) return (sink: sink, subscription: subscription) } @@ -44,36 +44,36 @@ final private class SwitchIfEmptySink: Sink , ObserverType { typealias Element = Observer.Element - private let _ifEmpty: Observable - private var _isEmpty = true - private let _ifEmptySubscription = SingleAssignmentDisposable() + private let ifEmpty: Observable + private var isEmpty = true + private let ifEmptySubscription = SingleAssignmentDisposable() init(ifEmpty: Observable, observer: Observer, cancel: Cancelable) { - self._ifEmpty = ifEmpty + self.ifEmpty = ifEmpty super.init(observer: observer, cancel: cancel) } func run(_ source: Observable) -> Disposable { let subscription = source.subscribe(self) - return Disposables.create(subscription, _ifEmptySubscription) + return Disposables.create(subscription, ifEmptySubscription) } func on(_ event: Event) { switch event { case .next: - self._isEmpty = false + self.isEmpty = false self.forwardOn(event) case .error: self.forwardOn(event) self.dispose() case .completed: - guard self._isEmpty else { + guard self.isEmpty else { self.forwardOn(.completed) self.dispose() return } let ifEmptySink = SwitchIfEmptySinkIter(parent: self) - self._ifEmptySubscription.setDisposable(self._ifEmpty.subscribe(ifEmptySink)) + self.ifEmptySubscription.setDisposable(self.ifEmpty.subscribe(ifEmptySink)) } } } @@ -83,22 +83,22 @@ final private class SwitchIfEmptySinkIter typealias Element = Observer.Element typealias Parent = SwitchIfEmptySink - private let _parent: Parent + private let parent: Parent init(parent: Parent) { - self._parent = parent + self.parent = parent } func on(_ event: Event) { switch event { case .next: - self._parent.forwardOn(event) + self.parent.forwardOn(event) case .error: - self._parent.forwardOn(event) - self._parent.dispose() + self.parent.forwardOn(event) + self.parent.dispose() case .completed: - self._parent.forwardOn(event) - self._parent.dispose() + self.parent.forwardOn(event) + self.parent.dispose() } } } diff --git a/Pods/RxSwift/RxSwift/Observables/Take.swift b/Example/Pods/RxSwift/RxSwift/Observables/Take.swift similarity index 69% rename from Pods/RxSwift/RxSwift/Observables/Take.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Take.swift index 95b0b60..e574688 100644 --- a/Pods/RxSwift/RxSwift/Observables/Take.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Take.swift @@ -28,6 +28,19 @@ extension ObservableType { } extension ObservableType { + /** + Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. + + - seealso: [take operator on reactivex.io](http://reactivex.io/documentation/operators/take.html) + + - parameter duration: Duration for taking elements from the start of the sequence. + - parameter scheduler: Scheduler to run the timer on. + - returns: An observable sequence with the elements taken during the specified duration from the start of the source sequence. + */ + public func take(for duration: RxTimeInterval, scheduler: SchedulerType) + -> Observable { + TakeTime(source: self.asObservable(), duration: duration, scheduler: scheduler) + } /** Takes elements for the specified duration from the start of the observable source sequence, using the specified scheduler to run timers. @@ -38,9 +51,10 @@ extension ObservableType { - parameter scheduler: Scheduler to run the timer on. - returns: An observable sequence with the elements taken during the specified duration from the start of the source sequence. */ + @available(*, deprecated, renamed: "take(for:scheduler:)") public func take(_ duration: RxTimeInterval, scheduler: SchedulerType) -> Observable { - return TakeTime(source: self.asObservable(), duration: duration, scheduler: scheduler) + take(for: duration, scheduler: scheduler) } } @@ -50,13 +64,13 @@ final private class TakeCountSink: Sink, Obser typealias Element = Observer.Element typealias Parent = TakeCount - private let _parent: Parent + private let parent: Parent - private var _remaining: Int + private var remaining: Int init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._remaining = parent._count + self.parent = parent + self.remaining = parent.count super.init(observer: observer, cancel: cancel) } @@ -64,12 +78,12 @@ final private class TakeCountSink: Sink, Obser switch event { case .next(let value): - if self._remaining > 0 { - self._remaining -= 1 + if self.remaining > 0 { + self.remaining -= 1 self.forwardOn(.next(value)) - if self._remaining == 0 { + if self.remaining == 0 { self.forwardOn(.completed) self.dispose() } @@ -86,20 +100,20 @@ final private class TakeCountSink: Sink, Obser } final private class TakeCount: Producer { - fileprivate let _source: Observable - fileprivate let _count: Int + private let source: Observable + fileprivate let count: Int init(source: Observable, count: Int) { if count < 0 { rxFatalError("count can't be negative") } - self._source = source - self._count = count + self.source = source + self.count = count } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = TakeCountSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } @@ -113,12 +127,12 @@ final private class TakeTimeSink , SynchronizedOnType where Observer.Element == Element { typealias Parent = TakeTime - fileprivate let _parent: Parent + private let parent: Parent - let _lock = RecursiveLock() + let lock = RecursiveLock() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -126,7 +140,7 @@ final private class TakeTimeSink self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next(let value): self.forwardOn(.next(value)) @@ -140,19 +154,19 @@ final private class TakeTimeSink } func tick() { - self._lock.lock(); defer { self._lock.unlock() } - - self.forwardOn(.completed) - self.dispose() + self.lock.performLocked { + self.forwardOn(.completed) + self.dispose() + } } func run() -> Disposable { - let disposeTimer = self._parent._scheduler.scheduleRelative((), dueTime: self._parent._duration) { _ in + let disposeTimer = self.parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) { _ in self.tick() return Disposables.create() } - let disposeSubscription = self._parent._source.subscribe(self) + let disposeSubscription = self.parent.source.subscribe(self) return Disposables.create(disposeTimer, disposeSubscription) } @@ -161,14 +175,14 @@ final private class TakeTimeSink final private class TakeTime: Producer { typealias TimeInterval = RxTimeInterval - fileprivate let _source: Observable - fileprivate let _duration: TimeInterval - fileprivate let _scheduler: SchedulerType + fileprivate let source: Observable + fileprivate let duration: TimeInterval + fileprivate let scheduler: SchedulerType init(source: Observable, duration: TimeInterval, scheduler: SchedulerType) { - self._source = source - self._scheduler = scheduler - self._duration = duration + self.source = source + self.scheduler = scheduler + self.duration = duration } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/TakeLast.swift b/Example/Pods/RxSwift/RxSwift/Observables/TakeLast.swift similarity index 77% rename from Pods/RxSwift/RxSwift/Observables/TakeLast.swift rename to Example/Pods/RxSwift/RxSwift/Observables/TakeLast.swift index 5a5d684..9183387 100644 --- a/Pods/RxSwift/RxSwift/Observables/TakeLast.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/TakeLast.swift @@ -20,7 +20,7 @@ extension ObservableType { */ public func takeLast(_ count: Int) -> Observable { - return TakeLast(source: self.asObservable(), count: count) + TakeLast(source: self.asObservable(), count: count) } } @@ -28,28 +28,28 @@ final private class TakeLastSink: Sink, Observ typealias Element = Observer.Element typealias Parent = TakeLast - private let _parent: Parent + private let parent: Parent - private var _elements: Queue + private var elements: Queue init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._elements = Queue(capacity: parent._count + 1) + self.parent = parent + self.elements = Queue(capacity: parent.count + 1) super.init(observer: observer, cancel: cancel) } func on(_ event: Event) { switch event { case .next(let value): - self._elements.enqueue(value) - if self._elements.count > self._parent._count { - _ = self._elements.dequeue() + self.elements.enqueue(value) + if self.elements.count > self.parent.count { + _ = self.elements.dequeue() } case .error: self.forwardOn(event) self.dispose() case .completed: - for e in self._elements { + for e in self.elements { self.forwardOn(.next(e)) } self.forwardOn(.completed) @@ -59,20 +59,20 @@ final private class TakeLastSink: Sink, Observ } final private class TakeLast: Producer { - fileprivate let _source: Observable - fileprivate let _count: Int + private let source: Observable + fileprivate let count: Int init(source: Observable, count: Int) { if count < 0 { rxFatalError("count can't be negative") } - self._source = source - self._count = count + self.source = source + self.count = count } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = TakeLastSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/TakeUntil.swift b/Example/Pods/RxSwift/RxSwift/Observables/TakeWithPredicate.swift similarity index 51% rename from Pods/RxSwift/RxSwift/Observables/TakeUntil.swift rename to Example/Pods/RxSwift/RxSwift/Observables/TakeWithPredicate.swift index f6490d4..6c28d19 100644 --- a/Pods/RxSwift/RxSwift/Observables/TakeUntil.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/TakeWithPredicate.swift @@ -1,5 +1,5 @@ // -// TakeUntil.swift +// TakeWithPredicate.swift // RxSwift // // Created by Krunoslav Zaher on 6/7/15. @@ -7,6 +7,50 @@ // extension ObservableType { + /** + Returns the elements from the source observable sequence until the other observable sequence produces an element. + + - seealso: [takeUntil operator on reactivex.io](http://reactivex.io/documentation/operators/takeuntil.html) + + - parameter other: Observable sequence that terminates propagation of elements of the source sequence. + - returns: An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. + */ + public func take(until other: Source) + -> Observable { + TakeUntil(source: self.asObservable(), other: other.asObservable()) + } + + /** + Returns elements from an observable sequence until the specified condition is true. + + - seealso: [takeUntil operator on reactivex.io](http://reactivex.io/documentation/operators/takeuntil.html) + + - parameter predicate: A function to test each element for a condition. + - parameter behavior: Whether or not to include the last element matching the predicate. Defaults to `exclusive`. + + - returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test passes. + */ + public func take(until predicate: @escaping (Element) throws -> Bool, + behavior: TakeBehavior = .exclusive) + -> Observable { + TakeUntilPredicate(source: self.asObservable(), + behavior: behavior, + predicate: predicate) + } + + /** + Returns elements from an observable sequence as long as a specified condition is true. + + - seealso: [takeWhile operator on reactivex.io](http://reactivex.io/documentation/operators/takewhile.html) + + - parameter predicate: A function to test each element for a condition. + - returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + */ + public func take(while predicate: @escaping (Element) throws -> Bool, + behavior: TakeBehavior = .exclusive) + -> Observable { + take(until: { try !predicate($0) }, behavior: behavior) + } /** Returns the elements from the source observable sequence until the other observable sequence produces an element. @@ -16,9 +60,10 @@ extension ObservableType { - parameter other: Observable sequence that terminates propagation of elements of the source sequence. - returns: An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. */ + @available(*, deprecated, renamed: "take(until:)") public func takeUntil(_ other: Source) -> Observable { - return TakeUntil(source: self.asObservable(), other: other.asObservable()) + take(until: other) } /** @@ -30,17 +75,30 @@ extension ObservableType { - parameter predicate: A function to test each element for a condition. - returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test passes. */ - public func takeUntil(_ behavior: TakeUntilBehavior, + @available(*, deprecated, renamed: "take(until:behavior:)") + public func takeUntil(_ behavior: TakeBehavior, predicate: @escaping (Element) throws -> Bool) -> Observable { - return TakeUntilPredicate(source: self.asObservable(), - behavior: behavior, - predicate: predicate) + take(until: predicate, behavior: behavior) + } + + /** + Returns elements from an observable sequence as long as a specified condition is true. + + - seealso: [takeWhile operator on reactivex.io](http://reactivex.io/documentation/operators/takewhile.html) + + - parameter predicate: A function to test each element for a condition. + - returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. + */ + @available(*, deprecated, renamed: "take(while:)") + public func takeWhile(_ predicate: @escaping (Element) throws -> Bool) + -> Observable { + take(until: { try !predicate($0) }, behavior: .exclusive) } } -/// Behaviors for the `takeUntil(_ behavior:predicate:)` operator. -public enum TakeUntilBehavior { +/// Behaviors for the take operator family. +public enum TakeBehavior { /// Include the last element matching the predicate. case inclusive @@ -56,16 +114,16 @@ final private class TakeUntilSinkOther typealias Parent = TakeUntilSink typealias Element = Other - fileprivate let _parent: Parent + private let parent: Parent - var _lock: RecursiveLock { - return self._parent._lock + var lock: RecursiveLock { + self.parent.lock } - fileprivate let _subscription = SingleAssignmentDisposable() + fileprivate let subscription = SingleAssignmentDisposable() init(parent: Parent) { - self._parent = parent + self.parent = parent #if TRACE_RESOURCES _ = Resources.incrementTotal() #endif @@ -75,16 +133,16 @@ final private class TakeUntilSinkOther self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next: - self._parent.forwardOn(.completed) - self._parent.dispose() + self.parent.forwardOn(.completed) + self.parent.dispose() case .error(let e): - self._parent.forwardOn(.error(e)) - self._parent.dispose() + self.parent.forwardOn(.error(e)) + self.parent.dispose() case .completed: - self._subscription.dispose() + self.subscription.dispose() } } @@ -103,13 +161,13 @@ final private class TakeUntilSink typealias Element = Observer.Element typealias Parent = TakeUntil - fileprivate let _parent: Parent + private let parent: Parent - let _lock = RecursiveLock() + let lock = RecursiveLock() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -117,7 +175,7 @@ final private class TakeUntilSink self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next: self.forwardOn(event) @@ -132,22 +190,22 @@ final private class TakeUntilSink func run() -> Disposable { let otherObserver = TakeUntilSinkOther(parent: self) - let otherSubscription = self._parent._other.subscribe(otherObserver) - otherObserver._subscription.setDisposable(otherSubscription) - let sourceSubscription = self._parent._source.subscribe(self) + let otherSubscription = self.parent.other.subscribe(otherObserver) + otherObserver.subscription.setDisposable(otherSubscription) + let sourceSubscription = self.parent.source.subscribe(self) - return Disposables.create(sourceSubscription, otherObserver._subscription) + return Disposables.create(sourceSubscription, otherObserver.subscription) } } final private class TakeUntil: Producer { - fileprivate let _source: Observable - fileprivate let _other: Observable + fileprivate let source: Observable + fileprivate let other: Observable init(source: Observable, other: Observable) { - self._source = source - self._other = other + self.source = source + self.other = other } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { @@ -163,33 +221,33 @@ final private class TakeUntilPredicateSink typealias Element = Observer.Element typealias Parent = TakeUntilPredicate - fileprivate let _parent: Parent - fileprivate var _running = true + private let parent: Parent + private var running = true init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func on(_ event: Event) { switch event { case .next(let value): - if !self._running { + if !self.running { return } do { - self._running = try !self._parent._predicate(value) + self.running = try !self.parent.predicate(value) } catch let e { self.forwardOn(.error(e)) self.dispose() return } - if self._running { + if self.running { self.forwardOn(.next(value)) } else { - if self._parent._behavior == .inclusive { + if self.parent.behavior == .inclusive { self.forwardOn(.next(value)) } @@ -207,21 +265,21 @@ final private class TakeUntilPredicateSink final private class TakeUntilPredicate: Producer { typealias Predicate = (Element) throws -> Bool - fileprivate let _source: Observable - fileprivate let _predicate: Predicate - fileprivate let _behavior: TakeUntilBehavior + private let source: Observable + fileprivate let predicate: Predicate + fileprivate let behavior: TakeBehavior init(source: Observable, - behavior: TakeUntilBehavior, + behavior: TakeBehavior, predicate: @escaping Predicate) { - self._source = source - self._behavior = behavior - self._predicate = predicate + self.source = source + self.behavior = behavior + self.predicate = predicate } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { let sink = TakeUntilPredicateSink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Throttle.swift b/Example/Pods/RxSwift/RxSwift/Observables/Throttle.swift similarity index 68% rename from Pods/RxSwift/RxSwift/Observables/Throttle.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Throttle.swift index f682433..86152a8 100644 --- a/Pods/RxSwift/RxSwift/Observables/Throttle.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Throttle.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import struct Foundation.Date +import Foundation extension ObservableType { @@ -24,7 +24,7 @@ extension ObservableType { */ public func throttle(_ dueTime: RxTimeInterval, latest: Bool = true, scheduler: SchedulerType) -> Observable { - return Throttle(source: self.asObservable(), dueTime: dueTime, latest: latest, scheduler: scheduler) + Throttle(source: self.asObservable(), dueTime: dueTime, latest: latest, scheduler: scheduler) } } @@ -36,25 +36,25 @@ final private class ThrottleSink typealias Element = Observer.Element typealias ParentType = Throttle - private let _parent: ParentType + private let parent: ParentType - let _lock = RecursiveLock() + let lock = RecursiveLock() // state - private var _lastUnsentElement: Element? - private var _lastSentTime: Date? - private var _completed: Bool = false + private var lastUnsentElement: Element? + private var lastSentTime: Date? + private var completed: Bool = false let cancellable = SerialDisposable() init(parent: ParentType, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - let subscription = self._parent._source.subscribe(self) + let subscription = self.parent.source.subscribe(self) return Disposables.create(subscription, cancellable) } @@ -63,15 +63,15 @@ final private class ThrottleSink self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case .next(let element): - let now = self._parent._scheduler.now + let now = self.parent.scheduler.now let reducedScheduledTime: RxTimeInterval - if let lastSendingTime = self._lastSentTime { - reducedScheduledTime = self._parent._dueTime.reduceWithSpanBetween(earlierDate: lastSendingTime, laterDate: now) + if let lastSendingTime = self.lastSentTime { + reducedScheduledTime = self.parent.dueTime.reduceWithSpanBetween(earlierDate: lastSendingTime, laterDate: now) } else { reducedScheduledTime = .nanoseconds(0) @@ -82,31 +82,31 @@ final private class ThrottleSink return } - if !self._parent._latest { + if !self.parent.latest { return } - let isThereAlreadyInFlightRequest = self._lastUnsentElement != nil + let isThereAlreadyInFlightRequest = self.lastUnsentElement != nil - self._lastUnsentElement = element + self.lastUnsentElement = element if isThereAlreadyInFlightRequest { return } - let scheduler = self._parent._scheduler + let scheduler = self.parent.scheduler let d = SingleAssignmentDisposable() self.cancellable.disposable = d d.setDisposable(scheduler.scheduleRelative(0, dueTime: reducedScheduledTime, action: self.propagate)) case .error: - self._lastUnsentElement = nil + self.lastUnsentElement = nil self.forwardOn(event) self.dispose() case .completed: - if self._lastUnsentElement != nil { - self._completed = true + if self.lastUnsentElement != nil { + self.completed = true } else { self.forwardOn(.completed) @@ -116,38 +116,39 @@ final private class ThrottleSink } private func sendNow(element: Element) { - self._lastUnsentElement = nil + self.lastUnsentElement = nil self.forwardOn(.next(element)) // in case element processing takes a while, this should give some more room - self._lastSentTime = self._parent._scheduler.now + self.lastSentTime = self.parent.scheduler.now } func propagate(_: Int) -> Disposable { - self._lock.lock(); defer { self._lock.unlock() } // { - if let lastUnsentElement = self._lastUnsentElement { + self.lock.performLocked { + if let lastUnsentElement = self.lastUnsentElement { self.sendNow(element: lastUnsentElement) } - if self._completed { + if self.completed { self.forwardOn(.completed) self.dispose() } - // } + } + return Disposables.create() } } final private class Throttle: Producer { - fileprivate let _source: Observable - fileprivate let _dueTime: RxTimeInterval - fileprivate let _latest: Bool - fileprivate let _scheduler: SchedulerType + fileprivate let source: Observable + fileprivate let dueTime: RxTimeInterval + fileprivate let latest: Bool + fileprivate let scheduler: SchedulerType init(source: Observable, dueTime: RxTimeInterval, latest: Bool, scheduler: SchedulerType) { - self._source = source - self._dueTime = dueTime - self._latest = latest - self._scheduler = scheduler + self.source = source + self.dueTime = dueTime + self.latest = latest + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/Timeout.swift b/Example/Pods/RxSwift/RxSwift/Observables/Timeout.swift similarity index 72% rename from Pods/RxSwift/RxSwift/Observables/Timeout.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Timeout.swift index 3177c42..efcc791 100644 --- a/Pods/RxSwift/RxSwift/Observables/Timeout.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Timeout.swift @@ -42,30 +42,30 @@ final private class TimeoutSink: Sink, LockOwn typealias Element = Observer.Element typealias Parent = Timeout - private let _parent: Parent + private let parent: Parent - let _lock = RecursiveLock() + let lock = RecursiveLock() - private let _timerD = SerialDisposable() - private let _subscription = SerialDisposable() + private let timerD = SerialDisposable() + private let subscription = SerialDisposable() - private var _id = 0 - private var _switched = false + private var id = 0 + private var switched = false init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { let original = SingleAssignmentDisposable() - self._subscription.disposable = original + self.subscription.disposable = original - self._createTimeoutTimer() + self.createTimeoutTimer() - original.setDisposable(self._parent._source.subscribe(self)) + original.setDisposable(self.parent.source.subscribe(self)) - return Disposables.create(_subscription, _timerD) + return Disposables.create(subscription, timerD) } func on(_ event: Event) { @@ -73,24 +73,24 @@ final private class TimeoutSink: Sink, LockOwn case .next: var onNextWins = false - self._lock.performLocked { - onNextWins = !self._switched + self.lock.performLocked { + onNextWins = !self.switched if onNextWins { - self._id = self._id &+ 1 + self.id = self.id &+ 1 } } if onNextWins { self.forwardOn(event) - self._createTimeoutTimer() + self.createTimeoutTimer() } case .error, .completed: var onEventWins = false - self._lock.performLocked { - onEventWins = !self._switched + self.lock.performLocked { + onEventWins = !self.switched if onEventWins { - self._id = self._id &+ 1 + self.id = self.id &+ 1 } } @@ -101,25 +101,25 @@ final private class TimeoutSink: Sink, LockOwn } } - private func _createTimeoutTimer() { - if self._timerD.isDisposed { + private func createTimeoutTimer() { + if self.timerD.isDisposed { return } let nextTimer = SingleAssignmentDisposable() - self._timerD.disposable = nextTimer + self.timerD.disposable = nextTimer - let disposeSchedule = self._parent._scheduler.scheduleRelative(self._id, dueTime: self._parent._dueTime) { state in + let disposeSchedule = self.parent.scheduler.scheduleRelative(self.id, dueTime: self.parent.dueTime) { state in var timerWins = false - self._lock.performLocked { - self._switched = (state == self._id) - timerWins = self._switched + self.lock.performLocked { + self.switched = (state == self.id) + timerWins = self.switched } if timerWins { - self._subscription.disposable = self._parent._other.subscribe(self.forwarder()) + self.subscription.disposable = self.parent.other.subscribe(self.forwarder()) } return Disposables.create() @@ -131,16 +131,16 @@ final private class TimeoutSink: Sink, LockOwn final private class Timeout: Producer { - fileprivate let _source: Observable - fileprivate let _dueTime: RxTimeInterval - fileprivate let _other: Observable - fileprivate let _scheduler: SchedulerType + fileprivate let source: Observable + fileprivate let dueTime: RxTimeInterval + fileprivate let other: Observable + fileprivate let scheduler: SchedulerType init(source: Observable, dueTime: RxTimeInterval, other: Observable, scheduler: SchedulerType) { - self._source = source - self._dueTime = dueTime - self._other = other - self._scheduler = scheduler + self.source = source + self.dueTime = dueTime + self.other = other + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/Timer.swift b/Example/Pods/RxSwift/RxSwift/Observables/Timer.swift similarity index 79% rename from Pods/RxSwift/RxSwift/Observables/Timer.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Timer.swift index 7b29bca..30bbdf6 100644 --- a/Pods/RxSwift/RxSwift/Observables/Timer.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Timer.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -extension ObservableType where Element : RxAbstractInteger { +extension ObservableType where Element: RxAbstractInteger { /** Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages. @@ -52,19 +52,20 @@ import Foundation final private class TimerSink : Sink where Observer.Element : RxAbstractInteger { typealias Parent = Timer - private let _parent: Parent - private let _lock = RecursiveLock() + private let parent: Parent + private let lock = RecursiveLock() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - return self._parent._scheduler.schedulePeriodic(0 as Observer.Element, startAfter: self._parent._dueTime, period: self._parent._period!) { state in - self._lock.lock(); defer { self._lock.unlock() } - self.forwardOn(.next(state)) - return state &+ 1 + return self.parent.scheduler.schedulePeriodic(0 as Observer.Element, startAfter: self.parent.dueTime, period: self.parent.period!) { state in + self.lock.performLocked { + self.forwardOn(.next(state)) + return state &+ 1 + } } } } @@ -72,15 +73,15 @@ final private class TimerSink : Sink where Obs final private class TimerOneOffSink: Sink where Observer.Element: RxAbstractInteger { typealias Parent = Timer - private let _parent: Parent + private let parent: Parent init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - return self._parent._scheduler.scheduleRelative(self, dueTime: self._parent._dueTime) { [unowned self] _ -> Disposable in + return self.parent.scheduler.scheduleRelative(self, dueTime: self.parent.dueTime) { [unowned self] _ -> Disposable in self.forwardOn(.next(0)) self.forwardOn(.completed) self.dispose() @@ -91,18 +92,18 @@ final private class TimerOneOffSink: Sink wher } final private class Timer: Producer { - fileprivate let _scheduler: SchedulerType - fileprivate let _dueTime: RxTimeInterval - fileprivate let _period: RxTimeInterval? + fileprivate let scheduler: SchedulerType + fileprivate let dueTime: RxTimeInterval + fileprivate let period: RxTimeInterval? init(dueTime: RxTimeInterval, period: RxTimeInterval?, scheduler: SchedulerType) { - self._scheduler = scheduler - self._dueTime = dueTime - self._period = period + self.scheduler = scheduler + self.dueTime = dueTime + self.period = period } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { - if self._period != nil { + if self.period != nil { let sink = TimerSink(parent: self, observer: observer, cancel: cancel) let subscription = sink.run() return (sink: sink, subscription: subscription) diff --git a/Pods/RxSwift/RxSwift/Observables/ToArray.swift b/Example/Pods/RxSwift/RxSwift/Observables/ToArray.swift similarity index 81% rename from Pods/RxSwift/RxSwift/Observables/ToArray.swift rename to Example/Pods/RxSwift/RxSwift/Observables/ToArray.swift index 2821a60..76c7370 100644 --- a/Pods/RxSwift/RxSwift/Observables/ToArray.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/ToArray.swift @@ -6,9 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // - extension ObservableType { - /** Converts an Observable into a Single that emits the whole sequence as a single array and then terminates. @@ -20,18 +18,18 @@ extension ObservableType { */ public func toArray() -> Single<[Element]> { - return PrimitiveSequence(raw: ToArray(source: self.asObservable())) + PrimitiveSequence(raw: ToArray(source: self.asObservable())) } } final private class ToArraySink: Sink, ObserverType where Observer.Element == [SourceType] { typealias Parent = ToArray - let _parent: Parent - var _list = [SourceType]() + let parent: Parent + var list = [SourceType]() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -39,12 +37,12 @@ final private class ToArraySink: Sink) { switch event { case .next(let value): - self._list.append(value) + self.list.append(value) case .error(let e): self.forwardOn(.error(e)) self.dispose() case .completed: - self.forwardOn(.next(self._list)) + self.forwardOn(.next(self.list)) self.forwardOn(.completed) self.dispose() } @@ -52,15 +50,15 @@ final private class ToArraySink: Sink: Producer<[SourceType]> { - let _source: Observable + let source: Observable init(source: Observable) { - self._source = source + self.source = source } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == [SourceType] { let sink = ToArraySink(parent: self, observer: observer, cancel: cancel) - let subscription = self._source.subscribe(sink) + let subscription = self.source.subscribe(sink) return (sink: sink, subscription: subscription) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Using.swift b/Example/Pods/RxSwift/RxSwift/Observables/Using.swift similarity index 85% rename from Pods/RxSwift/RxSwift/Observables/Using.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Using.swift index 14c5698..ca48d2f 100644 --- a/Pods/RxSwift/RxSwift/Observables/Using.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Using.swift @@ -17,7 +17,7 @@ extension ObservableType { - returns: An observable sequence whose lifetime controls the lifetime of the dependent resource object. */ public static func using(_ resourceFactory: @escaping () throws -> Resource, observableFactory: @escaping (Resource) throws -> Observable) -> Observable { - return Using(resourceFactory: resourceFactory, observableFactory: observableFactory) + Using(resourceFactory: resourceFactory, observableFactory: observableFactory) } } @@ -25,10 +25,10 @@ final private class UsingSink: typealias SourceType = Observer.Element typealias Parent = Using - private let _parent: Parent + private let parent: Parent init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -36,9 +36,9 @@ final private class UsingSink: var disposable = Disposables.create() do { - let resource = try self._parent._resourceFactory() + let resource = try self.parent.resourceFactory() disposable = resource - let source = try self._parent._observableFactory(resource) + let source = try self.parent.observableFactory(resource) return Disposables.create( source.subscribe(self), @@ -73,13 +73,13 @@ final private class Using: Producer ResourceType typealias ObservableFactory = (ResourceType) throws -> Observable - fileprivate let _resourceFactory: ResourceFactory - fileprivate let _observableFactory: ObservableFactory + fileprivate let resourceFactory: ResourceFactory + fileprivate let observableFactory: ObservableFactory init(resourceFactory: @escaping ResourceFactory, observableFactory: @escaping ObservableFactory) { - self._resourceFactory = resourceFactory - self._observableFactory = observableFactory + self.resourceFactory = resourceFactory + self.observableFactory = observableFactory } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { diff --git a/Pods/RxSwift/RxSwift/Observables/Window.swift b/Example/Pods/RxSwift/RxSwift/Observables/Window.swift similarity index 60% rename from Pods/RxSwift/RxSwift/Observables/Window.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Window.swift index b93cfa6..b2a37a5 100644 --- a/Pods/RxSwift/RxSwift/Observables/Window.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Window.swift @@ -31,76 +31,76 @@ final private class WindowTimeCountSink , SynchronizedOnType where Observer.Element == Observable { typealias Parent = WindowTimeCount - private let _parent: Parent + private let parent: Parent - let _lock = RecursiveLock() + let lock = RecursiveLock() - private var _subject = PublishSubject() - private var _count = 0 - private var _windowId = 0 + private var subject = PublishSubject() + private var count = 0 + private var windowId = 0 - private let _timerD = SerialDisposable() - private let _refCountDisposable: RefCountDisposable - private let _groupDisposable = CompositeDisposable() + private let timerD = SerialDisposable() + private let refCountDisposable: RefCountDisposable + private let groupDisposable = CompositeDisposable() init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent - _ = self._groupDisposable.insert(self._timerD) + _ = self.groupDisposable.insert(self.timerD) - self._refCountDisposable = RefCountDisposable(disposable: self._groupDisposable) + self.refCountDisposable = RefCountDisposable(disposable: self.groupDisposable) super.init(observer: observer, cancel: cancel) } func run() -> Disposable { - self.forwardOn(.next(AddRef(source: self._subject, refCount: self._refCountDisposable).asObservable())) - self.createTimer(self._windowId) + self.forwardOn(.next(AddRef(source: self.subject, refCount: self.refCountDisposable).asObservable())) + self.createTimer(self.windowId) - _ = self._groupDisposable.insert(self._parent._source.subscribe(self)) - return self._refCountDisposable + _ = self.groupDisposable.insert(self.parent.source.subscribe(self)) + return self.refCountDisposable } func startNewWindowAndCompleteCurrentOne() { - self._subject.on(.completed) - self._subject = PublishSubject() + self.subject.on(.completed) + self.subject = PublishSubject() - self.forwardOn(.next(AddRef(source: self._subject, refCount: self._refCountDisposable).asObservable())) + self.forwardOn(.next(AddRef(source: self.subject, refCount: self.refCountDisposable).asObservable())) } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { var newWindow = false var newId = 0 switch event { case .next(let element): - self._subject.on(.next(element)) + self.subject.on(.next(element)) do { - _ = try incrementChecked(&self._count) + _ = try incrementChecked(&self.count) } catch let e { - self._subject.on(.error(e as Swift.Error)) + self.subject.on(.error(e as Swift.Error)) self.dispose() } - if self._count == self._parent._count { + if self.count == self.parent.count { newWindow = true - self._count = 0 - self._windowId += 1 - newId = self._windowId + self.count = 0 + self.windowId += 1 + newId = self.windowId self.startNewWindowAndCompleteCurrentOne() } case .error(let error): - self._subject.on(.error(error)) + self.subject.on(.error(error)) self.forwardOn(.error(error)) self.dispose() case .completed: - self._subject.on(.completed) + self.subject.on(.completed) self.forwardOn(.completed) self.dispose() } @@ -111,30 +111,30 @@ final private class WindowTimeCountSink } func createTimer(_ windowId: Int) { - if self._timerD.isDisposed { + if self.timerD.isDisposed { return } - if self._windowId != windowId { + if self.windowId != windowId { return } let nextTimer = SingleAssignmentDisposable() - self._timerD.disposable = nextTimer + self.timerD.disposable = nextTimer - let scheduledRelative = self._parent._scheduler.scheduleRelative(windowId, dueTime: self._parent._timeSpan) { previousWindowId in + let scheduledRelative = self.parent.scheduler.scheduleRelative(windowId, dueTime: self.parent.timeSpan) { previousWindowId in var newId = 0 - self._lock.performLocked { - if previousWindowId != self._windowId { + self.lock.performLocked { + if previousWindowId != self.windowId { return } - self._count = 0 - self._windowId = self._windowId &+ 1 - newId = self._windowId + self.count = 0 + self.windowId = self.windowId &+ 1 + newId = self.windowId self.startNewWindowAndCompleteCurrentOne() } @@ -148,16 +148,16 @@ final private class WindowTimeCountSink } final private class WindowTimeCount: Producer> { - fileprivate let _timeSpan: RxTimeInterval - fileprivate let _count: Int - fileprivate let _scheduler: SchedulerType - fileprivate let _source: Observable + fileprivate let timeSpan: RxTimeInterval + fileprivate let count: Int + fileprivate let scheduler: SchedulerType + fileprivate let source: Observable init(source: Observable, timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) { - self._source = source - self._timeSpan = timeSpan - self._count = count - self._scheduler = scheduler + self.source = source + self.timeSpan = timeSpan + self.count = count + self.scheduler = scheduler } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Observable { diff --git a/Pods/RxSwift/RxSwift/Observables/WithLatestFrom.swift b/Example/Pods/RxSwift/RxSwift/Observables/WithLatestFrom.swift similarity index 73% rename from Pods/RxSwift/RxSwift/Observables/WithLatestFrom.swift rename to Example/Pods/RxSwift/RxSwift/Observables/WithLatestFrom.swift index b471f29..d286812 100644 --- a/Pods/RxSwift/RxSwift/Observables/WithLatestFrom.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/WithLatestFrom.swift @@ -12,25 +12,27 @@ extension ObservableType { Merges two observable sequences into one observable sequence by combining each element from self with the latest element from the second source, if any. - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + - note: Elements emitted by self before the second source has emitted any values will be omitted. - parameter second: Second observable source. - parameter resultSelector: Function to invoke for each element from the self combined with the latest element from the second source, if any. - returns: An observable sequence containing the result of combining each element of the self with the latest element from the second source, if any, using the specified result selector function. */ public func withLatestFrom(_ second: Source, resultSelector: @escaping (Element, Source.Element) throws -> ResultType) -> Observable { - return WithLatestFrom(first: self.asObservable(), second: second.asObservable(), resultSelector: resultSelector) + WithLatestFrom(first: self.asObservable(), second: second.asObservable(), resultSelector: resultSelector) } /** Merges two observable sequences into one observable sequence by using latest element from the second sequence every time when `self` emits an element. - seealso: [combineLatest operator on reactivex.io](http://reactivex.io/documentation/operators/combinelatest.html) + - note: Elements emitted by self before the second source has emitted any values will be omitted. - parameter second: Second observable source. - returns: An observable sequence containing the result of combining each element of the self with the latest element from the second source, if any, using the specified result selector function. */ public func withLatestFrom(_ second: Source) -> Observable { - return WithLatestFrom(first: self.asObservable(), second: second.asObservable(), resultSelector: { $1 }) + WithLatestFrom(first: self.asObservable(), second: second.asObservable(), resultSelector: { $1 }) } } @@ -43,13 +45,13 @@ final private class WithLatestFromSink typealias Element = FirstType - fileprivate let _parent: Parent + private let parent: Parent - var _lock = RecursiveLock() - fileprivate var _latest: SecondType? + fileprivate var lock = RecursiveLock() + fileprivate var latest: SecondType? init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(observer: observer, cancel: cancel) } @@ -58,8 +60,8 @@ final private class WithLatestFromSink) { + func synchronized_on(_ event: Event) { switch event { case let .next(value): - guard let latest = self._latest else { return } + guard let latest = self.latest else { return } do { - let res = try self._parent._resultSelector(value, latest) + let res = try self.parent.resultSelector(value, latest) self.forwardOn(.next(res)) } catch let e { @@ -99,31 +101,31 @@ final private class WithLatestFromSecond typealias Element = SecondType - private let _parent: Parent - private let _disposable: Disposable + private let parent: Parent + private let disposable: Disposable - var _lock: RecursiveLock { - return self._parent._lock + var lock: RecursiveLock { + self.parent.lock } init(parent: Parent, disposable: Disposable) { - self._parent = parent - self._disposable = disposable + self.parent = parent + self.disposable = disposable } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { + func synchronized_on(_ event: Event) { switch event { case let .next(value): - self._parent._latest = value + self.parent.latest = value case .completed: - self._disposable.dispose() + self.disposable.dispose() case let .error(error): - self._parent.forwardOn(.error(error)) - self._parent.dispose() + self.parent.forwardOn(.error(error)) + self.parent.dispose() } } } @@ -131,14 +133,14 @@ final private class WithLatestFromSecond: Producer { typealias ResultSelector = (FirstType, SecondType) throws -> ResultType - fileprivate let _first: Observable - fileprivate let _second: Observable - fileprivate let _resultSelector: ResultSelector + fileprivate let first: Observable + fileprivate let second: Observable + fileprivate let resultSelector: ResultSelector init(first: Observable, second: Observable, resultSelector: @escaping ResultSelector) { - self._first = first - self._second = second - self._resultSelector = resultSelector + self.first = first + self.second = second + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == ResultType { diff --git a/Example/Pods/RxSwift/RxSwift/Observables/WithUnretained.swift b/Example/Pods/RxSwift/RxSwift/Observables/WithUnretained.swift new file mode 100644 index 0000000..7708831 --- /dev/null +++ b/Example/Pods/RxSwift/RxSwift/Observables/WithUnretained.swift @@ -0,0 +1,54 @@ +// +// WithUnretained.swift +// RxSwift +// +// Created by Vincent Pradeilles on 01/01/2021. +// Copyright © 2020 Krunoslav Zaher. All rights reserved. +// + +extension ObservableType { + /** + Provides an unretained, safe to use (i.e. not implicitly unwrapped), reference to an object along with the events emitted by the sequence. + + In the case the provided object cannot be retained successfully, the seqeunce will complete. + + - parameter obj: The object to provide an unretained reference on. + - parameter resultSelector: A function to combine the unretained referenced on `obj` and the value of the observable sequence. + - returns: An observable sequence that contains the result of `resultSelector` being called with an unretained reference on `obj` and the values of the original sequence. + */ + public func withUnretained( + _ obj: Object, + resultSelector: @escaping (Object, Element) -> Out + ) -> Observable { + map { [weak obj] element -> Out in + guard let obj = obj else { throw UnretainedError.failedRetaining } + + return resultSelector(obj, element) + } + .catch{ error -> Observable in + guard let unretainedError = error as? UnretainedError, + unretainedError == .failedRetaining else { + return .error(error) + } + + return .empty() + } + } + + + /** + Provides an unretained, safe to use (i.e. not implicitly unwrapped), reference to an object along with the events emitted by the sequence. + + In the case the provided object cannot be retained successfully, the seqeunce will complete. + + - parameter obj: The object to provide an unretained reference on. + - returns: An observable sequence of tuples that contains both an unretained reference on `obj` and the values of the original sequence. + */ + public func withUnretained(_ obj: Object) -> Observable<(Object, Element)> { + return withUnretained(obj) { ($0, $1) } + } +} + +private enum UnretainedError: Swift.Error { + case failedRetaining +} diff --git a/Pods/RxSwift/RxSwift/Observables/Zip+Collection.swift b/Example/Pods/RxSwift/RxSwift/Observables/Zip+Collection.swift similarity index 56% rename from Pods/RxSwift/RxSwift/Observables/Zip+Collection.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Zip+Collection.swift index cc232ab..2d7f887 100644 --- a/Pods/RxSwift/RxSwift/Observables/Zip+Collection.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Zip+Collection.swift @@ -17,7 +17,7 @@ extension ObservableType { */ public static func zip(_ collection: Collection, resultSelector: @escaping ([Collection.Element.Element]) throws -> Element) -> Observable where Collection.Element: ObservableType { - return ZipCollectionType(sources: collection, resultSelector: resultSelector) + ZipCollectionType(sources: collection, resultSelector: resultSelector) } /** @@ -29,7 +29,7 @@ extension ObservableType { */ public static func zip(_ collection: Collection) -> Observable<[Element]> where Collection.Element: ObservableType, Collection.Element.Element == Element { - return ZipCollectionType(sources: collection, resultSelector: { $0 }) + ZipCollectionType(sources: collection, resultSelector: { $0 }) } } @@ -40,111 +40,110 @@ final private class ZipCollectionTypeSink typealias SourceElement = Collection.Element.Element - private let _parent: Parent + private let parent: Parent - private let _lock = RecursiveLock() + private let lock = RecursiveLock() // state - private var _numberOfValues = 0 - private var _values: [Queue] - private var _isDone: [Bool] - private var _numberOfDone = 0 - private var _subscriptions: [SingleAssignmentDisposable] + private var numberOfValues = 0 + private var values: [Queue] + private var isDone: [Bool] + private var numberOfDone = 0 + private var subscriptions: [SingleAssignmentDisposable] init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent - self._values = [Queue](repeating: Queue(capacity: 4), count: parent.count) - self._isDone = [Bool](repeating: false, count: parent.count) - self._subscriptions = [SingleAssignmentDisposable]() - self._subscriptions.reserveCapacity(parent.count) + self.parent = parent + self.values = [Queue](repeating: Queue(capacity: 4), count: parent.count) + self.isDone = [Bool](repeating: false, count: parent.count) + self.subscriptions = [SingleAssignmentDisposable]() + self.subscriptions.reserveCapacity(parent.count) for _ in 0 ..< parent.count { - self._subscriptions.append(SingleAssignmentDisposable()) + self.subscriptions.append(SingleAssignmentDisposable()) } super.init(observer: observer, cancel: cancel) } func on(_ event: Event, atIndex: Int) { - self._lock.lock(); defer { self._lock.unlock() } // { - switch event { - case .next(let element): - self._values[atIndex].enqueue(element) - - if self._values[atIndex].count == 1 { - self._numberOfValues += 1 + self.lock.lock(); defer { self.lock.unlock() } + switch event { + case .next(let element): + self.values[atIndex].enqueue(element) + + if self.values[atIndex].count == 1 { + self.numberOfValues += 1 + } + + if self.numberOfValues < self.parent.count { + if self.numberOfDone == self.parent.count - 1 { + self.forwardOn(.completed) + self.dispose() } + return + } + + do { + var arguments = [SourceElement]() + arguments.reserveCapacity(self.parent.count) - if self._numberOfValues < self._parent.count { - if self._numberOfDone == self._parent.count - 1 { - self.forwardOn(.completed) - self.dispose() - } - return - } + // recalculate number of values + self.numberOfValues = 0 - do { - var arguments = [SourceElement]() - arguments.reserveCapacity(self._parent.count) - - // recalculate number of values - self._numberOfValues = 0 - - for i in 0 ..< self._values.count { - arguments.append(self._values[i].dequeue()!) - if !self._values[i].isEmpty { - self._numberOfValues += 1 - } + for i in 0 ..< self.values.count { + arguments.append(self.values[i].dequeue()!) + if !self.values[i].isEmpty { + self.numberOfValues += 1 } - - let result = try self._parent.resultSelector(arguments) - self.forwardOn(.next(result)) - } - catch let error { - self.forwardOn(.error(error)) - self.dispose() } - case .error(let error): + let result = try self.parent.resultSelector(arguments) + self.forwardOn(.next(result)) + } + catch let error { self.forwardOn(.error(error)) self.dispose() - case .completed: - if self._isDone[atIndex] { - return - } - - self._isDone[atIndex] = true - self._numberOfDone += 1 - - if self._numberOfDone == self._parent.count { - self.forwardOn(.completed) - self.dispose() - } - else { - self._subscriptions[atIndex].dispose() - } } - // } + + case .error(let error): + self.forwardOn(.error(error)) + self.dispose() + case .completed: + if self.isDone[atIndex] { + return + } + + self.isDone[atIndex] = true + self.numberOfDone += 1 + + if self.numberOfDone == self.parent.count { + self.forwardOn(.completed) + self.dispose() + } + else { + self.subscriptions[atIndex].dispose() + } + } } func run() -> Disposable { var j = 0 - for i in self._parent.sources { + for i in self.parent.sources { let index = j let source = i.asObservable() let disposable = source.subscribe(AnyObserver { event in self.on(event, atIndex: index) }) - self._subscriptions[j].setDisposable(disposable) + self.subscriptions[j].setDisposable(disposable) j += 1 } - if self._parent.sources.isEmpty { + if self.parent.sources.isEmpty { self.forwardOn(.completed) } - return Disposables.create(_subscriptions) + return Disposables.create(subscriptions) } } diff --git a/Pods/RxSwift/RxSwift/Observables/Zip+arity.swift b/Example/Pods/RxSwift/RxSwift/Observables/Zip+arity.swift similarity index 69% rename from Pods/RxSwift/RxSwift/Observables/Zip+arity.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Zip+arity.swift index d2a28d4..b6d876d 100644 --- a/Pods/RxSwift/RxSwift/Observables/Zip+arity.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Zip+arity.swift @@ -52,20 +52,20 @@ final class ZipSink2_ : ZipSink { typealias Result = Observer.Element typealias Parent = Zip2 - let _parent: Parent + let parent: Parent - var _values1: Queue = Queue(capacity: 2) - var _values2: Queue = Queue(capacity: 2) + var values1: Queue = Queue(capacity: 2) + var values2: Queue = Queue(capacity: 2) init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 2, observer: observer, cancel: cancel) } override func hasElements(_ index: Int) -> Bool { switch index { - case 0: return !self._values1.isEmpty - case 1: return !self._values2.isEmpty + case 0: return !self.values1.isEmpty + case 1: return !self.values2.isEmpty default: rxFatalError("Unhandled case (Function)") @@ -76,11 +76,11 @@ final class ZipSink2_ : ZipSink { let subscription1 = SingleAssignmentDisposable() let subscription2 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: self._lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) - let observer2 = ZipObserver(lock: self._lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) + let observer1 = ZipObserver(lock: self.lock, parent: self, index: 0, setNextValue: { self.values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: self.lock, parent: self, index: 1, setNextValue: { self.values2.enqueue($0) }, this: subscription2) - subscription1.setDisposable(self._parent.source1.subscribe(observer1)) - subscription2.setDisposable(self._parent.source2.subscribe(observer2)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) return Disposables.create([ subscription1, @@ -89,7 +89,7 @@ final class ZipSink2_ : ZipSink { } override func getResult() throws -> Result { - return try self._parent._resultSelector(self._values1.dequeue()!, self._values2.dequeue()!) + try self.parent.resultSelector(self.values1.dequeue()!, self.values2.dequeue()!) } } @@ -99,13 +99,13 @@ final class Zip2 : Producer { let source1: Observable let source2: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, resultSelector: @escaping ResultSelector) { self.source1 = source1 self.source2 = source2 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -160,22 +160,22 @@ final class ZipSink3_ : ZipSink { typealias Result = Observer.Element typealias Parent = Zip3 - let _parent: Parent + let parent: Parent - var _values1: Queue = Queue(capacity: 2) - var _values2: Queue = Queue(capacity: 2) - var _values3: Queue = Queue(capacity: 2) + var values1: Queue = Queue(capacity: 2) + var values2: Queue = Queue(capacity: 2) + var values3: Queue = Queue(capacity: 2) init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 3, observer: observer, cancel: cancel) } override func hasElements(_ index: Int) -> Bool { switch index { - case 0: return !self._values1.isEmpty - case 1: return !self._values2.isEmpty - case 2: return !self._values3.isEmpty + case 0: return !self.values1.isEmpty + case 1: return !self.values2.isEmpty + case 2: return !self.values3.isEmpty default: rxFatalError("Unhandled case (Function)") @@ -187,13 +187,13 @@ final class ZipSink3_ : ZipSink { let subscription2 = SingleAssignmentDisposable() let subscription3 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: self._lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) - let observer2 = ZipObserver(lock: self._lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) - let observer3 = ZipObserver(lock: self._lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) + let observer1 = ZipObserver(lock: self.lock, parent: self, index: 0, setNextValue: { self.values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: self.lock, parent: self, index: 1, setNextValue: { self.values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: self.lock, parent: self, index: 2, setNextValue: { self.values3.enqueue($0) }, this: subscription3) - subscription1.setDisposable(self._parent.source1.subscribe(observer1)) - subscription2.setDisposable(self._parent.source2.subscribe(observer2)) - subscription3.setDisposable(self._parent.source3.subscribe(observer3)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) return Disposables.create([ subscription1, @@ -203,7 +203,7 @@ final class ZipSink3_ : ZipSink { } override func getResult() throws -> Result { - return try self._parent._resultSelector(self._values1.dequeue()!, self._values2.dequeue()!, self._values3.dequeue()!) + try self.parent.resultSelector(self.values1.dequeue()!, self.values2.dequeue()!, self.values3.dequeue()!) } } @@ -214,14 +214,14 @@ final class Zip3 : Producer { let source2: Observable let source3: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, resultSelector: @escaping ResultSelector) { self.source1 = source1 self.source2 = source2 self.source3 = source3 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -276,24 +276,24 @@ final class ZipSink4_ : ZipSink - let _parent: Parent + let parent: Parent - var _values1: Queue = Queue(capacity: 2) - var _values2: Queue = Queue(capacity: 2) - var _values3: Queue = Queue(capacity: 2) - var _values4: Queue = Queue(capacity: 2) + var values1: Queue = Queue(capacity: 2) + var values2: Queue = Queue(capacity: 2) + var values3: Queue = Queue(capacity: 2) + var values4: Queue = Queue(capacity: 2) init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 4, observer: observer, cancel: cancel) } override func hasElements(_ index: Int) -> Bool { switch index { - case 0: return !self._values1.isEmpty - case 1: return !self._values2.isEmpty - case 2: return !self._values3.isEmpty - case 3: return !self._values4.isEmpty + case 0: return !self.values1.isEmpty + case 1: return !self.values2.isEmpty + case 2: return !self.values3.isEmpty + case 3: return !self.values4.isEmpty default: rxFatalError("Unhandled case (Function)") @@ -306,15 +306,15 @@ final class ZipSink4_ : ZipSink : ZipSink Result { - return try self._parent._resultSelector(self._values1.dequeue()!, self._values2.dequeue()!, self._values3.dequeue()!, self._values4.dequeue()!) + try self.parent.resultSelector(self.values1.dequeue()!, self.values2.dequeue()!, self.values3.dequeue()!, self.values4.dequeue()!) } } @@ -337,7 +337,7 @@ final class Zip4 : Producer { let source3: Observable let source4: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, resultSelector: @escaping ResultSelector) { self.source1 = source1 @@ -345,7 +345,7 @@ final class Zip4 : Producer { self.source3 = source3 self.source4 = source4 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -400,26 +400,26 @@ final class ZipSink5_ : ZipSink - let _parent: Parent + let parent: Parent - var _values1: Queue = Queue(capacity: 2) - var _values2: Queue = Queue(capacity: 2) - var _values3: Queue = Queue(capacity: 2) - var _values4: Queue = Queue(capacity: 2) - var _values5: Queue = Queue(capacity: 2) + var values1: Queue = Queue(capacity: 2) + var values2: Queue = Queue(capacity: 2) + var values3: Queue = Queue(capacity: 2) + var values4: Queue = Queue(capacity: 2) + var values5: Queue = Queue(capacity: 2) init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 5, observer: observer, cancel: cancel) } override func hasElements(_ index: Int) -> Bool { switch index { - case 0: return !self._values1.isEmpty - case 1: return !self._values2.isEmpty - case 2: return !self._values3.isEmpty - case 3: return !self._values4.isEmpty - case 4: return !self._values5.isEmpty + case 0: return !self.values1.isEmpty + case 1: return !self.values2.isEmpty + case 2: return !self.values3.isEmpty + case 3: return !self.values4.isEmpty + case 4: return !self.values5.isEmpty default: rxFatalError("Unhandled case (Function)") @@ -433,17 +433,17 @@ final class ZipSink5_ : ZipSink : ZipSink Result { - return try self._parent._resultSelector(self._values1.dequeue()!, self._values2.dequeue()!, self._values3.dequeue()!, self._values4.dequeue()!, self._values5.dequeue()!) + try self.parent.resultSelector(self.values1.dequeue()!, self.values2.dequeue()!, self.values3.dequeue()!, self.values4.dequeue()!, self.values5.dequeue()!) } } @@ -468,7 +468,7 @@ final class Zip5 : Producer { let source4: Observable let source5: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, resultSelector: @escaping ResultSelector) { self.source1 = source1 @@ -477,7 +477,7 @@ final class Zip5 : Producer { self.source4 = source4 self.source5 = source5 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -532,28 +532,28 @@ final class ZipSink6_ : ZipSink< typealias Result = Observer.Element typealias Parent = Zip6 - let _parent: Parent + let parent: Parent - var _values1: Queue = Queue(capacity: 2) - var _values2: Queue = Queue(capacity: 2) - var _values3: Queue = Queue(capacity: 2) - var _values4: Queue = Queue(capacity: 2) - var _values5: Queue = Queue(capacity: 2) - var _values6: Queue = Queue(capacity: 2) + var values1: Queue = Queue(capacity: 2) + var values2: Queue = Queue(capacity: 2) + var values3: Queue = Queue(capacity: 2) + var values4: Queue = Queue(capacity: 2) + var values5: Queue = Queue(capacity: 2) + var values6: Queue = Queue(capacity: 2) init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 6, observer: observer, cancel: cancel) } override func hasElements(_ index: Int) -> Bool { switch index { - case 0: return !self._values1.isEmpty - case 1: return !self._values2.isEmpty - case 2: return !self._values3.isEmpty - case 3: return !self._values4.isEmpty - case 4: return !self._values5.isEmpty - case 5: return !self._values6.isEmpty + case 0: return !self.values1.isEmpty + case 1: return !self.values2.isEmpty + case 2: return !self.values3.isEmpty + case 3: return !self.values4.isEmpty + case 4: return !self.values5.isEmpty + case 5: return !self.values6.isEmpty default: rxFatalError("Unhandled case (Function)") @@ -568,19 +568,19 @@ final class ZipSink6_ : ZipSink< let subscription5 = SingleAssignmentDisposable() let subscription6 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: self._lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) - let observer2 = ZipObserver(lock: self._lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) - let observer3 = ZipObserver(lock: self._lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) - let observer4 = ZipObserver(lock: self._lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) - let observer5 = ZipObserver(lock: self._lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5) - let observer6 = ZipObserver(lock: self._lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6) + let observer1 = ZipObserver(lock: self.lock, parent: self, index: 0, setNextValue: { self.values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: self.lock, parent: self, index: 1, setNextValue: { self.values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: self.lock, parent: self, index: 2, setNextValue: { self.values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: self.lock, parent: self, index: 3, setNextValue: { self.values4.enqueue($0) }, this: subscription4) + let observer5 = ZipObserver(lock: self.lock, parent: self, index: 4, setNextValue: { self.values5.enqueue($0) }, this: subscription5) + let observer6 = ZipObserver(lock: self.lock, parent: self, index: 5, setNextValue: { self.values6.enqueue($0) }, this: subscription6) - subscription1.setDisposable(self._parent.source1.subscribe(observer1)) - subscription2.setDisposable(self._parent.source2.subscribe(observer2)) - subscription3.setDisposable(self._parent.source3.subscribe(observer3)) - subscription4.setDisposable(self._parent.source4.subscribe(observer4)) - subscription5.setDisposable(self._parent.source5.subscribe(observer5)) - subscription6.setDisposable(self._parent.source6.subscribe(observer6)) + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) + subscription5.setDisposable(self.parent.source5.subscribe(observer5)) + subscription6.setDisposable(self.parent.source6.subscribe(observer6)) return Disposables.create([ subscription1, @@ -593,7 +593,7 @@ final class ZipSink6_ : ZipSink< } override func getResult() throws -> Result { - return try self._parent._resultSelector(self._values1.dequeue()!, self._values2.dequeue()!, self._values3.dequeue()!, self._values4.dequeue()!, self._values5.dequeue()!, self._values6.dequeue()!) + try self.parent.resultSelector(self.values1.dequeue()!, self.values2.dequeue()!, self.values3.dequeue()!, self.values4.dequeue()!, self.values5.dequeue()!, self.values6.dequeue()!) } } @@ -607,7 +607,7 @@ final class Zip6 : Producer { let source5: Observable let source6: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, source6: Observable, resultSelector: @escaping ResultSelector) { self.source1 = source1 @@ -617,7 +617,7 @@ final class Zip6 : Producer { self.source5 = source5 self.source6 = source6 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -672,30 +672,30 @@ final class ZipSink7_ : ZipS typealias Result = Observer.Element typealias Parent = Zip7 - let _parent: Parent + let parent: Parent - var _values1: Queue = Queue(capacity: 2) - var _values2: Queue = Queue(capacity: 2) - var _values3: Queue = Queue(capacity: 2) - var _values4: Queue = Queue(capacity: 2) - var _values5: Queue = Queue(capacity: 2) - var _values6: Queue = Queue(capacity: 2) - var _values7: Queue = Queue(capacity: 2) + var values1: Queue = Queue(capacity: 2) + var values2: Queue = Queue(capacity: 2) + var values3: Queue = Queue(capacity: 2) + var values4: Queue = Queue(capacity: 2) + var values5: Queue = Queue(capacity: 2) + var values6: Queue = Queue(capacity: 2) + var values7: Queue = Queue(capacity: 2) init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 7, observer: observer, cancel: cancel) } override func hasElements(_ index: Int) -> Bool { switch index { - case 0: return !self._values1.isEmpty - case 1: return !self._values2.isEmpty - case 2: return !self._values3.isEmpty - case 3: return !self._values4.isEmpty - case 4: return !self._values5.isEmpty - case 5: return !self._values6.isEmpty - case 6: return !self._values7.isEmpty + case 0: return !self.values1.isEmpty + case 1: return !self.values2.isEmpty + case 2: return !self.values3.isEmpty + case 3: return !self.values4.isEmpty + case 4: return !self.values5.isEmpty + case 5: return !self.values6.isEmpty + case 6: return !self.values7.isEmpty default: rxFatalError("Unhandled case (Function)") @@ -711,21 +711,21 @@ final class ZipSink7_ : ZipS let subscription6 = SingleAssignmentDisposable() let subscription7 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: self._lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) - let observer2 = ZipObserver(lock: self._lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) - let observer3 = ZipObserver(lock: self._lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) - let observer4 = ZipObserver(lock: self._lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) - let observer5 = ZipObserver(lock: self._lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5) - let observer6 = ZipObserver(lock: self._lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6) - let observer7 = ZipObserver(lock: self._lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7) - - subscription1.setDisposable(self._parent.source1.subscribe(observer1)) - subscription2.setDisposable(self._parent.source2.subscribe(observer2)) - subscription3.setDisposable(self._parent.source3.subscribe(observer3)) - subscription4.setDisposable(self._parent.source4.subscribe(observer4)) - subscription5.setDisposable(self._parent.source5.subscribe(observer5)) - subscription6.setDisposable(self._parent.source6.subscribe(observer6)) - subscription7.setDisposable(self._parent.source7.subscribe(observer7)) + let observer1 = ZipObserver(lock: self.lock, parent: self, index: 0, setNextValue: { self.values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: self.lock, parent: self, index: 1, setNextValue: { self.values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: self.lock, parent: self, index: 2, setNextValue: { self.values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: self.lock, parent: self, index: 3, setNextValue: { self.values4.enqueue($0) }, this: subscription4) + let observer5 = ZipObserver(lock: self.lock, parent: self, index: 4, setNextValue: { self.values5.enqueue($0) }, this: subscription5) + let observer6 = ZipObserver(lock: self.lock, parent: self, index: 5, setNextValue: { self.values6.enqueue($0) }, this: subscription6) + let observer7 = ZipObserver(lock: self.lock, parent: self, index: 6, setNextValue: { self.values7.enqueue($0) }, this: subscription7) + + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) + subscription5.setDisposable(self.parent.source5.subscribe(observer5)) + subscription6.setDisposable(self.parent.source6.subscribe(observer6)) + subscription7.setDisposable(self.parent.source7.subscribe(observer7)) return Disposables.create([ subscription1, @@ -739,7 +739,7 @@ final class ZipSink7_ : ZipS } override func getResult() throws -> Result { - return try self._parent._resultSelector(self._values1.dequeue()!, self._values2.dequeue()!, self._values3.dequeue()!, self._values4.dequeue()!, self._values5.dequeue()!, self._values6.dequeue()!, self._values7.dequeue()!) + try self.parent.resultSelector(self.values1.dequeue()!, self.values2.dequeue()!, self.values3.dequeue()!, self.values4.dequeue()!, self.values5.dequeue()!, self.values6.dequeue()!, self.values7.dequeue()!) } } @@ -754,7 +754,7 @@ final class Zip7 : Producer { let source6: Observable let source7: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, source6: Observable, source7: Observable, resultSelector: @escaping ResultSelector) { self.source1 = source1 @@ -765,7 +765,7 @@ final class Zip7 : Producer { self.source6 = source6 self.source7 = source7 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { @@ -820,32 +820,32 @@ final class ZipSink8_ : typealias Result = Observer.Element typealias Parent = Zip8 - let _parent: Parent + let parent: Parent - var _values1: Queue = Queue(capacity: 2) - var _values2: Queue = Queue(capacity: 2) - var _values3: Queue = Queue(capacity: 2) - var _values4: Queue = Queue(capacity: 2) - var _values5: Queue = Queue(capacity: 2) - var _values6: Queue = Queue(capacity: 2) - var _values7: Queue = Queue(capacity: 2) - var _values8: Queue = Queue(capacity: 2) + var values1: Queue = Queue(capacity: 2) + var values2: Queue = Queue(capacity: 2) + var values3: Queue = Queue(capacity: 2) + var values4: Queue = Queue(capacity: 2) + var values5: Queue = Queue(capacity: 2) + var values6: Queue = Queue(capacity: 2) + var values7: Queue = Queue(capacity: 2) + var values8: Queue = Queue(capacity: 2) init(parent: Parent, observer: Observer, cancel: Cancelable) { - self._parent = parent + self.parent = parent super.init(arity: 8, observer: observer, cancel: cancel) } override func hasElements(_ index: Int) -> Bool { switch index { - case 0: return !self._values1.isEmpty - case 1: return !self._values2.isEmpty - case 2: return !self._values3.isEmpty - case 3: return !self._values4.isEmpty - case 4: return !self._values5.isEmpty - case 5: return !self._values6.isEmpty - case 6: return !self._values7.isEmpty - case 7: return !self._values8.isEmpty + case 0: return !self.values1.isEmpty + case 1: return !self.values2.isEmpty + case 2: return !self.values3.isEmpty + case 3: return !self.values4.isEmpty + case 4: return !self.values5.isEmpty + case 5: return !self.values6.isEmpty + case 6: return !self.values7.isEmpty + case 7: return !self.values8.isEmpty default: rxFatalError("Unhandled case (Function)") @@ -862,23 +862,23 @@ final class ZipSink8_ : let subscription7 = SingleAssignmentDisposable() let subscription8 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: self._lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) - let observer2 = ZipObserver(lock: self._lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) - let observer3 = ZipObserver(lock: self._lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) - let observer4 = ZipObserver(lock: self._lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) - let observer5 = ZipObserver(lock: self._lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5) - let observer6 = ZipObserver(lock: self._lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6) - let observer7 = ZipObserver(lock: self._lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7) - let observer8 = ZipObserver(lock: self._lock, parent: self, index: 7, setNextValue: { self._values8.enqueue($0) }, this: subscription8) - - subscription1.setDisposable(self._parent.source1.subscribe(observer1)) - subscription2.setDisposable(self._parent.source2.subscribe(observer2)) - subscription3.setDisposable(self._parent.source3.subscribe(observer3)) - subscription4.setDisposable(self._parent.source4.subscribe(observer4)) - subscription5.setDisposable(self._parent.source5.subscribe(observer5)) - subscription6.setDisposable(self._parent.source6.subscribe(observer6)) - subscription7.setDisposable(self._parent.source7.subscribe(observer7)) - subscription8.setDisposable(self._parent.source8.subscribe(observer8)) + let observer1 = ZipObserver(lock: self.lock, parent: self, index: 0, setNextValue: { self.values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: self.lock, parent: self, index: 1, setNextValue: { self.values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: self.lock, parent: self, index: 2, setNextValue: { self.values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: self.lock, parent: self, index: 3, setNextValue: { self.values4.enqueue($0) }, this: subscription4) + let observer5 = ZipObserver(lock: self.lock, parent: self, index: 4, setNextValue: { self.values5.enqueue($0) }, this: subscription5) + let observer6 = ZipObserver(lock: self.lock, parent: self, index: 5, setNextValue: { self.values6.enqueue($0) }, this: subscription6) + let observer7 = ZipObserver(lock: self.lock, parent: self, index: 6, setNextValue: { self.values7.enqueue($0) }, this: subscription7) + let observer8 = ZipObserver(lock: self.lock, parent: self, index: 7, setNextValue: { self.values8.enqueue($0) }, this: subscription8) + + subscription1.setDisposable(self.parent.source1.subscribe(observer1)) + subscription2.setDisposable(self.parent.source2.subscribe(observer2)) + subscription3.setDisposable(self.parent.source3.subscribe(observer3)) + subscription4.setDisposable(self.parent.source4.subscribe(observer4)) + subscription5.setDisposable(self.parent.source5.subscribe(observer5)) + subscription6.setDisposable(self.parent.source6.subscribe(observer6)) + subscription7.setDisposable(self.parent.source7.subscribe(observer7)) + subscription8.setDisposable(self.parent.source8.subscribe(observer8)) return Disposables.create([ subscription1, @@ -893,7 +893,7 @@ final class ZipSink8_ : } override func getResult() throws -> Result { - return try self._parent._resultSelector(self._values1.dequeue()!, self._values2.dequeue()!, self._values3.dequeue()!, self._values4.dequeue()!, self._values5.dequeue()!, self._values6.dequeue()!, self._values7.dequeue()!, self._values8.dequeue()!) + try self.parent.resultSelector(self.values1.dequeue()!, self.values2.dequeue()!, self.values3.dequeue()!, self.values4.dequeue()!, self.values5.dequeue()!, self.values6.dequeue()!, self.values7.dequeue()!, self.values8.dequeue()!) } } @@ -909,7 +909,7 @@ final class Zip8 : Producer { let source7: Observable let source8: Observable - let _resultSelector: ResultSelector + let resultSelector: ResultSelector init(source1: Observable, source2: Observable, source3: Observable, source4: Observable, source5: Observable, source6: Observable, source7: Observable, source8: Observable, resultSelector: @escaping ResultSelector) { self.source1 = source1 @@ -921,7 +921,7 @@ final class Zip8 : Producer { self.source7 = source7 self.source8 = source8 - self._resultSelector = resultSelector + self.resultSelector = resultSelector } override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Result { diff --git a/Pods/RxSwift/RxSwift/Observables/Zip.swift b/Example/Pods/RxSwift/RxSwift/Observables/Zip.swift similarity index 70% rename from Pods/RxSwift/RxSwift/Observables/Zip.swift rename to Example/Pods/RxSwift/RxSwift/Observables/Zip.swift index 911eb57..1eec43d 100644 --- a/Pods/RxSwift/RxSwift/Observables/Zip.swift +++ b/Example/Pods/RxSwift/RxSwift/Observables/Zip.swift @@ -16,16 +16,16 @@ protocol ZipSinkProtocol : class class ZipSink : Sink, ZipSinkProtocol { typealias Element = Observer.Element - let _arity: Int + let arity: Int - let _lock = RecursiveLock() + let lock = RecursiveLock() // state - private var _isDone: [Bool] + private var isDone: [Bool] init(arity: Int, observer: Observer, cancel: Cancelable) { - self._isDone = [Bool](repeating: false, count: arity) - self._arity = arity + self.isDone = [Bool](repeating: false, count: arity) + self.arity = arity super.init(observer: observer, cancel: cancel) } @@ -41,7 +41,7 @@ class ZipSink : Sink, ZipSinkProtocol { func next(_ index: Int) { var hasValueAll = true - for i in 0 ..< self._arity { + for i in 0 ..< self.arity { if !self.hasElements(i) { hasValueAll = false break @@ -66,11 +66,11 @@ class ZipSink : Sink, ZipSinkProtocol { } func done(_ index: Int) { - self._isDone[index] = true + self.isDone[index] = true var allDone = true - for done in self._isDone where !done { + for done in self.isDone where !done { allDone = false break } @@ -88,48 +88,48 @@ final class ZipObserver , SynchronizedOnType { typealias ValueSetter = (Element) -> Void - private var _parent: ZipSinkProtocol? + private var parent: ZipSinkProtocol? - let _lock: RecursiveLock + let lock: RecursiveLock // state - private let _index: Int - private let _this: Disposable - private let _setNextValue: ValueSetter + private let index: Int + private let this: Disposable + private let setNextValue: ValueSetter init(lock: RecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: @escaping ValueSetter, this: Disposable) { - self._lock = lock - self._parent = parent - self._index = index - self._this = this - self._setNextValue = setNextValue + self.lock = lock + self.parent = parent + self.index = index + self.this = this + self.setNextValue = setNextValue } func on(_ event: Event) { self.synchronizedOn(event) } - func _synchronized_on(_ event: Event) { - if self._parent != nil { + func synchronized_on(_ event: Event) { + if self.parent != nil { switch event { case .next: break case .error: - self._this.dispose() + self.this.dispose() case .completed: - self._this.dispose() + self.this.dispose() } } - if let parent = self._parent { + if let parent = self.parent { switch event { case .next(let value): - self._setNextValue(value) - parent.next(self._index) + self.setNextValue(value) + parent.next(self.index) case .error(let error): parent.fail(error) case .completed: - parent.done(self._index) + parent.done(self.index) } } } diff --git a/Pods/RxSwift/RxSwift/ObserverType.swift b/Example/Pods/RxSwift/RxSwift/ObserverType.swift similarity index 92% rename from Pods/RxSwift/RxSwift/ObserverType.swift rename to Example/Pods/RxSwift/RxSwift/ObserverType.swift index e3db94a..b7a6648 100644 --- a/Pods/RxSwift/RxSwift/ObserverType.swift +++ b/Example/Pods/RxSwift/RxSwift/ObserverType.swift @@ -11,9 +11,6 @@ public protocol ObserverType { /// The type of elements in sequence that observer can observe. associatedtype Element - @available(*, deprecated, message: "Use `Element` instead.") - typealias E = Element - /// Notify observer about sequence event. /// /// - parameter event: Event that occurred. diff --git a/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift b/Example/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift similarity index 81% rename from Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift rename to Example/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift index 804e289..cbb42dc 100644 --- a/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift +++ b/Example/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift @@ -9,17 +9,17 @@ final class AnonymousObserver: ObserverBase { typealias EventHandler = (Event) -> Void - private let _eventHandler : EventHandler + private let eventHandler : EventHandler init(_ eventHandler: @escaping EventHandler) { #if TRACE_RESOURCES _ = Resources.incrementTotal() #endif - self._eventHandler = eventHandler + self.eventHandler = eventHandler } override func onCore(_ event: Event) { - return self._eventHandler(event) + self.eventHandler(event) } #if TRACE_RESOURCES diff --git a/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift b/Example/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift similarity index 75% rename from Pods/RxSwift/RxSwift/Observers/ObserverBase.swift rename to Example/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift index 57be8e2..48e0986 100644 --- a/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift +++ b/Example/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift @@ -7,16 +7,16 @@ // class ObserverBase : Disposable, ObserverType { - private let _isStopped = AtomicInt(0) + private let isStopped = AtomicInt(0) func on(_ event: Event) { switch event { case .next: - if load(self._isStopped) == 0 { + if load(self.isStopped) == 0 { self.onCore(event) } case .error, .completed: - if fetchOr(self._isStopped, 1) == 0 { + if fetchOr(self.isStopped, 1) == 0 { self.onCore(event) } } @@ -27,6 +27,6 @@ class ObserverBase : Disposable, ObserverType { } func dispose() { - fetchOr(self._isStopped, 1) + fetchOr(self.isStopped, 1) } } diff --git a/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift b/Example/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift similarity index 76% rename from Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift rename to Example/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift index 41363a9..fd52700 100644 --- a/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift +++ b/Example/Pods/RxSwift/RxSwift/Observers/TailRecursiveSink.swift @@ -23,23 +23,23 @@ class TailRecursiveSink typealias Element = Observer.Element typealias SequenceGenerator = (generator: Sequence.Iterator, remaining: IntMax?) - var _generators: [SequenceGenerator] = [] - var _isDisposed = false - var _subscription = SerialDisposable() + var generators: [SequenceGenerator] = [] + var disposed = false + var subscription = SerialDisposable() // this is thread safe object - var _gate = AsyncLock>>() + var gate = AsyncLock>>() override init(observer: Observer, cancel: Cancelable) { super.init(observer: observer, cancel: cancel) } func run(_ sources: SequenceGenerator) -> Disposable { - self._generators.append(sources) + self.generators.append(sources) self.schedule(.moveNext) - return self._subscription + return self.subscription } func invoke(_ command: TailRecursiveSinkCommand) { @@ -53,7 +53,7 @@ class TailRecursiveSink // simple implementation for now func schedule(_ command: TailRecursiveSinkCommand) { - self._gate.invoke(InvocableScheduledItem(invocable: self, state: command)) + self.gate.invoke(InvocableScheduledItem(invocable: self, state: command)) } func done() { @@ -71,15 +71,15 @@ class TailRecursiveSink var next: Observable? repeat { - guard let (g, left) = self._generators.last else { + guard let (g, left) = self.generators.last else { break } - if self._isDisposed { + if self.isDisposed { return } - self._generators.removeLast() + self.generators.removeLast() var e = g @@ -98,20 +98,20 @@ class TailRecursiveSink if let knownOriginalLeft = left { // `- 1` because generator.next() has just been called if knownOriginalLeft - 1 >= 1 { - self._generators.append((e, knownOriginalLeft - 1)) + self.generators.append((e, knownOriginalLeft - 1)) } } else { - self._generators.append((e, nil)) + self.generators.append((e, nil)) } let nextGenerator = self.extract(nextCandidate) if let nextGenerator = nextGenerator { - self._generators.append(nextGenerator) + self.generators.append(nextGenerator) #if DEBUG || TRACE_RESOURCES - if maxTailRecursiveSinkStackSize < self._generators.count { - maxTailRecursiveSinkStackSize = self._generators.count + if maxTailRecursiveSinkStackSize < self.generators.count { + maxTailRecursiveSinkStackSize = self.generators.count } #endif } @@ -126,7 +126,7 @@ class TailRecursiveSink } let disposable = SingleAssignmentDisposable() - self._subscription.disposable = disposable + self.subscription.disposable = disposable disposable.setDisposable(self.subscribeToNext(existingNext)) } @@ -135,15 +135,15 @@ class TailRecursiveSink } func disposeCommand() { - self._isDisposed = true - self._generators.removeAll(keepingCapacity: false) + self.disposed = true + self.generators.removeAll(keepingCapacity: false) } override func dispose() { super.dispose() - self._subscription.dispose() - self._gate.dispose() + self.subscription.dispose() + self.gate.dispose() self.schedule(.dispose) } diff --git a/Pods/RxSwift/RxSwift/Reactive.swift b/Example/Pods/RxSwift/RxSwift/Reactive.swift similarity index 58% rename from Pods/RxSwift/RxSwift/Reactive.swift rename to Example/Pods/RxSwift/RxSwift/Reactive.swift index 8fdfa18..c6313fb 100644 --- a/Pods/RxSwift/RxSwift/Reactive.swift +++ b/Example/Pods/RxSwift/RxSwift/Reactive.swift @@ -20,9 +20,11 @@ With this approach we can have more specialized methods and properties using `Base` and not just specialized on common base type. + `Binder`s are also automatically synthesized using `@dynamicMemberLookup` for writable reference properties of the reactive base. */ -public struct Reactive { +@dynamicMemberLookup +public struct Reactive { /// Base object to extend. public let base: Base @@ -32,15 +34,20 @@ public struct Reactive { public init(_ base: Base) { self.base = base } + + /// Automatically synthesized binder for a key path between the reactive + /// base and one of its properties + public subscript(dynamicMember keyPath: ReferenceWritableKeyPath) -> Binder { + Binder(self.base) { base, value in + base[keyPath: keyPath] = value + } + } } /// A type that has reactive extensions. -public protocol ReactiveCompatible { +public protocol ReactiveCompatible: AnyObject { /// Extended type - associatedtype ReactiveBase - - @available(*, deprecated, message: "Use `ReactiveBase` instead.") - typealias CompatibleType = ReactiveBase + associatedtype ReactiveBase: AnyObject /// Reactive extensions. static var rx: Reactive.Type { get set } @@ -52,26 +59,22 @@ public protocol ReactiveCompatible { extension ReactiveCompatible { /// Reactive extensions. public static var rx: Reactive.Type { - get { - return Reactive.self - } - set { - // this enables using Reactive to "mutate" base type - } + get { Reactive.self } + // this enables using Reactive to "mutate" base type + // swiftlint:disable:next unused_setter_value + set { } } /// Reactive extensions. public var rx: Reactive { - get { - return Reactive(self) - } - set { - // this enables using Reactive to "mutate" base object - } + get { Reactive(self) } + // this enables using Reactive to "mutate" base object + // swiftlint:disable:next unused_setter_value + set { } } } -import class Foundation.NSObject +import Foundation /// Extend NSObject with `rx` proxy. extension NSObject: ReactiveCompatible { } diff --git a/Pods/RxSwift/RxSwift/Rx.swift b/Example/Pods/RxSwift/RxSwift/Rx.swift similarity index 83% rename from Pods/RxSwift/RxSwift/Rx.swift rename to Example/Pods/RxSwift/RxSwift/Rx.swift index a547a8f..bcdd279 100644 --- a/Pods/RxSwift/RxSwift/Rx.swift +++ b/Example/Pods/RxSwift/RxSwift/Rx.swift @@ -7,27 +7,27 @@ // #if TRACE_RESOURCES - fileprivate let resourceCount = AtomicInt(0) + private let resourceCount = AtomicInt(0) /// Resource utilization information public struct Resources { /// Counts internal Rx resource allocations (Observables, Observers, Disposables, etc.). This provides a simple way to detect leaks during development. public static var total: Int32 { - return load(resourceCount) + load(resourceCount) } /// Increments `Resources.total` resource count. /// /// - returns: New resource count public static func incrementTotal() -> Int32 { - return increment(resourceCount) + increment(resourceCount) } /// Decrements `Resources.total` resource count /// /// - returns: New resource count public static func decrementTotal() -> Int32 { - return decrement(resourceCount) + decrement(resourceCount) } } #endif @@ -66,16 +66,16 @@ func decrementChecked(_ i: inout Int) throws -> Int { } #if DEBUG - import class Foundation.Thread + import Foundation final class SynchronizationTracker { - private let _lock = RecursiveLock() + private let lock = RecursiveLock() public enum SynchronizationErrorMessages: String { case variable = "Two different threads are trying to assign the same `Variable.value` unsynchronized.\n This is undefined behavior because the end result (variable value) is nondeterministic and depends on the \n operating system thread scheduler. This will cause random behavior of your program.\n" case `default` = "Two different unsynchronized threads are trying to send some event simultaneously.\n This is undefined behavior because the ordering of the effects caused by these events is nondeterministic and depends on the \n operating system thread scheduler. This will result in a random behavior of your program.\n" } - private var _threads = [UnsafeMutableRawPointer: Int]() + private var threads = [UnsafeMutableRawPointer: Int]() private func synchronizationError(_ message: String) { #if FATAL_SYNCHRONIZATION @@ -86,9 +86,9 @@ func decrementChecked(_ i: inout Int) throws -> Int { } func register(synchronizationErrorMessage: SynchronizationErrorMessages) { - self._lock.lock(); defer { self._lock.unlock() } + self.lock.lock(); defer { self.lock.unlock() } let pointer = Unmanaged.passUnretained(Thread.current).toOpaque() - let count = (self._threads[pointer] ?? 0) + 1 + let count = (self.threads[pointer] ?? 0) + 1 if count > 1 { self.synchronizationError( @@ -99,14 +99,14 @@ func decrementChecked(_ i: inout Int) throws -> Int { " Observable sequence is trying to send an event before sending of previous event has finished.\n" + " > Interpretation: This could mean that there is some kind of unexpected cyclic dependency in your code,\n" + " or that the system is not behaving in the expected way.\n" + - " > Remedy: If this is the expected behavior this message can be suppressed by adding `.observeOn(MainScheduler.asyncInstance)`\n" + + " > Remedy: If this is the expected behavior this message can be suppressed by adding `.observe(on:MainScheduler.asyncInstance)`\n" + " or by enqueuing sequence events in some other way.\n" ) } - self._threads[pointer] = count + self.threads[pointer] = count - if self._threads.count > 1 { + if self.threads.count > 1 { self.synchronizationError( "⚠️ Synchronization anomaly was detected.\n" + " > Debugging: To debug this issue you can set a breakpoint in \(#file):\(#line) and observe the call stack.\n" + @@ -114,18 +114,19 @@ func decrementChecked(_ i: inout Int) throws -> Int { " This behavior breaks the grammar because there is overlapping between sequence events.\n" + " Observable sequence is trying to send an event before sending of previous event has finished.\n" + " > Interpretation: " + synchronizationErrorMessage.rawValue + - " > Remedy: If this is the expected behavior this message can be suppressed by adding `.observeOn(MainScheduler.asyncInstance)`\n" + + " > Remedy: If this is the expected behavior this message can be suppressed by adding `.observe(on:MainScheduler.asyncInstance)`\n" + " or by synchronizing sequence events in some other way.\n" ) } } func unregister() { - self._lock.lock(); defer { self._lock.unlock() } - let pointer = Unmanaged.passUnretained(Thread.current).toOpaque() - self._threads[pointer] = (self._threads[pointer] ?? 1) - 1 - if self._threads[pointer] == 0 { - self._threads[pointer] = nil + self.lock.performLocked { + let pointer = Unmanaged.passUnretained(Thread.current).toOpaque() + self.threads[pointer] = (self.threads[pointer] ?? 1) - 1 + if self.threads[pointer] == 0 { + self.threads[pointer] = nil + } } } } diff --git a/Pods/RxSwift/RxSwift/RxMutableBox.swift b/Example/Pods/RxSwift/RxSwift/RxMutableBox.swift similarity index 94% rename from Pods/RxSwift/RxSwift/RxMutableBox.swift rename to Example/Pods/RxSwift/RxSwift/RxMutableBox.swift index fd6fc98..73476c3 100644 --- a/Pods/RxSwift/RxSwift/RxMutableBox.swift +++ b/Example/Pods/RxSwift/RxSwift/RxMutableBox.swift @@ -16,7 +16,7 @@ /// /// For more information, read the discussion at: /// https://github.com/ReactiveX/RxSwift/issues/1911#issuecomment-479723298 -import class Foundation.NSObject +import Foundation /// Creates mutable reference wrapper for any type. final class RxMutableBox: NSObject { @@ -47,7 +47,7 @@ final class RxMutableBox: CustomDebugStringConvertible { extension RxMutableBox { /// - returns: Box description. var debugDescription: String { - return "MutatingBox(\(self.value))" + "MutatingBox(\(self.value))" } } #endif diff --git a/Pods/RxSwift/RxSwift/SchedulerType.swift b/Example/Pods/RxSwift/RxSwift/SchedulerType.swift similarity index 97% rename from Pods/RxSwift/RxSwift/SchedulerType.swift rename to Example/Pods/RxSwift/RxSwift/SchedulerType.swift index 96664b4..6c8fe4a 100644 --- a/Pods/RxSwift/RxSwift/SchedulerType.swift +++ b/Example/Pods/RxSwift/RxSwift/SchedulerType.swift @@ -6,8 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import enum Dispatch.DispatchTimeInterval -import struct Foundation.Date +import Dispatch +import Foundation // Type that represents time interval in the context of RxSwift. public typealias RxTimeInterval = DispatchTimeInterval diff --git a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift similarity index 89% rename from Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift index ac51324..02c47c9 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift @@ -6,9 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import struct Foundation.Date -import struct Foundation.TimeInterval import Dispatch +import Foundation /// Abstracts the work that needs to be performed on a specific `dispatch_queue_t`. You can also pass a serial dispatch queue, it shouldn't cause any problems. /// @@ -18,7 +17,7 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { public typealias Time = Date public var now : Date { - return Date() + Date() } let configuration: DispatchQueueConfiguration @@ -35,7 +34,6 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { /// /// - parameter qos: Target global dispatch queue, by quality of service class. /// - parameter leeway: The amount of time, in nanoseconds, that the system will defer the timer. - @available(iOS 8, OSX 10.10, *) public convenience init(qos: DispatchQoS, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) { self.init(queue: DispatchQueue( label: "rxswift.queue.\(qos)", @@ -54,7 +52,7 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public final func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { - return self.configuration.schedule(state, action: action) + self.configuration.schedule(state, action: action) } /** @@ -66,7 +64,7 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public final func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { - return self.configuration.scheduleRelative(state, dueTime: dueTime, action: action) + self.configuration.scheduleRelative(state, dueTime: dueTime, action: action) } /** @@ -79,6 +77,6 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public func schedulePeriodic(_ state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: @escaping (StateType) -> StateType) -> Disposable { - return self.configuration.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) + self.configuration.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift similarity index 83% rename from Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift index f535a22..c438d7d 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/ConcurrentMainScheduler.swift @@ -6,9 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import struct Foundation.Date -import struct Foundation.TimeInterval import Dispatch +import Foundation /** Abstracts work that needs to be performed on `MainThread`. In case `schedule` methods are called from main thread, it will perform action immediately without scheduling. @@ -20,17 +19,17 @@ public final class ConcurrentMainScheduler : SchedulerType { public typealias TimeInterval = Foundation.TimeInterval public typealias Time = Date - private let _mainScheduler: MainScheduler - private let _mainQueue: DispatchQueue + private let mainScheduler: MainScheduler + private let mainQueue: DispatchQueue /// - returns: Current time. public var now: Date { - return self._mainScheduler.now as Date + self.mainScheduler.now as Date } private init(mainScheduler: MainScheduler) { - self._mainQueue = DispatchQueue.main - self._mainScheduler = mainScheduler + self.mainQueue = DispatchQueue.main + self.mainScheduler = mainScheduler } /// Singleton instance of `ConcurrentMainScheduler` @@ -50,7 +49,7 @@ public final class ConcurrentMainScheduler : SchedulerType { let cancel = SingleAssignmentDisposable() - self._mainQueue.async { + self.mainQueue.async { if cancel.isDisposed { return } @@ -70,7 +69,7 @@ public final class ConcurrentMainScheduler : SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public final func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { - return self._mainScheduler.scheduleRelative(state, dueTime: dueTime, action: action) + self.mainScheduler.scheduleRelative(state, dueTime: dueTime, action: action) } /** @@ -83,6 +82,6 @@ public final class ConcurrentMainScheduler : SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public func schedulePeriodic(_ state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: @escaping (StateType) -> StateType) -> Disposable { - return self._mainScheduler.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) + self.mainScheduler.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift similarity index 92% rename from Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift index 8f9939a..16a7dd3 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/CurrentThreadScheduler.swift @@ -6,17 +6,10 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import class Foundation.NSObject -import protocol Foundation.NSCopying -import class Foundation.Thread import Dispatch +import Foundation #if os(Linux) - import struct Foundation.pthread_key_t - import func Foundation.pthread_setspecific - import func Foundation.pthread_getspecific - import func Foundation.pthread_key_create - fileprivate enum CurrentThreadSchedulerQueueKey { fileprivate static let instance = "RxSwift.CurrentThreadScheduler.Queue" } @@ -73,7 +66,7 @@ public class CurrentThreadScheduler : ImmediateSchedulerType { } /// Gets a value that indicates whether the caller must call a `schedule` method. - public static fileprivate(set) var isScheduleRequired: Bool { + public static private(set) var isScheduleRequired: Bool { get { return pthread_getspecific(CurrentThreadScheduler.isScheduleRequiredKey) == nil } diff --git a/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift similarity index 95% rename from Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift index 11af238..fede60e 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import struct Foundation.Date +import Foundation /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time. public class HistoricalScheduler : VirtualTimeScheduler { diff --git a/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift similarity index 93% rename from Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift index 12eeb5c..a8fae8a 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift @@ -21,25 +21,25 @@ public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType { /// Returns identical value of argument passed because historical virtual time is equal to real time, just /// decoupled from local machine clock. public func convertFromVirtualTime(_ virtualTime: VirtualTimeUnit) -> RxTime { - return virtualTime + virtualTime } /// Returns identical value of argument passed because historical virtual time is equal to real time, just /// decoupled from local machine clock. public func convertToVirtualTime(_ time: RxTime) -> VirtualTimeUnit { - return time + time } /// Returns identical value of argument passed because historical virtual time is equal to real time, just /// decoupled from local machine clock. public func convertFromVirtualTimeInterval(_ virtualTimeInterval: VirtualTimeIntervalUnit) -> TimeInterval { - return virtualTimeInterval + virtualTimeInterval } /// Returns identical value of argument passed because historical virtual time is equal to real time, just /// decoupled from local machine clock. public func convertToVirtualTimeInterval(_ timeInterval: TimeInterval) -> VirtualTimeIntervalUnit { - return timeInterval + timeInterval } /** @@ -50,7 +50,7 @@ public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType { - returns: Time offsetted by time interval. */ public func offsetVirtualTime(_ time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { - return time.addingTimeInterval(offset) + time.addingTimeInterval(offset) } /// Compares two `Date`s. diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift similarity index 98% rename from Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift index bac5e9a..f313c0b 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift @@ -7,7 +7,7 @@ // import Dispatch -import struct Foundation.TimeInterval +import Foundation struct DispatchQueueConfiguration { let queue: DispatchQueue diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift similarity index 66% rename from Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift index f31469e..0e15056 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift @@ -8,15 +8,15 @@ struct InvocableScheduledItem : InvocableType { - let _invocable: I - let _state: I.Value + let invocable: I + let state: I.Value init(invocable: I, state: I.Value) { - self._invocable = invocable - self._state = state + self.invocable = invocable + self.state = state } func invoke() { - self._invocable.invoke(self._state) + self.invocable.invoke(self.state) } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift similarity index 56% rename from Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift index 6e7a0c1..3d790d7 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift @@ -11,25 +11,25 @@ struct ScheduledItem , InvocableType { typealias Action = (T) -> Disposable - private let _action: Action - private let _state: T + private let action: Action + private let state: T - private let _disposable = SingleAssignmentDisposable() + private let disposable = SingleAssignmentDisposable() var isDisposed: Bool { - return self._disposable.isDisposed + self.disposable.isDisposed } init(action: @escaping Action, state: T) { - self._action = action - self._state = state + self.action = action + self.state = state } func invoke() { - self._disposable.setDisposable(self._action(self._state)) + self.disposable.setDisposable(self.action(self.state)) } func dispose() { - self._disposable.dispose() + self.disposable.dispose() } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift similarity index 100% rename from Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift diff --git a/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift similarity index 92% rename from Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift index 8fb0907..703ab44 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/MainScheduler.swift @@ -23,14 +23,14 @@ operator please use `ConcurrentMainScheduler` because it is more optimized for t */ public final class MainScheduler : SerialDispatchQueueScheduler { - private let _mainQueue: DispatchQueue + private let mainQueue: DispatchQueue let numberEnqueued = AtomicInt(0) /// Initializes new instance of `MainScheduler`. public init() { - self._mainQueue = DispatchQueue.main - super.init(serialQueue: self._mainQueue) + self.mainQueue = DispatchQueue.main + super.init(serialQueue: self.mainQueue) } /// Singleton instance of `MainScheduler` @@ -67,9 +67,9 @@ public final class MainScheduler : SerialDispatchQueueScheduler { let cancel = SingleAssignmentDisposable() - self._mainQueue.async { + self.mainQueue.async { if !cancel.isDisposed { - _ = action(state) + cancel.setDisposable(action(state)) } decrement(self.numberEnqueued) diff --git a/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift similarity index 94% rename from Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift index 81ba59f..f0ad3d3 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/OperationQueueScheduler.swift @@ -6,10 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import class Foundation.Operation -import class Foundation.OperationQueue -import class Foundation.BlockOperation import Dispatch +import Foundation /// Abstracts the work that needs to be performed on a specific `NSOperationQueue`. /// diff --git a/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift similarity index 71% rename from Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift index 9e9b4ff..0ee78cd 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/RecursiveScheduler.swift @@ -17,17 +17,17 @@ final class AnyRecursiveScheduler { typealias Action = (State, AnyRecursiveScheduler) -> Void - private let _lock = RecursiveLock() + private let lock = RecursiveLock() // state - private let _group = CompositeDisposable() + private let group = CompositeDisposable() - private var _scheduler: SchedulerType - private var _action: Action? + private var scheduler: SchedulerType + private var action: Action? init(scheduler: SchedulerType, action: @escaping Action) { - self._action = action - self._scheduler = scheduler + self.action = action + self.scheduler = scheduler } /** @@ -39,16 +39,16 @@ final class AnyRecursiveScheduler { func schedule(_ state: State, dueTime: RxTimeInterval) { var scheduleState: ScheduleState = .initial - let d = self._scheduler.scheduleRelative(state, dueTime: dueTime) { state -> Disposable in + let d = self.scheduler.scheduleRelative(state, dueTime: dueTime) { state -> Disposable in // best effort - if self._group.isDisposed { + if self.group.isDisposed { return Disposables.create() } - let action = self._lock.calculateLocked { () -> Action? in + let action = self.lock.performLocked { () -> Action? in switch scheduleState { case let .added(removeKey): - self._group.remove(for: removeKey) + self.group.remove(for: removeKey) case .initial: break case .done: @@ -57,7 +57,7 @@ final class AnyRecursiveScheduler { scheduleState = .done - return self._action + return self.action } if let action = action { @@ -67,12 +67,12 @@ final class AnyRecursiveScheduler { return Disposables.create() } - self._lock.performLocked { + self.lock.performLocked { switch scheduleState { case .added: rxFatalError("Invalid state") case .initial: - if let removeKey = self._group.insert(d) { + if let removeKey = self.group.insert(d) { scheduleState = .added(removeKey) } else { @@ -90,16 +90,16 @@ final class AnyRecursiveScheduler { func schedule(_ state: State) { var scheduleState: ScheduleState = .initial - let d = self._scheduler.schedule(state) { state -> Disposable in + let d = self.scheduler.schedule(state) { state -> Disposable in // best effort - if self._group.isDisposed { + if self.group.isDisposed { return Disposables.create() } - let action = self._lock.calculateLocked { () -> Action? in + let action = self.lock.performLocked { () -> Action? in switch scheduleState { case let .added(removeKey): - self._group.remove(for: removeKey) + self.group.remove(for: removeKey) case .initial: break case .done: @@ -108,7 +108,7 @@ final class AnyRecursiveScheduler { scheduleState = .done - return self._action + return self.action } if let action = action { @@ -118,12 +118,12 @@ final class AnyRecursiveScheduler { return Disposables.create() } - self._lock.performLocked { + self.lock.performLocked { switch scheduleState { case .added: rxFatalError("Invalid state") case .initial: - if let removeKey = self._group.insert(d) { + if let removeKey = self.group.insert(d) { scheduleState = .added(removeKey) } else { @@ -136,10 +136,10 @@ final class AnyRecursiveScheduler { } func dispose() { - self._lock.performLocked { - self._action = nil + self.lock.performLocked { + self.action = nil } - self._group.dispose() + self.group.dispose() } } @@ -147,15 +147,15 @@ final class AnyRecursiveScheduler { final class RecursiveImmediateScheduler { typealias Action = (_ state: State, _ recurse: (State) -> Void) -> Void - private var _lock = SpinLock() - private let _group = CompositeDisposable() + private var lock = SpinLock() + private let group = CompositeDisposable() - private var _action: Action? - private let _scheduler: ImmediateSchedulerType + private var action: Action? + private let scheduler: ImmediateSchedulerType init(action: @escaping Action, scheduler: ImmediateSchedulerType) { - self._action = action - self._scheduler = scheduler + self.action = action + self.scheduler = scheduler } // immediate scheduling @@ -166,16 +166,16 @@ final class RecursiveImmediateScheduler { func schedule(_ state: State) { var scheduleState: ScheduleState = .initial - let d = self._scheduler.schedule(state) { state -> Disposable in + let d = self.scheduler.schedule(state) { state -> Disposable in // best effort - if self._group.isDisposed { + if self.group.isDisposed { return Disposables.create() } - let action = self._lock.calculateLocked { () -> Action? in + let action = self.lock.performLocked { () -> Action? in switch scheduleState { case let .added(removeKey): - self._group.remove(for: removeKey) + self.group.remove(for: removeKey) case .initial: break case .done: @@ -184,7 +184,7 @@ final class RecursiveImmediateScheduler { scheduleState = .done - return self._action + return self.action } if let action = action { @@ -194,12 +194,12 @@ final class RecursiveImmediateScheduler { return Disposables.create() } - self._lock.performLocked { + self.lock.performLocked { switch scheduleState { case .added: rxFatalError("Invalid state") case .initial: - if let removeKey = self._group.insert(d) { + if let removeKey = self.group.insert(d) { scheduleState = .added(removeKey) } else { @@ -212,9 +212,9 @@ final class RecursiveImmediateScheduler { } func dispose() { - self._lock.performLocked { - self._action = nil + self.lock.performLocked { + self.action = nil } - self._group.dispose() + self.group.dispose() } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift similarity index 66% rename from Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift index 5b7b840..cab2bc8 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/SchedulerServices+Emulation.swift @@ -15,24 +15,24 @@ final class SchedulePeriodicRecursive { typealias RecursiveAction = (State) -> State typealias RecursiveScheduler = AnyRecursiveScheduler - private let _scheduler: SchedulerType - private let _startAfter: RxTimeInterval - private let _period: RxTimeInterval - private let _action: RecursiveAction + private let scheduler: SchedulerType + private let startAfter: RxTimeInterval + private let period: RxTimeInterval + private let action: RecursiveAction - private var _state: State - private let _pendingTickCount = AtomicInt(0) + private var state: State + private let pendingTickCount = AtomicInt(0) init(scheduler: SchedulerType, startAfter: RxTimeInterval, period: RxTimeInterval, action: @escaping RecursiveAction, state: State) { - self._scheduler = scheduler - self._startAfter = startAfter - self._period = period - self._action = action - self._state = state + self.scheduler = scheduler + self.startAfter = startAfter + self.period = period + self.action = action + self.state = state } func start() -> Disposable { - return self._scheduler.scheduleRecursive(SchedulePeriodicRecursiveCommand.tick, dueTime: self._startAfter, action: self.tick) + self.scheduler.scheduleRecursive(SchedulePeriodicRecursiveCommand.tick, dueTime: self.startAfter, action: self.tick) } func tick(_ command: SchedulePeriodicRecursiveCommand, scheduler: RecursiveScheduler) { @@ -41,18 +41,18 @@ final class SchedulePeriodicRecursive { // tick interval is short. switch command { case .tick: - scheduler.schedule(.tick, dueTime: self._period) + scheduler.schedule(.tick, dueTime: self.period) // The idea is that if on tick there wasn't any item enqueued, schedule to perform work immediately. // Else work will be scheduled after previous enqueued work completes. - if increment(self._pendingTickCount) == 0 { + if increment(self.pendingTickCount) == 0 { self.tick(.dispatchStart, scheduler: scheduler) } case .dispatchStart: - self._state = self._action(self._state) + self.state = self.action(self.state) // Start work and schedule check is this last batch of work - if decrement(self._pendingTickCount) > 1 { + if decrement(self.pendingTickCount) > 1 { // This gives priority to scheduler emulation, it's not perfect, but helps scheduler.schedule(SchedulePeriodicRecursiveCommand.dispatchStart) } diff --git a/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift similarity index 91% rename from Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift index 57ae8bd..bb0013c 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift @@ -6,9 +6,8 @@ // Copyright © 2015 Krunoslav Zaher. All rights reserved. // -import struct Foundation.TimeInterval -import struct Foundation.Date import Dispatch +import Foundation /** Abstracts the work that needs to be performed on a specific `dispatch_queue_t`. It will make sure @@ -33,7 +32,7 @@ public class SerialDispatchQueueScheduler : SchedulerType { /// - returns: Current time. public var now : Date { - return Date() + Date() } let configuration: DispatchQueueConfiguration @@ -79,13 +78,13 @@ public class SerialDispatchQueueScheduler : SchedulerType { } /** - Constructs new `SerialDispatchQueueScheduler` that wraps on of the global concurrent dispatch queues. + Constructs new `SerialDispatchQueueScheduler` that wraps one of the global concurrent dispatch queues. - parameter qos: Identifier for global dispatch queue with specified quality of service class. - parameter internalSerialQueueName: Custom name for internal serial dispatch queue proxy. - parameter leeway: The amount of time, in nanoseconds, that the system will defer the timer. */ - @available(iOS 8, OSX 10.10, *) + @available(macOS 10.10, *) public convenience init(qos: DispatchQoS, internalSerialQueueName: String = "rx.global_dispatch_queue.serial", leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) { self.init(queue: DispatchQueue.global(qos: qos.qosClass), internalSerialQueueName: internalSerialQueueName, leeway: leeway) } @@ -98,11 +97,11 @@ public class SerialDispatchQueueScheduler : SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public final func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { - return self.scheduleInternal(state, action: action) + self.scheduleInternal(state, action: action) } func scheduleInternal(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { - return self.configuration.schedule(state, action: action) + self.configuration.schedule(state, action: action) } /** @@ -114,7 +113,7 @@ public class SerialDispatchQueueScheduler : SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public final func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { - return self.configuration.scheduleRelative(state, dueTime: dueTime, action: action) + self.configuration.scheduleRelative(state, dueTime: dueTime, action: action) } /** @@ -127,6 +126,6 @@ public class SerialDispatchQueueScheduler : SchedulerType { - returns: The disposable object used to cancel the scheduled action (best effort). */ public func schedulePeriodic(_ state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: @escaping (StateType) -> StateType) -> Disposable { - return self.configuration.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) + self.configuration.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift similarity index 96% rename from Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift index 7069b00..34151f7 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeConverterType.swift @@ -82,16 +82,16 @@ public enum VirtualTimeComparison { extension VirtualTimeComparison { /// lhs < rhs. var lessThen: Bool { - return self == .lessThan + self == .lessThan } /// lhs > rhs var greaterThan: Bool { - return self == .greaterThan + self == .greaterThan } /// lhs == rhs var equal: Bool { - return self == .equal + self == .equal } } diff --git a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift b/Example/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift similarity index 74% rename from Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift rename to Example/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift index e63cece..e74d5be 100644 --- a/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift +++ b/Example/Pods/RxSwift/RxSwift/Schedulers/VirtualTimeScheduler.swift @@ -13,33 +13,33 @@ open class VirtualTimeScheduler public typealias VirtualTime = Converter.VirtualTimeUnit public typealias VirtualTimeInterval = Converter.VirtualTimeIntervalUnit - private var _running : Bool + private var running : Bool - private var _clock: VirtualTime + private var currentClock: VirtualTime - fileprivate var _schedulerQueue : PriorityQueue> - private var _converter: Converter + private var schedulerQueue : PriorityQueue> + private var converter: Converter - private var _nextId = 0 + private var nextId = 0 /// - returns: Current time. public var now: RxTime { - return self._converter.convertFromVirtualTime(self.clock) + self.converter.convertFromVirtualTime(self.clock) } /// - returns: Scheduler's absolute time clock value. public var clock: VirtualTime { - return self._clock + self.currentClock } /// Creates a new virtual time scheduler. /// /// - parameter initialClock: Initial value for the clock. public init(initialClock: VirtualTime, converter: Converter) { - self._clock = initialClock - self._running = false - self._converter = converter - self._schedulerQueue = PriorityQueue(hasHigherPriority: { + self.currentClock = initialClock + self.running = false + self.converter = converter + self.schedulerQueue = PriorityQueue(hasHigherPriority: { switch converter.compareVirtualTime($0.time, $1.time) { case .lessThan: return true @@ -77,7 +77,7 @@ open class VirtualTimeScheduler */ public func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { let time = self.now.addingDispatchInterval(dueTime) - let absoluteTime = self._converter.convertToVirtualTime(time) + let absoluteTime = self.converter.convertToVirtualTime(time) let adjustedTime = self.adjustScheduledTime(absoluteTime) return self.scheduleAbsoluteVirtual(state, time: adjustedTime, action: action) } @@ -91,7 +91,7 @@ open class VirtualTimeScheduler - returns: The disposable object used to cancel the scheduled action (best effort). */ public func scheduleRelativeVirtual(_ state: StateType, dueTime: VirtualTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { - let time = self._converter.offsetVirtualTime(self.clock, offset: dueTime) + let time = self.converter.offsetVirtualTime(self.clock, offset: dueTime) return self.scheduleAbsoluteVirtual(state, time: time, action: action) } @@ -103,19 +103,18 @@ open class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func scheduleAbsoluteVirtual(_ state: StateType, time: Converter.VirtualTimeUnit, action: @escaping (StateType) -> Disposable) -> Disposable { + public func scheduleAbsoluteVirtual(_ state: StateType, time: VirtualTime, action: @escaping (StateType) -> Disposable) -> Disposable { MainScheduler.ensureExecutingOnScheduler() let compositeDisposable = CompositeDisposable() let item = VirtualSchedulerItem(action: { - let dispose = action(state) - return dispose - }, time: time, id: self._nextId) + return action(state) + }, time: time, id: self.nextId) - self._nextId += 1 + self.nextId += 1 - self._schedulerQueue.enqueue(item) + self.schedulerQueue.enqueue(item) _ = compositeDisposable.insert(item) @@ -123,39 +122,39 @@ open class VirtualTimeScheduler } /// Adjusts time of scheduling before adding item to schedule queue. - open func adjustScheduledTime(_ time: Converter.VirtualTimeUnit) -> Converter.VirtualTimeUnit { - return time + open func adjustScheduledTime(_ time: VirtualTime) -> VirtualTime { + time } /// Starts the virtual time scheduler. public func start() { MainScheduler.ensureExecutingOnScheduler() - if self._running { + if self.running { return } - self._running = true + self.running = true repeat { guard let next = self.findNext() else { break } - if self._converter.compareVirtualTime(next.time, self.clock).greaterThan { - self._clock = next.time + if self.converter.compareVirtualTime(next.time, self.clock).greaterThan { + self.currentClock = next.time } next.invoke() - self._schedulerQueue.remove(next) - } while self._running + self.schedulerQueue.remove(next) + } while self.running - self._running = false + self.running = false } func findNext() -> VirtualSchedulerItem? { - while let front = self._schedulerQueue.peek() { + while let front = self.schedulerQueue.peek() { if front.isDisposed { - self._schedulerQueue.remove(front) + self.schedulerQueue.remove(front) continue } @@ -171,49 +170,48 @@ open class VirtualTimeScheduler public func advanceTo(_ virtualTime: VirtualTime) { MainScheduler.ensureExecutingOnScheduler() - if self._running { + if self.running { fatalError("Scheduler is already running") } - self._running = true + self.running = true repeat { guard let next = self.findNext() else { break } - if self._converter.compareVirtualTime(next.time, virtualTime).greaterThan { + if self.converter.compareVirtualTime(next.time, virtualTime).greaterThan { break } - if self._converter.compareVirtualTime(next.time, self.clock).greaterThan { - self._clock = next.time + if self.converter.compareVirtualTime(next.time, self.clock).greaterThan { + self.currentClock = next.time } - next.invoke() - self._schedulerQueue.remove(next) - } while self._running + self.schedulerQueue.remove(next) + } while self.running - self._clock = virtualTime - self._running = false + self.currentClock = virtualTime + self.running = false } /// Advances the scheduler's clock by the specified relative time. public func sleep(_ virtualInterval: VirtualTimeInterval) { MainScheduler.ensureExecutingOnScheduler() - let sleepTo = self._converter.offsetVirtualTime(self.clock, offset: virtualInterval) - if self._converter.compareVirtualTime(sleepTo, self.clock).lessThen { + let sleepTo = self.converter.offsetVirtualTime(self.clock, offset: virtualInterval) + if self.converter.compareVirtualTime(sleepTo, self.clock).lessThen { fatalError("Can't sleep to past.") } - self._clock = sleepTo + self.currentClock = sleepTo } /// Stops the virtual time scheduler. public func stop() { MainScheduler.ensureExecutingOnScheduler() - self._running = false + self.running = false } #if TRACE_RESOURCES @@ -228,7 +226,7 @@ open class VirtualTimeScheduler extension VirtualTimeScheduler: CustomDebugStringConvertible { /// A textual representation of `self`, suitable for debugging. public var debugDescription: String { - return self._schedulerQueue.debugDescription + self.schedulerQueue.debugDescription } } @@ -241,7 +239,7 @@ final class VirtualSchedulerItem
... then bind the results to your tableview