Open davidscheutz opened 1 year ago
Input
DemoEffect: Effect {
case performAction(parameter: String)
case cancelAction
enum Result {
case success
case error(Error)
}
}
Output
open class DemoEffectBaseHandler: EffectHandler {
func handle(_ effect: DemoEffect) async -> EffectResult< DemoEffect.Result> {
switch effect {
case .performAction(let parameter):
return await performAction(parameter: parameter)
case .cancelAction:
return await cancelAction()
}
}
func performAction(parameter: String) async -> EffectResult< DemoEffect.Result> {
fatalError("Override performAction effect handler")
}
func cancelAction() async -> EffectResult< DemoEffect.Result> {
fatalError("Override cancelAction effect handler")
}
}
TODO: setup SourceKitten for advanced code generation capabilities.
Generate base classes for
Update
andEffect Handler
with a function for each case statement that throws a not implemented exception if not overridden.