mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
48 lines
1.1 KiB
Swift
48 lines
1.1 KiB
Swift
public enum GenericResilientEnum<T> {
|
|
#if BEFORE
|
|
case FirstCase
|
|
case SecondCase
|
|
case ThirdCase(SomeObject)
|
|
case ForthCase(T)
|
|
#else
|
|
case SecondCase
|
|
case ForthCase(T)
|
|
case FirstCase
|
|
case ThirdCase(SomeObject)
|
|
#endif
|
|
}
|
|
|
|
public class SomeObject {
|
|
public func someNumber() -> Int{
|
|
return 7
|
|
}
|
|
}
|
|
public func createGenericResilientEnum1() -> GenericResilientEnum<Int> {
|
|
return GenericResilientEnum.FirstCase
|
|
}
|
|
|
|
public func createGenericResilientEnum2() -> GenericResilientEnum<Int> {
|
|
return GenericResilientEnum.SecondCase
|
|
}
|
|
public func createGenericResilientEnum3() -> GenericResilientEnum<Int> {
|
|
return GenericResilientEnum.ThirdCase(SomeObject())
|
|
}
|
|
public func createGenericResilientEnum4<T>(_ t: T) -> GenericResilientEnum<T> {
|
|
return GenericResilientEnum.ForthCase(t)
|
|
}
|
|
|
|
public func getCase<T>(_ e: GenericResilientEnum<T>) -> Int {
|
|
var whichCase = 0
|
|
switch e {
|
|
case .FirstCase:
|
|
whichCase = 1
|
|
case .SecondCase:
|
|
whichCase = 2
|
|
case .ThirdCase(_):
|
|
whichCase = 3
|
|
case .ForthCase(_):
|
|
whichCase = 4
|
|
}
|
|
return whichCase
|
|
}
|