Hi, I have an idea for adding @dynamicMemberLookup to an OptionSet and using an enum as it's dynamicMember, such as:
@dynamicMemberLookup
struct TestOption: OptionSet {
let rawValue: UInt
enum Options: UInt {
case option1
case option2
case option3
static let option4 = Options.option1 // add this for testing
}
static subscript(dynamicMember keyPath: KeyPath<Options.Type, Options>) -> TestOption {
let option = Options.self[keyPath: keyPath]
return TestOption(rawValue: 1 << option.rawValue)
}
}
But it doesn't work at all, Xcode alerts me of these error:
TestOption.option1 // Dynamic key path member lookup cannot refer to enum case 'option1'
TestOption.option4 // Dynamic key path member lookup cannot refer to static member 'option4'
Is dynamicMemberLookup not supported in this way or was I just writing something wrong?
Thanks.