0001
0009 import Foundation
0010
0011 class MapSink| Map.swift:130 | let sink = MapSink(selector: _selector, observer: observer) |
<SourceType| Map.swift:12 | typealias Selector = (SourceType) throws -> ResultType |
| Map.swift:15 | typealias Element = SourceType |
| Map.swift:24 | func on(event: Event<SourceType>) { |
, O| Map.swift:11 | class MapSink<SourceType, O : ObserverType> : Sink<O>, ObserverType { |
| Map.swift:14 | typealias ResultType = O.E |
| Map.swift:19 | init(selector: Selector, observer: O) { |
: ObserverType> : Sink<O>, ObserverType {
0012 typealias Selector| Map.swift:17 | private let _selector: Selector |
| Map.swift:19 | init(selector: Selector, observer: O) { |
= (SourceType) throws -> ResultType
0013
0014 typealias ResultType| Map.swift:12 | typealias Selector = (SourceType) throws -> ResultType |
= O.E
0015 typealias Element = SourceType
0016
0017 private let _selector| Map.swift:20 | _selector = selector |
| Map.swift:28 | let mappedElement = try _selector(element) |
: Selector
0018
0019 init| Map.swift:130 | let sink = MapSink(selector: _selector, observer: observer) |
(selector: Selector, observer: O) {
0020 _selector = selector
0021 super.init(observer: observer)
0022 }
0023
0024 func on(event: Event<SourceType>) {
0025 switch event {
0026 case .Next(let element):
0027 do {
0028 let mappedElement = try _selector(element)
0029 forwardOn(.Next(mappedElement))
0030 }
0031 catch let e {
0032 forwardOn(.Error(e))
0033 dispose()
0034 }
0035 case .Error(let error):
0036 forwardOn(.Error(error))
0037 dispose()
0038 case .Completed:
0039 forwardOn(.Completed)
0040 dispose()
0041 }
0042 }
0043 }
0044
0045 class MapWithIndexSink| Map.swift:95 | let sink = MapWithIndexSink(selector: _selector, observer: observer) |
<SourceType| Map.swift:46 | typealias Selector = (SourceType, Int) throws -> ResultType |
| Map.swift:49 | typealias Element = SourceType |
| Map.swift:50 | typealias Parent = MapWithIndex<SourceType, ResultType> |
| Map.swift:61 | func on(event: Event<SourceType>) { |
, O| Map.swift:45 | class MapWithIndexSink<SourceType, O : ObserverType> : Sink<O>, ObserverType { |
| Map.swift:48 | typealias ResultType = O.E |
| Map.swift:56 | init(selector: Selector, observer: O) { |
: ObserverType> : Sink<O>, ObserverType {
0046 typealias Selector| Map.swift:52 | private let _selector: Selector |
| Map.swift:56 | init(selector: Selector, observer: O) { |
= (SourceType, Int) throws -> ResultType
0047
0048 typealias ResultType| Map.swift:46 | typealias Selector = (SourceType, Int) throws -> ResultType |
| Map.swift:50 | typealias Parent = MapWithIndex<SourceType, ResultType> |
= O.E
0049 typealias Element = SourceType
0050 typealias Parent = MapWithIndex<SourceType, ResultType>
0051
0052 private let _selector| Map.swift:57 | _selector = selector |
| Map.swift:65 | let mappedElement = try _selector(element, try incrementChecked(&_index)) |
: Selector
0053
0054 private var _index| Map.swift:65 | let mappedElement = try _selector(element, try incrementChecked(&_index)) |
= 0
0055
0056 init| Map.swift:95 | let sink = MapWithIndexSink(selector: _selector, observer: observer) |
(selector: Selector, observer: O) {
0057 _selector = selector
0058 super.init(observer: observer)
0059 }
0060
0061 func on(event: Event<SourceType>) {
0062 switch event {
0063 case .Next(let element):
0064 do {
0065 let mappedElement = try _selector(element, try incrementChecked(&_index))
0066 forwardOn(.Next(mappedElement))
0067 }
0068 catch let e {
0069 forwardOn(.Error(e))
0070 dispose()
0071 }
0072 case .Error(let error):
0073 forwardOn(.Error(error))
0074 dispose()
0075 case .Completed:
0076 forwardOn(.Completed)
0077 dispose()
0078 }
0079 }
0080 }
0081
0082 class MapWithIndex| Map.swift:50 | typealias Parent = MapWithIndex<SourceType, ResultType> |
| Observable+StandardSequenceOperators.swift:192 | return MapWithIndex(source: asObservable(), selector: selector) |
<SourceType| Map.swift:83 | typealias Selector = (SourceType, Int) throws -> ResultType |
| Map.swift:85 | private let _source: Observable<SourceType> |
| Map.swift:89 | init(source: Observable<SourceType>, selector: Selector) { |
, ResultType| Map.swift:82 | class MapWithIndex<SourceType, ResultType> : Producer<ResultType> { |
| Map.swift:83 | typealias Selector = (SourceType, Int) throws -> ResultType |
| Map.swift:94 | override func run<O: ObserverType where O.E == ResultType>(observer: O) -> Disposable { |
> : Producer<ResultType> {
0083 typealias Selector| Map.swift:87 | private let _selector: Selector |
| Map.swift:89 | init(source: Observable<SourceType>, selector: Selector) { |
= (SourceType, Int) throws -> ResultType
0084
0085 private let _source| Map.swift:90 | _source = source |
| Map.swift:96 | sink.disposable = _source.subscribe(sink) |
: Observable<SourceType>
0086
0087 private let _selector| Map.swift:91 | _selector = selector |
| Map.swift:95 | let sink = MapWithIndexSink(selector: _selector, observer: observer) |
: Selector
0088
0089 init| Observable+StandardSequenceOperators.swift:192 | return MapWithIndex(source: asObservable(), selector: selector) |
(source: Observable<SourceType>, selector: Selector) {
0090 _source = source
0091 _selector = selector
0092 }
0093
0094 override func run<O: ObserverType where O.E == ResultType>(observer: O) -> Disposable {
0095 let sink = MapWithIndexSink(selector: _selector, observer: observer)
0096 sink.disposable = _source.subscribe(sink)
0097 return sink
0098 }
0099 }
0100
0101 #if TRACE_RESOURCES
0102 public var numberOfMapOperators: Int32 = 0
0103 #endif
0104
0105 class Map| Map.swift:123 | return Map<SourceType, R>(source: _source, selector: { (s: SourceType) throws -> R in |
| Observable.swift:49 | return Map(source: self, selector: selector) |
<SourceType| Map.swift:106 | typealias Selector = (SourceType) throws -> ResultType |
| Map.swift:108 | private let _source: Observable<SourceType> |
| Map.swift:112 | init(source: Observable<SourceType>, selector: Selector) { |
| Map.swift:123 | return Map<SourceType, R>(source: _source, selector: { (s: SourceType) throws -> R in |
| Map.swift:123 | return Map<SourceType, R>(source: _source, selector: { (s: SourceType) throws -> R in |
, ResultType| Map.swift:105 | class Map<SourceType, ResultType>: Producer<ResultType> { |
| Map.swift:106 | typealias Selector = (SourceType) throws -> ResultType |
| Map.swift:121 | override func composeMap<R>(selector: ResultType throws -> R) -> Observable<R> { |
| Map.swift:124 | let r: ResultType = try originalSelector(s) |
| Map.swift:129 | override func run<O: ObserverType where O.E == ResultType>(observer: O) -> Disposable { |
>: Producer<ResultType> {
0106 typealias Selector| Map.swift:110 | private let _selector: Selector |
| Map.swift:112 | init(source: Observable<SourceType>, selector: Selector) { |
= (SourceType) throws -> ResultType
0107
0108 private let _source| Map.swift:113 | _source = source |
| Map.swift:123 | return Map<SourceType, R>(source: _source, selector: { (s: SourceType) throws -> R in |
| Map.swift:131 | sink.disposable = _source.subscribe(sink) |
: Observable<SourceType>
0109
0110 private let _selector| Map.swift:114 | _selector = selector |
| Map.swift:122 | let originalSelector = _selector |
| Map.swift:130 | let sink = MapSink(selector: _selector, observer: observer) |
: Selector
0111
0112 init| Observable.swift:49 | return Map(source: self, selector: selector) |
(source: Observable<SourceType>, selector: Selector) {
0113 _source = source
0114 _selector = selector
0115
0116 #if TRACE_RESOURCES
0117 AtomicIncrement(&numberOfMapOperators)
0118 #endif
0119 }
0120
0121 override func composeMap<R>(selector: ResultType throws -> R) -> Observable<R> {
0122 let originalSelector = _selector
0123 return Map<SourceType, R>(source: _source, selector: { (s: SourceType) throws -> R in
0124 let r: ResultType = try originalSelector(s)
0125 return try selector(r)
0126 })
0127 }
0128
0129 override func run<O: ObserverType where O.E == ResultType>(observer: O) -> Disposable {
0130 let sink = MapSink(selector: _selector, observer: observer)
0131 sink.disposable = _source.subscribe(sink)
0132 return sink
0133 }
0134
0135 #if TRACE_RESOURCES
0136 deinit {
0137 AtomicDecrement(&numberOfMapOperators)
0138 }
0139 #endif
0140 }