MobiusCore/Source/EffectHandlers/EnumRoute.swift (22 lines of code) (raw):

// Copyright Spotify AB. // SPDX-License-Identifier: Apache-2.0 import CasePaths public extension EffectRouter { func routeCase<EffectParameters>( _ enumCase: @escaping (EffectParameters) -> Effect ) -> _PartialEffectRouter<Effect, EffectParameters, Event> { let casePath = /enumCase return routeEffects(withParameters: casePath.extract) } func routeCase( _ enumCase: Effect ) -> _PartialEffectRouter<Effect, Void, Event> { let casePath = /enumCase return routeEffects(withParameters: casePath.extract) } } public extension EffectRouter where Effect: Equatable { func routeCase( _ enumCase: Effect ) -> _PartialEffectRouter<Effect, Void, Event> { return routeEffects(withParameters: { effect in effect == enumCase ? () : nil }) } }