A Swift macro that enables lightweight reflection for enums by generating case metadata automatically.
@attached(member, names: named(caseName), named(caseIndex), named(parse))
public macro EnumReflection() = // ...
@EnumReflection
enum Status: Int {
case idle = 1, running, completed, failed
}
Generates:
extension Status {
internal var caseName: String {
// ...
}
internal var caseIndex: Int {
// ...
}
internal static func parse(caseName: String) -> Self? {
// ...
}
}