Skip to content

Instantly share code, notes, and snippets.

@andersio
Created October 21, 2016 19:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andersio/3b4889176d6632bbb637ffd177795815 to your computer and use it in GitHub Desktop.
Save andersio/3b4889176d6632bbb637ffd177795815 to your computer and use it in GitHub Desktop.
import ReactiveSwift
import enum Result.NoError
public final class Subject<Value, Error: Swift.Error>: SignalProtocol, ObserverProtocol {
private let (_signal, observer) = Signal<Value, Error>.pipe()
public var signal: Signal<Value, Error> {
return _signal
}
public func observe(_ observer: Observer<Value, Error>) -> Disposable? {
return _signal.observe(observer)
}
public func send(value: Value) {
observer.send(value: value)
}
public func send(error: Error) {
observer.send(error: error)
}
public func sendCompleted() {
observer.sendCompleted()
}
public func sendInterrupted() {
observer.sendInterrupted()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment