Files
Stephen Celis bc8f27b1d0 Swift Language Support: Drop <5.9 (#3185)
* Swift Language Support: Drop <5.9

* wip

* wip

* wip

* wip

* wip
2024-06-19 07:40:15 -07:00

42 lines
1.0 KiB
Swift

import Benchmark
import Combine
import ComposableArchitecture
import Dependencies
import Foundation
let dependenciesSuite = BenchmarkSuite(name: "Dependencies") { suite in
let reducer: some Reducer<Int, Void> = BenchmarkReducer()
.dependency(\.calendar, .autoupdatingCurrent)
.dependency(\.date, .init { Date() })
.dependency(\.locale, .autoupdatingCurrent)
.dependency(\.mainQueue, .immediate)
.dependency(\.mainRunLoop, .immediate)
.dependency(\.timeZone, .autoupdatingCurrent)
.dependency(\.uuid, .init { UUID() })
suite.benchmark("Dependency key writing") {
var state = 0
_ = reducer.reduce(into: &state, action: ())
precondition(state == 1)
}
}
@Reducer
private struct BenchmarkReducer {
@Dependency(\.someValue) var someValue
var body: some Reducer<Int, Void> {
Reduce { state, action in
state = self.someValue
return .none
}
}
}
private enum SomeValueKey: DependencyKey {
static let liveValue = 1
}
extension DependencyValues {
var someValue: Int {
self[SomeValueKey.self]
}
}