Contents

DanielSincere/IdentifiedEnumCases

Swift Macro to generate IDs for enumeration cases

Public visibility

If the enum is public, the generated CaseID enum and the generated caseID accessor will also be public. For example,

import IdentifiedEnumCases

@IdentifiedEnumCases
public enum AppRoute {
  case item(ItemRoute)
  case user(UserRoute)
}

generates to

public enum AppRoute {
  case item(ItemRoute)
  case user(UserRoute)

  public var caseID: CaseID {
    switch self {
    case .item: .item
    case .user: .user
  }

  public enum CaseID: String, Hashable, CaseIterable {
    case item
    case user
  }
}

Installation

In Package.swift, add the package to your dependencies.

.package(url: "https://github.com/FullQueueDeveloper/IdentifiedEnumCases.git", from: "1.0.0"),

And add "IdentifiedEnumCases" to the list of your target's dependencies.

When prompted by Xcode, trust the macro.

Swift macros?

Introduced at WWDC '23, requiring Swift 5.9

License

BSD-3-Clause

Package Metadata

Repository: DanielSincere/IdentifiedEnumCases

Stars: 28

Forks: 11

Open issues: 1

Default branch: trunk

Primary language: swift

License: BSD-3-Clause

README: README.md