extension ObservableType { static func from<U>(_ f: @escaping (Self.E) throws -> U) -> ((Self.E) -> Observable<U>) { return { (e: E) in do { let u = try f(e) return Observable.just(u) } catch(let e) { return Observable.error(e) } } } }
extension ObservableType { static func from<U>(_ f: @escaping (Self.E) throws -> U, catch: (Error) -> U) -> ((Self.E) -> Observable<U>) { return { (e: E) in do { let u = try f(e) return Observable.just(u) } catch(let e) { return Observable.just(catch(e)) } } } }