1818import Foundation
1919
2020public protocol Animatable {
21- associatedtype AnimatableData : VectorArithmetic
22- var animatableData : Self . AnimatableData { get set }
21+ associatedtype _AnimatableData : VectorArithmetic
22+ var animatableData : Self . _AnimatableData { get set }
2323}
2424
2525public protocol _PrimitiveAnimatable { }
@@ -32,7 +32,7 @@ public extension Animatable where Self: VectorArithmetic {
3232 }
3333}
3434
35- public extension Animatable where Self. AnimatableData == EmptyAnimatableData {
35+ public extension Animatable where Self. _AnimatableData == EmptyAnimatableData {
3636 var animatableData : EmptyAnimatableData {
3737 @inlinable get { EmptyAnimatableData ( ) }
3838 // swiftlint:disable:next unused_setter_value
@@ -140,26 +140,34 @@ public struct AnimatablePair<First, Second>: VectorArithmetic
140140}
141141
142142extension CGPoint : Animatable {
143- public var animatableData : AnimatablePair < CGFloat , CGFloat > {
143+ public typealias _AnimatableData = AnimatablePair < CGFloat , CGFloat >
144+ public var animatableData : _AnimatableData {
144145 @inlinable get { . init( x, y) }
145146 @inlinable set { ( x, y) = newValue [ ] }
146147 }
147148}
148149
149150extension CGSize : Animatable {
150- public var animatableData : AnimatablePair < CGFloat , CGFloat > {
151+ public typealias _AnimatableData = AnimatablePair < CGFloat , CGFloat >
152+ public var animatableData : _AnimatableData {
151153 @inlinable get { . init( width, height) }
152154 @inlinable set { ( width, height) = newValue [ ] }
153155 }
154156}
155157
156158extension CGRect : Animatable {
157- public var animatableData : AnimatablePair < CGPoint . AnimatableData , CGSize . AnimatableData > {
159+ public typealias _AnimatableData = AnimatablePair < AnimatablePair < CGFloat , CGFloat > , AnimatablePair < CGFloat , CGFloat > >
160+ public var animatableData : _AnimatableData {
158161 @inlinable get {
159- . init( origin. animatableData, size. animatableData)
162+ . init(
163+ AnimatablePair ( origin. x, origin. y) ,
164+ AnimatablePair ( size. width, size. height)
165+ )
160166 }
161167 @inlinable set {
162- ( origin. animatableData, size. animatableData) = newValue [ ]
168+ let value = newValue [ ]
169+ origin = . init( x: value. 0 [ ] . 0 , y: value. 0 [ ] . 1 )
170+ size = . init( width: value. 1 [ ] . 0 , height: value. 1 [ ] . 1 )
163171 }
164172 }
165173}
0 commit comments