/// Protocol that requires its members to have a `layer` and a `frame` property.
/// Classes confirming to this protocol can serve as a delegate to `Animator`.
protocol Animatable {
var layer: CALayer { get }
var frame: CGRect { get }
}