BowBrightFutures 0.5.0

BowBrightFutures 0.5.0

TomásRuizLópezMiguel Ángel Díazjuancazalla 维护。



 
依赖关系
Bow~> 0.5.0
BrightFutures~> 8.0.0
BowEffects~> 0.5.0
 

  • The Bow authors

Bow 是一个 Swift 中用于类型化函数式编程的库。

模块

Bow 被分割成多个模块,可以独立使用。这些模块包括

  • Bow:核心库。包含泛型类型模拟、函数操作工具、Typeclasses、数据类型、 Monad Transformers 和原始类型实例。
  • BowOptics:用于操作不同光学的模块。
  • BowRecursionSchemes:用于操作递归方案的模块。
  • BowFree:用于操作 Free Monads 的模块。
  • BowGeneric:用于操作泛型数据类型的模块。
  • BowEffects:用于操作效果的模块。
  • BowBrightFutures:提供与 BrightFutures 集成的模块。
  • BowRx:提供与 RxSwift 集成的模块。

还有一些用于测试的模块

  • BowLaws:核心模块中类型类定律。
  • BowOpticsLaws:光学的定律。
  • BowEffectsLaws:效果的定律。
  • BowGenerators:用于核心模块中数据类型基于属性的测试生成器。
  • BowFreeGenerators:用于 BowFree 中数据类型基于属性的测试生成器。
  • BowEffectsGenerators:用于 BowEffects 中数据类型基于属性的测试生成器。
  • BowRxGenerators:用于 BowRx 中数据类型基于属性的测试生成器。
  • BowBrightFuturesGenerators:用于 BowBrightFutures 中数据类型基于属性的测试生成器。

Bow 可以使用 CocoaPods、Carthage 和 Swift Package Manager 提供。

CocoaPods

您可以将每个 Bow 模块作为单独的 pod 使用。您可以将这些行添加到 Podfile 中

pod "Bow",                 "~> {version}"
pod "BowOptics",           "~> {version}"
pod "BowRecursionSchemes", "~> {version}"
pod "BowFree",             "~> {version}"
pod "BowGeneric",          "~> {version}"
pod "BowEffects",          "~> {version}"
pod "BowRx",               "~> {version}"
pod "BowBrightFutures",    "~> {version}"

测试定律

pod "BowLaws",        "~> {version}"
pod "BowOpticsLaws",  "~> {version}"
pod "BowEffectsLaws", "~> {version}"

使用 SwiftCheck 进行基于属性的测试生成器

pod "BowGenerators",              "~> {version}"
pod "BowFreeGenerators",          "~> {version}"
pod "BowEffectsGenerators",       "~> {version}"
pod "BowRxGenerators",            "~> {version}"
pod "BowBrightFuturesGenerators", "~> {version}"

Carthage

Carthage 将下载整个 Bow 项目,但它将为每个您可单独使用的模块编译单个框架。将此行添加到您的 Cartfile 中。

github "bow-swift/Bow" ~> {version}

Swift Package Manager

创建一个类似于下一个 Package.swift 文件的文件,并按需使用依赖。

// swift-tools-version:5.0

import PackageDescription

let package = Package(
    name: "BowTestProject",
    dependencies: [
        .package(url: "https://github.com/bow-swift/bow.git", from: "{version}")
    ],
    targets: [
        .target(name: "BowTestProject",
                dependencies: [
                    "Bow",
                    "BowOptics",
                    "BowRecursionSchemes",
                    "BowFree",
                    "BowGeneric",
                    "BowEffects",
                    "BowRx",
                    "BowBrightFutures"]),
        .testTarget(name: "BowTestProjectTests",
                    dependencies: [
                        // Type class laws
                        "BowLaws",
                        "BowOpticsLaws",
                        "BowEffectsLaws",

                        // Generators for PBT with SwiftCheck
                        "BowGenerators",
                        "BowFreeGenerators",
                        "BowEffectsGenerators",
                        "BowRxGenerators",
                        "BowBrightFuturesGenerators"])
    ]
)

要构建它,只需运行

$ swift build

贡献

如果您想为这个库做出贡献,可以查看 问题 以查看一些待办事宜。

如何运行该项目

如果您没有安装 carthage,请先安装它

brew install carthage

之后,运行以下命令获取所有项目依赖

carthage bootstrap

现在,您可以使用 Xcode 打开 Bow.xcodeproj 并运行测试,以查看一切是否正常工作。

许可证

Copyright (C) 2018 The Bow Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://apache.ac.cn/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.