Adds as<Case> helpers for enum cases.
@CaseConversion
enum TestEnum {
case firstCase
case secondCase(string: String, bool: Bool)
case thirdCase(argument: String)
case fourthCase(subtypeArgument: SubType.String)
}Generated:
enum TestEnum {
case firstCase
case secondCase(string: String, bool: Bool)
case thirdCase(argument: String)
case fourthCase(subtypeArgument: SubType.String)
var asSecondCase: (string: String, bool: Bool)? {
if case let .secondCase(string, bool) = self {
(string, bool)
} else {
nil
}
}
var asThirdCase: String? {
if case let .thirdCase(argument) = self {
argument
} else {
nil
}
}
var asFourthCase: SubType.String? {
if case let .fourthCase(subtypeArgument) = self {
subtypeArgument
} else {
nil
}
}
}Apply to enums only.