From 604195cb2a3e32b1ce529bced458c78bb3c7e8a0 Mon Sep 17 00:00:00 2001 From: Kabir Oberai Date: Tue, 31 Dec 2024 01:42:40 +0530 Subject: [PATCH] Dependency API surface cleanup --- .../GrandSlam/Anisette/ADIDataProvider.swift | 6 +++--- .../Anisette/AnisetteDataProvider.swift | 6 +++--- .../GrandSlam/Anisette/DeviceInfo.swift | 2 ++ .../Supersign/Utilities/KeyValueStorage.swift | 17 ++++++++++++++--- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/Sources/Supersign/GrandSlam/Anisette/ADIDataProvider.swift b/Sources/Supersign/GrandSlam/Anisette/ADIDataProvider.swift index 705e30a..d3f0ad2 100644 --- a/Sources/Supersign/GrandSlam/Anisette/ADIDataProvider.swift +++ b/Sources/Supersign/GrandSlam/Anisette/ADIDataProvider.swift @@ -46,9 +46,9 @@ private struct UnimplementedRawADIProvider: RawADIProvider { } } -public enum RawADIProviderDependencyKey: DependencyKey { - public static let testValue: RawADIProvider = UnimplementedRawADIProvider() - public static let liveValue: RawADIProvider = { +private enum RawADIProviderDependencyKey: DependencyKey { + static let testValue: RawADIProvider = UnimplementedRawADIProvider() + static let liveValue: RawADIProvider = { #if os(Linux) return SupersetteADIProvider() #else diff --git a/Sources/Supersign/GrandSlam/Anisette/AnisetteDataProvider.swift b/Sources/Supersign/GrandSlam/Anisette/AnisetteDataProvider.swift index d570c1a..8b6794e 100644 --- a/Sources/Supersign/GrandSlam/Anisette/AnisetteDataProvider.swift +++ b/Sources/Supersign/GrandSlam/Anisette/AnisetteDataProvider.swift @@ -35,9 +35,9 @@ extension DependencyValues { } } -public struct AnisetteDataProviderDependencyKey: DependencyKey { - public static let testValue: AnisetteDataProvider = UnimplementedAnisetteDataProvider() - public static let liveValue: AnisetteDataProvider = ADIDataProvider() +private struct AnisetteDataProviderDependencyKey: DependencyKey { + static let testValue: AnisetteDataProvider = UnimplementedAnisetteDataProvider() + static let liveValue: AnisetteDataProvider = ADIDataProvider() } private struct UnimplementedAnisetteDataProvider: AnisetteDataProvider { diff --git a/Sources/Supersign/GrandSlam/Anisette/DeviceInfo.swift b/Sources/Supersign/GrandSlam/Anisette/DeviceInfo.swift index f1d46b2..d9eb32c 100644 --- a/Sources/Supersign/GrandSlam/Anisette/DeviceInfo.swift +++ b/Sources/Supersign/GrandSlam/Anisette/DeviceInfo.swift @@ -113,6 +113,8 @@ public struct DeviceInfoProvider: DependencyKey, Sendable { } private static let current = Result { try DeviceInfo.fetch() } + + public static let testValue = DeviceInfoProvider(fetch: unimplemented()) public static let liveValue = DeviceInfoProvider { try current.get() } } diff --git a/Sources/Supersign/Utilities/KeyValueStorage.swift b/Sources/Supersign/Utilities/KeyValueStorage.swift index b268088..76bd42a 100644 --- a/Sources/Supersign/Utilities/KeyValueStorage.swift +++ b/Sources/Supersign/Utilities/KeyValueStorage.swift @@ -22,8 +22,9 @@ public protocol KeyValueStorage: Sendable { func setString(_ string: String?, forKey key: String) throws } -public enum KeyValueStorageDependencyKey: DependencyKey { - public static let liveValue: KeyValueStorage = DirectoryStorage() +private enum KeyValueStorageDependencyKey: DependencyKey { + static let testValue: KeyValueStorage = UnimplementedKeyValueStorage() + static let liveValue: KeyValueStorage = DirectoryStorage() } extension DependencyValues { @@ -56,7 +57,17 @@ extension KeyValueStorage { } } -public final class MemoryKeyValueStorage: KeyValueStorage { +public struct UnimplementedKeyValueStorage: KeyValueStorage { + public func data(forKey key: String) throws -> Data? { + unimplemented(placeholder: nil) + } + + public func setData(_ data: Data?, forKey key: String) throws { + unimplemented() + } +} + +public struct MemoryKeyValueStorage: KeyValueStorage { private let dict = LockIsolated<[String: Data]>([:]) public init() {}