[swift-evolution] Working with enums by name

Paul Cantrell cantrell at pobox.com
Tue May 31 17:03:08 CDT 2016


> On May 31, 2016, at 4:48 PM, Brent Royal-Gordon via swift-evolution <swift-evolution at swift.org> wrote:
> 
>> |   enum Planet : Int {
>> |      case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
>> |
>> |      init?(caseName name : String) {
> 
> The compiler actually does this already through RawRepresentable if you put `String` as your raw type. So what's the use case for this? Code which needs both a non-String rawValue *and* needs to look up cases by name? How common do you think that is?

How about a LogCategory enum:

• whose name is printed with each log entry (and thus wants a String raw type),
• which can be configured from command line or config file (and thus wants string-based lookup), but
• also wants OptionSetType-like behavior (and thus an Int raw type).

P



More information about the swift-evolution mailing list