0001    //
0002    //  Filter.swift
0003    //  Rx
0004    //
0005    //  Created by Krunoslav Zaher on 2/17/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    class FilterSink
Filter.swift:56
        let sink = FilterSink(predicate: _predicate, observer: observer)
<O
Filter.swift:11
class FilterSink<O : ObserverType>: Sink<O>, ObserverType {
Filter.swift:13
    typealias Element = O.E
Filter.swift:19
    init(predicate: Predicate, observer: O) {
: ObserverType>: Sink<O>, ObserverType { 0012 typealias Predicate
Filter.swift:17
    private let _predicate: Predicate
Filter.swift:19
    init(predicate: Predicate, observer: O) {
= (Element) throws -> Bool 0013 typealias Element
Filter.swift:12
    typealias Predicate = (Element) throws -> Bool
Filter.swift:15
    typealias Parent = Filter<Element>
Filter.swift:24
    func on(event: Event<Element>) {
= O.E 0014 0015 typealias Parent = Filter<Element> 0016 0017 private let _predicate
Filter.swift:20
        _predicate = predicate
Filter.swift:28
                    let satisfies = try _predicate(value)
: Predicate 0018 0019 init
Filter.swift:56
        let sink = FilterSink(predicate: _predicate, observer: observer)
(predicate: Predicate, observer: O) { 0020 _predicate = predicate 0021 super.init(observer: observer) 0022 } 0023 0024 func on(event: Event<Element>) { 0025 switch event { 0026 case .Next(let value): 0027 do { 0028 let satisfies = try _predicate(value) 0029 if satisfies { 0030 forwardOn(.Next(value)) 0031 } 0032 } 0033 catch let e { 0034 forwardOn(.Error(e)) 0035 dispose() 0036 } 0037 case .Completed, .Error: 0038 forwardOn(event) 0039 dispose() 0040 } 0041 } 0042 } 0043 0044 class Filter
Filter.swift:15
    typealias Parent = Filter<Element>
Observable+StandardSequenceOperators.swift:26
        return Filter(source: asObservable(), predicate: predicate)
<Element
Filter.swift:44
class Filter<Element> : Producer<Element> {
Filter.swift:45
    typealias Predicate = (Element) throws -> Bool
Filter.swift:47
    private let _source: Observable<Element>
Filter.swift:50
    init(source: Observable<Element>, predicate: Predicate) {
Filter.swift:55
    override func run<O: ObserverType where O.E == Element>(observer: O) -> Disposable {
> : Producer<Element> { 0045 typealias Predicate
Filter.swift:48
    private let _predicate: Predicate
Filter.swift:50
    init(source: Observable<Element>, predicate: Predicate) {
= (Element) throws -> Bool 0046 0047 private let _source
Filter.swift:51
        _source = source
Filter.swift:57
        sink.disposable = _source.subscribe(sink)
: Observable<Element> 0048 private let _predicate
Filter.swift:52
        _predicate = predicate
Filter.swift:56
        let sink = FilterSink(predicate: _predicate, observer: observer)
: Predicate 0049 0050 init
Observable+StandardSequenceOperators.swift:26
        return Filter(source: asObservable(), predicate: predicate)
(source: Observable<Element>, predicate: Predicate) { 0051 _source = source 0052 _predicate = predicate 0053 } 0054 0055 override func run<O: ObserverType where O.E == Element>(observer: O) -> Disposable { 0056 let sink = FilterSink(predicate: _predicate, observer: observer) 0057 sink.disposable = _source.subscribe(sink) 0058 return sink 0059 } 0060 }