Contents

xcessentials/xcepipeline

Custom pipeline operators for easy chaining in Swift

Custom Operators

| Operator | Description | |----------|-------------| | ./ | Pass through — transform value and continue the chain | | .? | Pass through unwrapped — unwrap optional, then transform | | .+ | Mutate — modify value in place via inout | | .- | Inspect — observe value without modifying it | | . | End chain — transform and return final result | | .? | End chain unwrapped — unwrap optional, transform, and return | | .! | Ensure condition — assert a condition or throw | | ?! | Unwrap or throw — unwrap optional or throw an error |

Async/Await Support

All operators have async and async throws variants, making them compatible with actors and structured concurrency.

SimpleWrapper & `take()`

Use take() as an entry point to wrap any value in a SimpleWrapper, which provides:

  • map — transform the wrapped value (sync + async)
  • inspect — observe the value without changing it (sync + async)
  • mutate — modify the value in place (sync + async)

Error Types

  • Pipeline.ConditionCheckError — reports a failed .! condition or wraps an error thrown by its predicate

How to install

XCEPipeline 4 requires Swift 6 or newer. The supported deployment targets remain macOS 12 and iOS 15; platform-independent functionality is also available on Linux.

Install using SwiftPM.

.package(url: "https://github.com/XCEssentials/XCEPipeline.git", from: "4.0.0")

Migrating from 3.x

Version 4 compiles in Swift 6 language mode and therefore requires a Swift 6 toolchain. The pipeline operators and their behavior are unchanged.

Package Metadata

Repository: xcessentials/xcepipeline

Default branch: master

README: README.md