[swift-evolution] Rough Proposal - Collection of all cases for an Enum
Félix Cloutier
felixcca at yahoo.ca
Wed Dec 23 16:46:00 CST 2015
You should join your efforts to the "Enum 'count' functionality" <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151221/003819.html> thread, where this is also being discussed.
Félix
> Le 23 déc. 2015 à 17:41:13, Anthony Miller via swift-evolution <swift-evolution at swift.org> a écrit :
>
> Rough proposal for implementing a method to get all cases on a enum. I feel like this is a valuable feature, and all current methods of doing this have major drawbacks. I'd like to field the idea to gauge interest.
> Thank You,
> Anthony Miller
> Lead iOS Developer, App-Order.com <http://app-order.com/>
> Mobile: 702-334-8454
> # Collection of all cases for an Enum
>
> ## Introduction
> Add reflection capabilities for getting an `Array` or `Set` of all cases for an Enum.
> This would not be supported for enums with associated values.
> ## Motivation
> This feature provides a benefit for many use cases.
> Multiple methods of doing this exist currently, however each has obvious drawbacks.
> For an summary of current methods, see: http://stackoverflow.com/questions/24007461/how-to-enumerate-an-enum-with-string-type/24137319#24137319 <http://stackoverflow.com/questions/24007461/how-to-enumerate-an-enum-with-string-type/24137319#24137319>
> ## Proposed solution
>
> This could be implemented as a static function or static constant.
> enum Foo {
> case CaseOne, CaseTwo, CaseThree
> }
>
> let allCases: [Foo] = Foo.allCases() // [.CaseOne, .CaseTwo, .CaseThree]
>
> Alternatively, an extension of `Mirror` to support mirrors of types could include this capability.
>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151223/579ce575/attachment.html>
More information about the swift-evolution
mailing list