Workflow
public final class Workflow<F> : LinkedList<_WorkflowItem> where F : FlowRepresentable
A doubly linked list of FlowRepresentableMetadatas; used to define a process.
Discussion
In a sufficiently complex application, it may make sense to create a structure to hold onto all the workflows in an application.
Example
struct Workflows {
static let schedulingFlow = Workflow(SomeFlowRepresentable.self)
.thenProceed(with: SomeOtherFlowRepresentable.self)
}
-
Declaration
Swift
public required init(_ node: Element?) -
Declaration
Swift
public required init(withoutCopying node: Element? = nil) -
The
OrchestartionRespondertheWorkflowwill send actions to.Declaration
Swift
public internal(set) var orchestrationResponder: OrchestrationResponder? { get } -
Creates a
Workflowwith aWorkflowItemthat has metadata, but no instance.Declaration
Swift
public convenience init(_ metadata: FlowRepresentableMetadata) -
Appends a
WorkflowItemthat has metadata, but no instance.Declaration
Swift
public func append(_ metadata: FlowRepresentableMetadata) -
Launches the
Workflow.Declaration
Swift
@discardableResult public func launch(withOrchestrationResponder orchestrationResponder: OrchestrationResponder, launchStyle: LaunchStyle = .default, onFinish: ((AnyWorkflow.PassedArgs) -> Void)? = nil) -> Element?Parameters
orchestrationResponderthe
OrchestrationResponderto notify when theWorkflowproceeds or backs up.launchStylethe launch style to use.
onFinishthe closure to call when the last element in the workflow proceeds; called with the
AnyWorkflow.PassedArgsthe workflow finished with.Return Value
the first loaded instance or nil, if none was loaded.
-
Launches the
Workflow.Discussion
Args are passed to the first instance, it has the opportunity to load, not load and transform them, or just not load. In the event an instance does not load and does not transform args, they are passed unmodified to the next instance in the
Workflowuntil one loads.Declaration
Swift
@discardableResult public func launch(withOrchestrationResponder orchestrationResponder: OrchestrationResponder, args: Any?, withLaunchStyle launchStyle: LaunchStyle = .default, onFinish: ((AnyWorkflow.PassedArgs) -> Void)? = nil) -> Element?Parameters
orchestrationResponderthe
OrchestrationResponderto notify when theWorkflowproceeds or backs up.argsthe arguments to pass to the first instance(s).
launchStylethe launch style to use.
onFinishthe closure to call when the last element in the workflow proceeds; called with the
AnyWorkflow.PassedArgsthe workflow finished with.Return Value
the first loaded instance or nil, if none was loaded.
-
Launches the
Workflow.Discussion
passedArgs are passed to the first instance, it has the opportunity to load, not load and transform them, or just not load. In the event an instance does not load and does not transform args, they are passed unmodified to the next instance in the
Workflowuntil one loads.Declaration
Swift
@discardableResult public func launch(withOrchestrationResponder orchestrationResponder: OrchestrationResponder, passedArgs: AnyWorkflow.PassedArgs, launchStyle: LaunchStyle = .default, onFinish: ((AnyWorkflow.PassedArgs) -> Void)? = nil) -> Element?Parameters
orchestrationResponderthe
OrchestrationResponderto notify when theWorkflowproceeds or backs up.passedArgsthe arguments to pass to the first instance(s).
launchStylethe launch style to use.
onFinishthe closure to call when the last element in the workflow proceeds; called with the
AnyWorkflow.PassedArgsthe workflow finished with.Return Value
the first loaded instance or nil, if none was loaded.
-
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default)Parameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping (F.WorkflowInput) -> FlowPersistence)Parameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentableand returning aFlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping () -> FlowPersistence) where F.WorkflowInput == NeverParameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping (F.WorkflowInput) -> FlowPersistence) where F.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where F.WorkflowOutput == FR.WorkflowInputParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR> where F.WorkflowOutput == FR.WorkflowInputParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Wraps this workflow with a type eraser.
Declaration
Swift
public func eraseToAnyWorkflow() -> AnyWorkflowReturn Value
an
AnyWorkflowwrapping thisWorkflow -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
@available(*, deprecated, renamed: "init(_:launchStyle:flowPersistence:﹚") public convenience init(_ type: F.Type, presentationType: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default)Parameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypethe flow representable should use while it’s part of this workflow.flowPersistencethe
FlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
@available(*, deprecated, renamed: "init(_:launchStyle:flowPersistence:﹚") public convenience init(_ type: F.Type, presentationType: LaunchStyle.PresentationType, flowPersistence: @escaping (F.WorkflowInput) -> FlowPersistence)Parameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypethe flow representable should use while it’s part of this workflow.flowPersistencea closure taking in the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
@available(*, deprecated, renamed: "init(_:launchStyle:flowPersistence:﹚") public convenience init(_ type: F.Type, presentationType: LaunchStyle.PresentationType, flowPersistence: @autoclosure @escaping () -> FlowPersistence) where F.WorkflowInput == NeverParameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypethe flow representable should use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
@available(*, deprecated, renamed: "init(_:launchStyle:flowPersistence:﹚") public convenience init(_ type: F.Type, presentationType: LaunchStyle.PresentationType, flowPersistence: @autoclosure @escaping () -> FlowPersistence) where F.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypethe flow representable should use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
@available(*, deprecated, renamed: "thenProceed(with:launchStyle:flowPersistence:﹚") public func thenPresent<FR: FlowRepresentable>(_ type: FR.Type, presentationType: LaunchStyle.PresentationType = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where F.WorkflowOutput == FR.WorkflowInputParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypetheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
@available(*, deprecated, renamed: "thenProceed(with:launchStyle:flowPersistence:﹚") public func thenPresent<FR: FlowRepresentable>(_ type: FR.Type, presentationType: LaunchStyle.PresentationType = .default, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR> where F.WorkflowOutput == FR.WorkflowInputParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypetheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
@available(*, deprecated, renamed: "thenProceed(with:launchStyle:flowPersistence:﹚") public func thenPresent<FR: FlowRepresentable>(_ type: FR.Type, presentationType: LaunchStyle.PresentationType = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypetheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
@available(*, deprecated, renamed: "thenProceed(with:launchStyle:flowPersistence:﹚") public func thenPresent<FR: FlowRepresentable>(_ type: FR.Type, presentationType: LaunchStyle.PresentationType = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypetheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Called when the workflow should be terminated, and the app should return to the point before the workflow was launched.
Important
In order to dismiss UIKit views the workflow must have anOrchestrationResponderthat is aUIKitPresenter.Declaration
Swift
public func abandon(animated: Bool = true, onFinish: (() -> Void)? = nil)Parameters
animateda boolean indicating whether abandoning the workflow should be animated.
onFinisha callback after the workflow has been abandoned.
-
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default)Parameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping (F.WorkflowInput) -> FlowPersistence)Parameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentableand returning aFlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping () -> FlowPersistence) where F.WorkflowInput == NeverParameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist. -
Creates a
Workflowwith aFlowRepresentable.Declaration
Swift
public convenience init(_ type: F.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping (F.WorkflowInput) -> FlowPersistence) where F.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the first
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where F.WorkflowOutput == FR.WorkflowInputParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR> where F.WorkflowOutput == FR.WorkflowInputParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem.
-
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping () -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem.
-
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR>Parameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR>Parameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle = .default, flowPersistence: @escaping () -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem.
-
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
@available(*, deprecated, renamed: "thenProceed(with:launchStyle:flowPersistence:﹚") public func thenPresent<FR: FlowRepresentable>(_ type: FR.Type, presentationType: LaunchStyle.PresentationType = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypetheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
@available(*, deprecated, renamed: "thenProceed(with:launchStyle:flowPersistence:﹚") public func thenPresent<FR: FlowRepresentable>(_ type: FR.Type, presentationType: LaunchStyle.PresentationType = .default, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.presentationTypethe
LaunchStyle.PresentationTypetheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping () -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem.
-
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR>Parameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR>Parameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping (FR.WorkflowInput) -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == AnyWorkflow.PassedArgsParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure taking in the generic type from the
FlowRepresentable.WorkflowInputand returning aFlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping @autoclosure () -> FlowPersistence = .default) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem. -
Adds an item to the workflow; enforces the
FlowRepresentable.WorkflowOutputof the previous item matches theFlowRepresentable.WorkflowInputof this item.Declaration
Swift
public func thenProceed<FR: FlowRepresentable>(with type: FR.Type, launchStyle: LaunchStyle.PresentationType, flowPersistence: @escaping () -> FlowPersistence) -> Workflow<FR> where FR.WorkflowInput == NeverParameters
typea reference to the next
FlowRepresentable‘s concrete type in the workflow.launchStylethe
LaunchStyletheFlowRepresentableshould use while it’s part of this workflow.flowPersistencea closure returning a
FlowPersistencerepresenting how this item in the workflow should persist.Return Value
a new workflow with the additional
FlowRepresentableitem.
View on GitHub
Workflow Class Reference