Skip to content

Commit 595664e

Browse files
committed
Improve introspection for SignalProducerWorkflow actions
1 parent 8b7e97b commit 595664e

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

WorkflowReactiveSwift/Sources/SignalProducerWorkflow.swift

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,27 @@ struct SignalProducerWorkflow<Value>: Workflow {
4747
public typealias State = Void
4848
public typealias Rendering = Void
4949

50+
struct Action: WorkflowAction {
51+
typealias WorkflowType = SignalProducerWorkflow
52+
let output: Value
53+
54+
func apply(toState state: inout Void) -> Value? {
55+
output
56+
}
57+
}
58+
5059
var signalProducer: SignalProducer<Value, Never>
5160

5261
public init(signalProducer: SignalProducer<Value, Never>) {
5362
self.signalProducer = signalProducer
5463
}
5564

5665
public func render(state: State, context: RenderContext<SignalProducerWorkflow>) -> Rendering {
57-
let sink = context.makeSink(of: AnyWorkflowAction.self)
66+
let sink = context.makeSink(of: Action.self)
5867
context.runSideEffect(key: "") { [signalProducer] lifetime in
5968
signalProducer
6069
.take(during: lifetime.reactiveLifetime)
61-
.map { AnyWorkflowAction(sendingOutput: $0) }
70+
.map { Action(output: $0) }
6271
.observe(on: QueueScheduler.main)
6372
.startWithValues(sink.send)
6473
}

0 commit comments

Comments
 (0)