0001 // 0002 // Scan.swift 0003 // RxSwift 0004 // 0005 // Created by Krunoslav Zaher on 6/14/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 class ScanSink<ElementType
Scan.swift:60 let sink = ScanSink(parent: self, observer: observer), Accumulate
Scan.swift:12 typealias Parent = Scan<ElementType, Accumulate>Scan.swift:13 typealias E = ElementTypeScan.swift:24 func on(event: Event<ElementType>) {, O
Scan.swift:12 typealias Parent = Scan<ElementType, Accumulate>Scan.swift:16 private var _accumulate: Accumulate: ObserverType where O.E == Accumulate> : Sink<O>, ObserverType { 0012 typealias Parent
Scan.swift:11 class ScanSink<ElementType, Accumulate, O: ObserverType where O.E == Accumulate> : Sink<O>, ObserverType {Scan.swift:18 init(parent: Parent, observer: O) {= Scan<ElementType, Accumulate> 0013 typealias E = ElementType 0014 0015 private let _parent
Scan.swift:15 private let _parent: ParentScan.swift:18 init(parent: Parent, observer: O) {: Parent 0016 private var _accumulate
Scan.swift:19 _parent = parentScan.swift:28 _accumulate = try _parent._accumulator(_accumulate, element): Accumulate 0017 0018 init
Scan.swift:20 _accumulate = parent._seedScan.swift:28 _accumulate = try _parent._accumulator(_accumulate, element)Scan.swift:28 _accumulate = try _parent._accumulator(_accumulate, element)Scan.swift:29 forwardOn(.Next(_accumulate))(parent: Parent, observer: O) { 0019 _parent = parent 0020 _accumulate = parent._seed 0021 super.init(observer: observer) 0022 } 0023 0024 func on(event: Event<ElementType>) { 0025 switch event { 0026 case .Next(let element): 0027 do { 0028 _accumulate = try _parent._accumulator(_accumulate, element) 0029 forwardOn(.Next(_accumulate)) 0030 } 0031 catch let error { 0032 forwardOn(.Error(error)) 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 0046 class Scan
Scan.swift:60 let sink = ScanSink(parent: self, observer: observer)<Element
Observable+Single.swift:256 return Scan(source: self.asObservable(), seed: seed, accumulator: accumulator)Scan.swift:12 typealias Parent = Scan<ElementType, Accumulate>, Accumulate
Scan.swift:47 typealias Accumulator = (Accumulate, Element) throws -> AccumulateScan.swift:49 private let _source: Observable<Element>Scan.swift:53 init(source: Observable<Element>, seed: Accumulate, accumulator: Accumulator) {>: Producer<Accumulate> { 0047 typealias Accumulator
Scan.swift:46 class Scan<Element, Accumulate>: Producer<Accumulate> {Scan.swift:47 typealias Accumulator = (Accumulate, Element) throws -> AccumulateScan.swift:47 typealias Accumulator = (Accumulate, Element) throws -> AccumulateScan.swift:50 private let _seed: AccumulateScan.swift:53 init(source: Observable<Element>, seed: Accumulate, accumulator: Accumulator) {Scan.swift:59 override func run<O : ObserverType where O.E == Accumulate>(observer: O) -> Disposable {= (Accumulate, Element) throws -> Accumulate 0048 0049 private let _source
Scan.swift:51 private let _accumulator: AccumulatorScan.swift:53 init(source: Observable<Element>, seed: Accumulate, accumulator: Accumulator) {: Observable<Element> 0050 private let _seed
Scan.swift:54 _source = sourceScan.swift:61 sink.disposable = _source.subscribe(sink): Accumulate 0051 private let _accumulator
Scan.swift:20 _accumulate = parent._seedScan.swift:55 _seed = seed: Accumulator 0052 0053 init
Scan.swift:28 _accumulate = try _parent._accumulator(_accumulate, element)Scan.swift:56 _accumulator = accumulator(source: Observable<Element>, seed: Accumulate, accumulator: Accumulator) { 0054 _source = source 0055 _seed = seed 0056 _accumulator = accumulator 0057 } 0058 0059 override func run<O : ObserverType where O.E == Accumulate>(observer: O) -> Disposable { 0060 let sink = ScanSink(parent: self, observer: observer) 0061 sink.disposable = _source.subscribe(sink) 0062 return sink 0063 } 0064 }
Observable+Single.swift:256 return Scan(source: self.asObservable(), seed: seed, accumulator: accumulator)