Type Erasure
Sometimes it may be desirable to explicitly remove type information. Often this is when you want to pass around types with complicated generic signatures. SwiftCurrent, much like many of Apple’s standard libraries, ships with several type erasers for your convenience.
AnyWorkflow.PassedArgs
The type AnyWorkflow.PassedArgs
is worth calling out separately. It’s very similar to Swift’s standard Optional
type, but with a crucial difference. Consumers of SwiftCurrent need to be able to clearly differentiate between nil
being passed in a Workflow
that proceeded and no arguments being passed. So if a FlowRepresentable.WorkflowInput
is Any?
, that means it can accept any data, even if that data is optional, but data must be passed to it. If a FlowRepresentable.WorkflowInput
is AnyWorkflow.PassedArgs
, it means that it can take any data, including nil data, OR it can take no data at all.