25 lines
579 B
Swift
25 lines
579 B
Swift
//
|
|
// Publisher+Bind.swift
|
|
// VDS
|
|
//
|
|
// Created by Matt Bruce on 8/18/22.
|
|
//
|
|
|
|
import Foundation
|
|
import Combine
|
|
|
|
public typealias Binding = Subscriber
|
|
|
|
public extension Publisher where Failure == Never {
|
|
func bind<B: Binding>(subscriber: B) -> AnyCancellable
|
|
where B.Failure == Never, B.Input == Output {
|
|
|
|
handleEvents(receiveSubscription: { subscription in
|
|
subscriber.receive(subscription: subscription)
|
|
})
|
|
.sink { value in
|
|
_ = subscriber.receive(value)
|
|
}
|
|
}
|
|
}
|