Swift 3.0 Almost identical to Swift 2.0. OptionSetType was renamed to OptionSet and enums are written lower case by convention. struct MyOptions : OptionSet { let rawValue: Int static let firstOption = MyOptions(rawValue: 1 << 0) static let secondOption = MyOptions(rawValue: 1 << 1) static let thirdOption = MyOptions(rawValue: 1 << 2) } Instead of providing a none option, the Swift 3 recommendatio