OptionSetType is a protocol designed to represent bit mask types where individual bits represent members of the set. A set of logical and/or functions enforce the proper syntax:
struct Features : OptionSet {
let rawValue : Int
static let none = Features(rawValue: 0)
static let feature0 = F...