refactored propertywrappers
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
3c2ea29330
commit
d0b2dfd0b1
@ -37,11 +37,13 @@
|
||||
EA3362432892EFF20071C351 /* LabelModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3362422892EFF20071C351 /* LabelModel.swift */; };
|
||||
EA3362452892F9130071C351 /* Labelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3362442892F9130071C351 /* Labelable.swift */; };
|
||||
EA33624728931B050071C351 /* Initable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA33624628931B050071C351 /* Initable.swift */; };
|
||||
EA3C3B4C2894823E000CA526 /* AnyProxy-PropertyWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3C3B4B2894823E000CA526 /* AnyProxy-PropertyWrapper.swift */; };
|
||||
EA3C3B4C2894823E000CA526 /* AnyProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3C3B4B2894823E000CA526 /* AnyProxy.swift */; };
|
||||
EAB1D29428A3ECF700DAE764 /* SelectorGroupBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F13028A17FAB00B287F5 /* SelectorGroupBase.swift */; };
|
||||
EAB1D29A28A5611D00DAE764 /* SelectorGroupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29928A5611D00DAE764 /* SelectorGroupModel.swift */; };
|
||||
EAB1D29C28A5618900DAE764 /* RadioButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */; };
|
||||
EAB1D29E28A5619500DAE764 /* RadioButtonGroupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D29D28A5619500DAE764 /* RadioButtonGroupModel.swift */; };
|
||||
EAB1D2A128A598FE00DAE764 /* UsesAutoLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2A028A598FE00DAE764 /* UsesAutoLayout.swift */; };
|
||||
EAB1D2A328A5994800DAE764 /* Debuggable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2A228A5994800DAE764 /* Debuggable.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 */; };
|
||||
@ -116,10 +118,12 @@
|
||||
EA3362422892EFF20071C351 /* LabelModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelModel.swift; sourceTree = "<group>"; };
|
||||
EA3362442892F9130071C351 /* Labelable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Labelable.swift; sourceTree = "<group>"; };
|
||||
EA33624628931B050071C351 /* Initable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Initable.swift; sourceTree = "<group>"; };
|
||||
EA3C3B4B2894823E000CA526 /* AnyProxy-PropertyWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AnyProxy-PropertyWrapper.swift"; sourceTree = "<group>"; };
|
||||
EA3C3B4B2894823E000CA526 /* AnyProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnyProxy.swift; sourceTree = "<group>"; };
|
||||
EAB1D29928A5611D00DAE764 /* SelectorGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectorGroupModel.swift; sourceTree = "<group>"; };
|
||||
EAB1D29B28A5618900DAE764 /* RadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroup.swift; sourceTree = "<group>"; };
|
||||
EAB1D29D28A5619500DAE764 /* RadioButtonGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroupModel.swift; sourceTree = "<group>"; };
|
||||
EAB1D2A028A598FE00DAE764 /* UsesAutoLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsesAutoLayout.swift; sourceTree = "<group>"; };
|
||||
EAB1D2A228A5994800DAE764 /* Debuggable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Debuggable.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>"; };
|
||||
@ -198,8 +202,9 @@
|
||||
EA3361B4288B2A360071C351 /* Classes */,
|
||||
EA33619D288B1E330071C351 /* Components */,
|
||||
EA3361A6288B23240071C351 /* Extensions */,
|
||||
EA3361AB288B25EC0071C351 /* Protocols */,
|
||||
EA3361DF2891D0F10071C351 /* Fonts */,
|
||||
EA3361AB288B25EC0071C351 /* Protocols */,
|
||||
EAB1D29F28A598D000DAE764 /* PropertyWrappers */,
|
||||
EA3361B9288B2BE30071C351 /* Utilities */,
|
||||
EA3361FE2891E14C0071C351 /* SupportingFiles */,
|
||||
EA336170288B19200071C351 /* VDS.docc */,
|
||||
@ -289,7 +294,6 @@
|
||||
EA3361B4288B2A360071C351 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EA3C3B4B2894823E000CA526 /* AnyProxy-PropertyWrapper.swift */,
|
||||
EAF7F0B8289C139800B287F5 /* ColorConfiguration.swift */,
|
||||
EAF7F09D289AAEC000B287F5 /* Constants.swift */,
|
||||
EA3361B5288B2A410071C351 /* Control.swift */,
|
||||
@ -345,6 +349,16 @@
|
||||
path = Label;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EAB1D29F28A598D000DAE764 /* PropertyWrappers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EA3C3B4B2894823E000CA526 /* AnyProxy.swift */,
|
||||
EAB1D2A028A598FE00DAE764 /* UsesAutoLayout.swift */,
|
||||
EAB1D2A228A5994800DAE764 /* Debuggable.swift */,
|
||||
);
|
||||
path = PropertyWrappers;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EAF7F092289985E200B287F5 /* Checkbox */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -519,6 +533,7 @@
|
||||
EA3361C5289030FC0071C351 /* Accessable.swift in Sources */,
|
||||
EA33622C2891E73B0071C351 /* FontProtocol.swift in Sources */,
|
||||
EAF7F11728A1475A00B287F5 /* RadioButton.swift in Sources */,
|
||||
EAB1D2A128A598FE00DAE764 /* UsesAutoLayout.swift in Sources */,
|
||||
EAF7F0952899861000B287F5 /* Checkbox.swift in Sources */,
|
||||
EA3361C9289054C50071C351 /* Surfaceable.swift in Sources */,
|
||||
EA3361A2288B1E840071C351 /* ToggleModel.swift in Sources */,
|
||||
@ -532,7 +547,7 @@
|
||||
EAF7F09A2899B17200B287F5 /* CATransaction.swift in Sources */,
|
||||
EAB1D29E28A5619500DAE764 /* RadioButtonGroupModel.swift in Sources */,
|
||||
EAF7F0A2289AFB3900B287F5 /* Errorable.swift in Sources */,
|
||||
EA3C3B4C2894823E000CA526 /* AnyProxy-PropertyWrapper.swift in Sources */,
|
||||
EA3C3B4C2894823E000CA526 /* AnyProxy.swift in Sources */,
|
||||
EA3361AF288B26310071C351 /* FormFieldable.swift in Sources */,
|
||||
EAB1D29A28A5611D00DAE764 /* SelectorGroupModel.swift in Sources */,
|
||||
EAF7F0A8289B119400B287F5 /* Fontable.swift in Sources */,
|
||||
@ -545,6 +560,7 @@
|
||||
EAF7F0962899861000B287F5 /* CheckboxModel.swift in Sources */,
|
||||
EA3361AA288B25E40071C351 /* Disabling.swift in Sources */,
|
||||
EA3361B6288B2A410071C351 /* Control.swift in Sources */,
|
||||
EAB1D2A328A5994800DAE764 /* Debuggable.swift in Sources */,
|
||||
EAF7F0B7289C12A600B287F5 /* UITapGestureRecognizer.swift in Sources */,
|
||||
EA3362452892F9130071C351 /* Labelable.swift in Sources */,
|
||||
EA3361AD288B26190071C351 /* DataTrackable.swift in Sources */,
|
||||
|
||||
31
VDS/PropertyWrappers/Debuggable.swift
Normal file
31
VDS/PropertyWrappers/Debuggable.swift
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// File.swift
|
||||
// VDS
|
||||
//
|
||||
// Created by Matt Bruce on 8/11/22.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
@propertyWrapper
|
||||
public struct Debuggable<Value> {
|
||||
private var value: Value
|
||||
private let description: String
|
||||
|
||||
public init(wrappedValue: Value, description: String = "") {
|
||||
print("Initialized '\(description)' with value \(wrappedValue)")
|
||||
self.value = wrappedValue
|
||||
self.description = description
|
||||
}
|
||||
|
||||
public var wrappedValue: Value {
|
||||
get {
|
||||
print("Accessing '\(description)', returning: \(value)")
|
||||
return value
|
||||
}
|
||||
set {
|
||||
print("Updating '\(description)', newValue: \(newValue)")
|
||||
value = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
23
VDS/PropertyWrappers/UsesAutoLayout.swift
Normal file
23
VDS/PropertyWrappers/UsesAutoLayout.swift
Normal file
@ -0,0 +1,23 @@
|
||||
//
|
||||
// UseAutoLayout.swift
|
||||
// VDS
|
||||
//
|
||||
// Created by Matt Bruce on 8/11/22.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
|
||||
@propertyWrapper
|
||||
public struct UsesAutoLayout<T: UIView> {
|
||||
public var wrappedValue: T {
|
||||
didSet {
|
||||
wrappedValue.translatesAutoresizingMaskIntoConstraints = false
|
||||
}
|
||||
}
|
||||
|
||||
public init(wrappedValue: T) {
|
||||
self.wrappedValue = wrappedValue
|
||||
wrappedValue.translatesAutoresizingMaskIntoConstraints = false
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user