Swift 的管道

Swift Version GitHub license

一种便捷的方式,可以将给定的输入通过一系列可调用的类、闭包或函数“管道化”,让每个类有机会检查或修改输入,并调用管道中的下一个可调用对象。

安装

Swift 包管理器

Swift 包管理器允许开发者轻松地将包集成到他们的 Xcode 项目和包中,并且完全集成到 swift 编译器中。

通过 Xcode 项目使用 SPM

通过 Xcode 包使用 SPM

一旦你设置好你的 Swift 包,将 Git 链接添加到你的 Package.swift 文件的 dependencies 值中。

dependencies: [
    .package(url: "https://github.com/m1guelpf/swift-pipeline.git", .branch("main"))
]

用法

首先,使用 send 方法创建一个新的管道,传递你想要通过管道传输的输入。然后,使用 through 方法向管道添加一系列管道(可以是实现 Pipe 协议的类,也可以是闭包)。最后,调用 then 方法来转换并获取最终输出。

你也可以使用 pipe 方法将 Pipe 添加到现有的管道中,或者使用 thenReturn 来获取最终输出而不进行转换。

import Pipeline;

try Pipeline.send(project).through(
    .pipe(BuildProject(),
    .pipe(UploadProject(),
    .pipe(DeployProject()),
    .fn { project in
        // ...

        return project
    }
))).run()

如果你需要运行异步操作,请使用 AsyncPipeline 代替。

许可协议

本项目基于 MIT 许可协议 - 详见 LICENSE 文件。