mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Temp
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import Foundation
|
||||
|
||||
public enum SignalEvent<T, E> {
|
||||
case Next(T)
|
||||
case Error(E)
|
||||
case Completion
|
||||
}
|
||||
|
||||
public func dematerialize<T, E>(signal: Signal<T, E>) -> Signal<SignalEvent<T, E>, NoError> {
|
||||
return Signal { subscriber in
|
||||
return signal.start(next: { next in
|
||||
subscriber.putNext(.Next(next))
|
||||
}, error: { error in
|
||||
subscriber.putNext(.Error(error))
|
||||
subscriber.putCompletion()
|
||||
}, completed: {
|
||||
subscriber.putNext(.Completion)
|
||||
subscriber.putCompletion()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
public func materialize<T, E>(signal: Signal<SignalEvent<T, E>, NoError>) -> Signal<T, E> {
|
||||
return Signal { subscriber in
|
||||
return signal.start(next: { next in
|
||||
switch next {
|
||||
case let .Next(next):
|
||||
subscriber.putNext(next)
|
||||
case let .Error(error):
|
||||
subscriber.putError(error)
|
||||
case .Completion:
|
||||
subscriber.putCompletion()
|
||||
}
|
||||
}, error: { _ in
|
||||
subscriber.putCompletion()
|
||||
}, completed: {
|
||||
subscriber.putCompletion()
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user