Protocols
Protocol Basics
Delegate pattern
Associated type requirements
Class-Only Protocols
Protocol extension for a specific conforming class
Using the RawRepresentable protocol Extensible Enum
Implementing Hashable protocol