diff options
Diffstat (limited to 'servo/components/style/values/animated/mod.rs')
-rw-r--r-- | servo/components/style/values/animated/mod.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/servo/components/style/values/animated/mod.rs b/servo/components/style/values/animated/mod.rs index 31ea206fc0..235ddcba5a 100644 --- a/servo/components/style/values/animated/mod.rs +++ b/servo/components/style/values/animated/mod.rs @@ -273,6 +273,23 @@ where } } +impl<T> ToAnimatedValue for thin_vec::ThinVec<T> +where + T: ToAnimatedValue, +{ + type AnimatedValue = thin_vec::ThinVec<<T as ToAnimatedValue>::AnimatedValue>; + + #[inline] + fn to_animated_value(self) -> Self::AnimatedValue { + self.into_iter().map(T::to_animated_value).collect() + } + + #[inline] + fn from_animated_value(animated: Self::AnimatedValue) -> Self { + animated.into_iter().map(T::from_animated_value).collect() + } +} + impl<T> ToAnimatedValue for Box<T> where T: ToAnimatedValue, @@ -452,6 +469,16 @@ where } } +impl<T> ToAnimatedZero for thin_vec::ThinVec<T> +where + T: ToAnimatedZero, +{ + #[inline] + fn to_animated_zero(&self) -> Result<Self, ()> { + self.iter().map(|v| v.to_animated_zero()).collect() + } +} + impl<T> ToAnimatedZero for Box<[T]> where T: ToAnimatedZero, |