0001 // 0002 // TakeWhile.swift 0003 // RxSwift 0004 // 0005 // Created by Krunoslav Zaher on 6/7/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 class TakeWhileSink<ElementType
TakeWhile.swift:123 let sink = TakeWhileSink(parent: self, observer: observer), O
TakeWhile.swift:14 typealias Parent = TakeWhile<ElementType>TakeWhile.swift:15 typealias Element = ElementType: ObserverType where O.E == ElementType> 0012 : Sink<O> 0013 , ObserverType { 0014 typealias Parent
TakeWhile.swift:12 : Sink<O>TakeWhile.swift:21 init(parent: Parent, observer: O) {= TakeWhile<ElementType> 0015 typealias Element
TakeWhile.swift:17 private let _parent: ParentTakeWhile.swift:21 init(parent: Parent, observer: O) {= ElementType 0016 0017 private let _parent
TakeWhile.swift:26 func on(event: Event<Element>) {: Parent 0018 0019 private var _running
TakeWhile.swift:22 _parent = parentTakeWhile.swift:34 _running = try _parent._predicate(value)= true 0020 0021 init
TakeWhile.swift:29 if !_running {TakeWhile.swift:34 _running = try _parent._predicate(value)TakeWhile.swift:41 if _running {(parent: Parent, observer: O) { 0022 _parent = parent 0023 super.init(observer: observer) 0024 } 0025 0026 func on(event: Event<Element>) { 0027 switch event { 0028 case .Next(let value): 0029 if !_running { 0030 return 0031 } 0032 0033 do { 0034 _running = try _parent._predicate(value) 0035 } catch let e { 0036 forwardOn(.Error(e)) 0037 dispose() 0038 return 0039 } 0040 0041 if _running { 0042 forwardOn(.Next(value)) 0043 } else { 0044 forwardOn(.Completed) 0045 dispose() 0046 } 0047 case .Error, .Completed: 0048 forwardOn(event) 0049 dispose() 0050 } 0051 } 0052 0053 } 0054 0055 class TakeWhileSinkWithIndex
TakeWhile.swift:123 let sink = TakeWhileSink(parent: self, observer: observer)<ElementType
TakeWhile.swift:127 let sink = TakeWhileSinkWithIndex(parent: self, observer: observer), O
TakeWhile.swift:58 typealias Parent = TakeWhile<ElementType>TakeWhile.swift:59 typealias Element = ElementType: ObserverType where O.E == ElementType> 0056 : Sink<O> 0057 , ObserverType { 0058 typealias Parent
TakeWhile.swift:56 : Sink<O>TakeWhile.swift:66 init(parent: Parent, observer: O) {= TakeWhile<ElementType> 0059 typealias Element
TakeWhile.swift:61 private let _parent: ParentTakeWhile.swift:66 init(parent: Parent, observer: O) {= ElementType 0060 0061 private let _parent
TakeWhile.swift:71 func on(event: Event<Element>) {: Parent 0062 0063 private var _running
TakeWhile.swift:67 _parent = parentTakeWhile.swift:79 _running = try _parent._predicateWithIndex(value, _index)= true 0064 private var _index
TakeWhile.swift:74 if !_running {TakeWhile.swift:79 _running = try _parent._predicateWithIndex(value, _index)TakeWhile.swift:87 if _running {= 0 0065 0066 init
TakeWhile.swift:79 _running = try _parent._predicateWithIndex(value, _index)TakeWhile.swift:80 try incrementChecked(&_index)(parent: Parent, observer: O) { 0067 _parent = parent 0068 super.init(observer: observer) 0069 } 0070 0071 func on(event: Event<Element>) { 0072 switch event { 0073 case .Next(let value): 0074 if !_running { 0075 return 0076 } 0077 0078 do { 0079 _running = try _parent._predicateWithIndex(value, _index) 0080 try incrementChecked(&_index) 0081 } catch let e { 0082 forwardOn(.Error(e)) 0083 dispose() 0084 return 0085 } 0086 0087 if _running { 0088 forwardOn(.Next(value)) 0089 } else { 0090 forwardOn(.Completed) 0091 dispose() 0092 } 0093 case .Error, .Completed: 0094 forwardOn(event) 0095 dispose() 0096 } 0097 } 0098 0099 } 0100 0101 class TakeWhile
TakeWhile.swift:127 let sink = TakeWhileSinkWithIndex(parent: self, observer: observer)<Element
Observable+StandardSequenceOperators.swift:45 return TakeWhile(source: asObservable(), predicate: predicate)Observable+StandardSequenceOperators.swift:61 return TakeWhile(source: asObservable(), predicate: predicate)TakeWhile.swift:14 typealias Parent = TakeWhile<ElementType>TakeWhile.swift:58 typealias Parent = TakeWhile<ElementType>>: Producer<Element> { 0102 typealias Predicate
TakeWhile.swift:101 class TakeWhile<Element>: Producer<Element> {TakeWhile.swift:102 typealias Predicate = (Element) throws -> BoolTakeWhile.swift:103 typealias PredicateWithIndex = (Element, Int) throws -> BoolTakeWhile.swift:105 private let _source: Observable<Element>TakeWhile.swift:109 init(source: Observable<Element>, predicate: Predicate) {TakeWhile.swift:115 init(source: Observable<Element>, predicate: PredicateWithIndex) {TakeWhile.swift:121 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable {= (Element) throws -> Bool 0103 typealias PredicateWithIndex
TakeWhile.swift:106 private let _predicate: Predicate!TakeWhile.swift:109 init(source: Observable<Element>, predicate: Predicate) {= (Element, Int) throws -> Bool 0104 0105 private let _source
TakeWhile.swift:107 private let _predicateWithIndex: PredicateWithIndex!TakeWhile.swift:115 init(source: Observable<Element>, predicate: PredicateWithIndex) {: Observable<Element> 0106 private let _predicate
TakeWhile.swift:110 _source = sourceTakeWhile.swift:116 _source = sourceTakeWhile.swift:124 sink.disposable = _source.subscribe(sink)TakeWhile.swift:128 sink.disposable = _source.subscribe(sink): Predicate! 0107 private let _predicateWithIndex
TakeWhile.swift:34 _running = try _parent._predicate(value)TakeWhile.swift:111 _predicate = predicateTakeWhile.swift:117 _predicate = nilTakeWhile.swift:122 if let _ = _predicate {: PredicateWithIndex! 0108 0109 init
TakeWhile.swift:79 _running = try _parent._predicateWithIndex(value, _index)TakeWhile.swift:112 _predicateWithIndex = nilTakeWhile.swift:118 _predicateWithIndex = predicate(source: Observable<Element>, predicate: Predicate) { 0110 _source = source 0111 _predicate = predicate 0112 _predicateWithIndex = nil 0113 } 0114 0115 init
Observable+StandardSequenceOperators.swift:45 return TakeWhile(source: asObservable(), predicate: predicate)(source: Observable<Element>, predicate: PredicateWithIndex) { 0116 _source = source 0117 _predicate = nil 0118 _predicateWithIndex = predicate 0119 } 0120 0121 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable { 0122 if let _ = _predicate { 0123 let sink = TakeWhileSink(parent: self, observer: observer) 0124 sink.disposable = _source.subscribe(sink) 0125 return sink 0126 } else { 0127 let sink = TakeWhileSinkWithIndex(parent: self, observer: observer) 0128 sink.disposable = _source.subscribe(sink) 0129 return sink 0130 } 0131 } 0132 }
Observable+StandardSequenceOperators.swift:61 return TakeWhile(source: asObservable(), predicate: predicate)