Swift OptionSet

--

So if you need a property which might have more than one enum case, you can use OptionSet.

Bitwise shift operator is used to take advantage of OptionSet features such as intersection and union:

CakeIngredients(rawValue: 3) means banana and strawberry because rawValue of banana is 1 and rawValue of strawberry is 2 and sum is 3.

--

--