Dependency API surface cleanup

This commit is contained in:
Kabir Oberai
2024-12-31 01:42:40 +05:30
Unverified
parent 680554424e
commit 604195cb2a
4 changed files with 22 additions and 9 deletions
@@ -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
@@ -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 {
@@ -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() }
}
@@ -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() {}