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