created publisher folder

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-18 09:30:45 -05:00
parent 350da3fb2b
commit 0bbdf6ddf0
3 changed files with 37 additions and 1 deletions

View File

@ -46,6 +46,7 @@
EAB1D2C728A6E76300DAE764 /* ModelHandlerPublisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2C628A6E76300DAE764 /* ModelHandlerPublisher.swift */; };
EAB1D2CD28ABE76100DAE764 /* Withable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2CC28ABE76000DAE764 /* Withable.swift */; };
EAB1D2CF28ABEF2B00DAE764 /* Typography.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2CE28ABEF2B00DAE764 /* Typography.swift */; };
EAB1D2E628AE842000DAE764 /* Publisher+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2E328AE842000DAE764 /* Publisher+Bind.swift */; };
EAF7F0952899861000B287F5 /* Checkbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0932899861000B287F5 /* Checkbox.swift */; };
EAF7F0962899861000B287F5 /* CheckboxModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0942899861000B287F5 /* CheckboxModel.swift */; };
EAF7F09A2899B17200B287F5 /* CATransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0992899B17200B287F5 /* CATransaction.swift */; };
@ -126,6 +127,7 @@
EAB1D2C628A6E76300DAE764 /* ModelHandlerPublisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelHandlerPublisher.swift; sourceTree = "<group>"; };
EAB1D2CC28ABE76000DAE764 /* Withable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Withable.swift; sourceTree = "<group>"; };
EAB1D2CE28ABEF2B00DAE764 /* Typography.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Typography.swift; sourceTree = "<group>"; };
EAB1D2E328AE842000DAE764 /* Publisher+Bind.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Publisher+Bind.swift"; sourceTree = "<group>"; };
EAF7F0932899861000B287F5 /* Checkbox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Checkbox.swift; sourceTree = "<group>"; };
EAF7F0942899861000B287F5 /* CheckboxModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckboxModel.swift; sourceTree = "<group>"; };
EAF7F0992899B17200B287F5 /* CATransaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CATransaction.swift; sourceTree = "<group>"; };
@ -205,6 +207,7 @@
EA3361DF2891D0F10071C351 /* Fonts */,
EA3361AB288B25EC0071C351 /* Protocols */,
EAB1D29F28A598D000DAE764 /* PropertyWrappers */,
EAB1D2E228AE842000DAE764 /* Publishers */,
EAB1D2D028ABEF3100DAE764 /* Typography */,
EA3361B9288B2BE30071C351 /* Utilities */,
EA3361FE2891E14C0071C351 /* SupportingFiles */,
@ -296,7 +299,6 @@
children = (
EAF7F0B8289C139800B287F5 /* ColorConfiguration.swift */,
EAF7F09D289AAEC000B287F5 /* Constants.swift */,
EAB1D2C628A6E76300DAE764 /* ModelHandlerPublisher.swift */,
EA3361B5288B2A410071C351 /* Control.swift */,
EAF7F09F289AB7EC00B287F5 /* View.swift */,
);
@ -367,6 +369,15 @@
path = Typography;
sourceTree = "<group>";
};
EAB1D2E228AE842000DAE764 /* Publishers */ = {
isa = PBXGroup;
children = (
EAB1D2E328AE842000DAE764 /* Publisher+Bind.swift */,
EAB1D2C628A6E76300DAE764 /* ModelHandlerPublisher.swift */,
);
path = Publishers;
sourceTree = "<group>";
};
EAF7F092289985E200B287F5 /* Checkbox */ = {
isa = PBXGroup;
children = (
@ -566,6 +577,7 @@
EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */,
EA336171288B19200071C351 /* VDS.docc in Sources */,
EAF7F0962899861000B287F5 /* CheckboxModel.swift in Sources */,
EAB1D2E628AE842000DAE764 /* Publisher+Bind.swift in Sources */,
EAB1D2C728A6E76300DAE764 /* ModelHandlerPublisher.swift in Sources */,
EA3361AA288B25E40071C351 /* Disabling.swift in Sources */,
EA3361B6288B2A410071C351 /* Control.swift in Sources */,

View File

@ -0,0 +1,24 @@
//
// 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)
}
}
}