PipelineStageKey

public final class PipelineStageKey : _OpenEnum, CustomStringConvertible

An unique identifier for a PipelineStage within a Pipeline. Transformers and stages have no intrinsic notion of identity or equality, so these keys are the only way to alter transformers after they’re configured.

Stage keys are arbitrary, and have no intrinsic meaning. The descriptions of the default stages are for human comprehensibility, and Siesta does not enforce them in any way (e.g. it does not prevent you from configuring the rawData stage to output something other than Data).

Because this is not an enum, you can add custom stages:

extension PipelineStageKey {
  static let
    munging   = PipelineStageKey(description: "munging"),
    twiddling = PipelineStageKey(description: "twiddling")
}

...

service.configure {
    $0.pipeline.order = [.rawData, .munging, .twiddling, .cleanup]
}
  • Response data still unprocessed. The stage typically contains no transformers.

    Declaration

    Swift

    public static let rawData: PipelineStageKey
  • Any bytes-to-bytes processing, such as decryption or decompression, not already performed by the network lib.

    Declaration

    Swift

    public static let decoding: PipelineStageKey
  • Transformation of bytes to an ADT or other generic data structure, e.g. a string, dictionary, or image.

    Declaration

    Swift

    public static let parsing: PipelineStageKey
  • Transformation from an ADT to a domain-specific model.

    Declaration

    Swift

    public static let model: PipelineStageKey
  • Error handling, validation, or any other general mop-up.

    Declaration

    Swift

    public static let cleanup: PipelineStageKey