Case 访问器

Build & Test Swift Package Supports Swift 5.9+ Supports macOS, iOS, tvOS, watchOS, and Linux Licensed under the MIT License

Swift Package Index 列表文档兼容性

此包提供宏,使得解构带有关联值的枚举更加直接。

@CaseAccessors 宏向枚举类型添加计算属性,允许轻松检索关联值。

@CaseAccessors enum TestEnum {
    case stringValue(String)
    case intValue(Int)
    case boolValue(Bool)
}

let enumValue = TestEnum.stringValue("Hello, Macros!")

if let stringValue = enumValue.stringValue {
    print(stringValue) // Prints "Hello, Macros!"
}

第二个宏,@CaseConditionals 添加布尔计算属性,使得在枚举上执行条件检查更容易。

@CaseConditionals enum TestEnum {
    case one, two, three
}

let enumValue = TestEnum.one

if enumValue.isOne {
    // Do something
}

// The above is equivalent to
if case .one = enumValue {
    // Do something
}

安装

将以下内容添加到你的 Package.swift 文件中

let package = Package(
    // name, platforms, products, etc.
    dependencies: [
        // other dependencies
        .package(url: "https://github.com/rhysforyou/swift-case-accessors", "0.1.0"..<"0.2.0"),
    ],
    targets: [
        .target(
            name: "MyTarget",
            dependencies: ["CaseAccessors"]),
    ]
)