mirror of
https://github.com/pointfreeco/swift-composable-architecture.git
synced 2025-12-20 09:11:33 +01:00
* Add an `EffectOf<Action>` typealias for `Effect<Action, Never>` * Fix doc * Rename `EffectOf` to `EffectTask` * Rename `Effect` to `EffectPublisher` * Soft-deprecate `Effect` * Link to `EffectTask` * Use `EffectPublisher` in Combine contexts * Reword soft-deprecation message * Remove `renamed:` fix-it for `Effect` deprecation * Update Sources/ComposableArchitecture/Documentation.docc/Extensions/ReducerProtocol.md Co-authored-by: Stephen Celis <stephen.celis@gmail.com> * Update Sources/ComposableArchitecture/Documentation.docc/ComposableArchitecture.md * Update Sources/ComposableArchitecture/Effect.swift * Fix DocC identifiers Co-authored-by: Stephen Celis <stephen.celis@gmail.com>
29 lines
776 B
Swift
29 lines
776 B
Swift
import Benchmark
|
|
import Combine
|
|
import ComposableArchitecture
|
|
import Foundation
|
|
|
|
let effectSuite = BenchmarkSuite(name: "Effects") {
|
|
$0.benchmark("Merged Effect.none (create, flat)") {
|
|
doNotOptimizeAway(EffectTask<Int>.merge((1...100).map { _ in .none }))
|
|
}
|
|
|
|
$0.benchmark("Merged Effect.none (create, nested)") {
|
|
var effect = EffectTask<Int>.none
|
|
for _ in 1...100 {
|
|
effect = effect.merge(with: .none)
|
|
}
|
|
doNotOptimizeAway(effect)
|
|
}
|
|
|
|
let effect = EffectTask<Int>.merge((1...100).map { _ in .none })
|
|
var didComplete = false
|
|
$0.benchmark("Merged Effect.none (sink)") {
|
|
doNotOptimizeAway(
|
|
effect.sink(receiveCompletion: { _ in didComplete = true }, receiveValue: { _ in })
|
|
)
|
|
} tearDown: {
|
|
precondition(didComplete)
|
|
}
|
|
}
|