From a9c81f44faeba623c39ab7acac9280bbe4cf35af Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Mon, 5 Dec 2022 22:51:56 +0100 Subject: [PATCH] Implemented the Dependency property wrapper. --- .../Property Wrappers/Dependency.swift | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Libraries/Sources/DependencyService/Property Wrappers/Dependency.swift diff --git a/Libraries/Sources/DependencyService/Property Wrappers/Dependency.swift b/Libraries/Sources/DependencyService/Property Wrappers/Dependency.swift new file mode 100644 index 0000000..d8f21fd --- /dev/null +++ b/Libraries/Sources/DependencyService/Property Wrappers/Dependency.swift @@ -0,0 +1,29 @@ +// +// Dependency.swift +// DependencyService +// +// Created by Javier Cicchelli on 05/12/2022. +// Copyright © 2022 Röck+Cöde. All rights reserved. +// + +@propertyWrapper +public struct Dependency { + + // MARK: Properties + + private let keyPath: WritableKeyPath + + // MARK: Computed + + public var wrappedValue: D { + get { DependencyStore[keyPath] } + set { DependencyStore[keyPath] = newValue } + } + + // MARK: Initialisers + + public init(_ keyPath: WritableKeyPath) { + self.keyPath = keyPath + } + +}