in MobiusCore/Source/ConnectablePublisher.swift [45:67]
func connect(to outputConsumer: @escaping Consumer<Value>) -> Connection<Value> {
return access.guard { () -> Connection<Value> in
guard !_disposed else {
// Callers are responsible for ensuring connect is never entered after dispose.
MobiusHooks.errorHandler(
"ConnectablePublisher<\(Value.self)> cannot add connections when disposed",
#file,
#line
)
}
let uuid = UUID()
let connection = Connection(acceptClosure: outputConsumer, disposeClosure: { [weak self] in self?.removeConnection(for: uuid) })
self.connections[uuid] = connection
if let value = currentValue {
outputConsumer(value)
}
return connection
}
}