Relay is a
Combine.Subject without the interface for sending completion
Subject, like a
Publisher, is stateful. Once the complete signal is sent,
subscriber will stop receiving values. In practice, this is rarely desirable:
anyone with a reference to a subject can terminate the data stream for all
subscribers, and that becomes a source of bugs.
Relays take away the mutability of the "completion" state, making it safer to
.package(url: "http://github.com/dduan/Relay", from: "0.1.2")
use_frameworks! pod "CombineRelay"
Relay provides types that thinly wraps around subject types in Combine:
Each type has identical interface and behavior to its Combine counterpart. Except it's impossible to send a complete signal.