[swift-dev] Swift C enum Case Mapping
Austin Zheng
austinzheng at gmail.com
Sun Jan 10 15:25:28 CST 2016
I spoke too soon, the cases are also defined as values of that type. So, a working version of your code:
extension fe_type : CustomStringConvertible {
public var description: String {
switch self {
case FE_QPSK: return "QPSK"
case FE_QAM: return "QAM"
case FE_OFDM: return "OFDM"
case FE_ATSC: return "ATSC"
default: fatalError("can't be exhaustive")
}
}
}
Best,
Austin
> On Jan 10, 2016, at 1:22 PM, Austin Zheng <austinzheng at gmail.com> wrote:
>
> Hi Ryan,
>
> Apologies, I should have been more clear. In Xcode you can alt(?)-click on a type (e.g the 'MyType' in "let a : MyType = 123") in the IDE to pop up a little window that shows you the definition, including the type and some other information. If you're on a Linux box or not using an IDE you probably don't have that option.
>
> The only methods I see exposed on the Swift imported type are initializers taking a integer raw value, and a 'rawValue' property for getting back out the raw value. Hope that helps.
>
> Austin
>
>> On Jan 10, 2016, at 1:18 PM, Ryan Lovelett <swift-dev at ryan.lovelett.me <mailto:swift-dev at ryan.lovelett.me>> wrote:
>>
>> Austin,
>>
>> I guess I should say that the `typedef` is coming from a Linux kernel header <http://lxr.free-electrons.com/source/include/linux/dvb/frontend.h?v=3.2>. So I don't think I'm going to be able to add any macros to the definition.
>>
>> What do you mean about alt-click? Alt click where?
>>
>> On Sun, Jan 10, 2016, at 04:12 PM, Austin Zheng wrote:
>>> fe_type is being imported as a struct (alt-click 'fe_type' in Swift). I think if you want it to be imported as an enum you need to use the NS_ENUM macro in the definition, which might not be possible in your case.
>>>
>>> Austin
>>>
>>>> On Jan 10, 2016, at 1:06 PM, Ryan Lovelett via swift-dev <swift-dev at swift.org <mailto:swift-dev at swift.org>> wrote:
>>>>
>>>> typedef enum fe_type {
>>>> FE_QPSK,
>>>> FE_QAM,
>>>> FE_OFDM,
>>>> FE_ATSC
>>>> } fe_type_t;
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160110/d38194e3/attachment.html>
More information about the swift-dev
mailing list