Remove 10k from AnimationValue::animate.

This commit is contained in:
Josh Matthews 2017-09-07 12:46:24 -07:00
parent 13df088201
commit 799014755e

View file

@ -524,9 +524,17 @@ impl AnimationValue {
} }
} }
fn animate_discrete<T: Clone>(this: &T, other: &T, procedure: Procedure) -> Result<T, ()> {
if let Procedure::Interpolate { progress } = procedure {
Ok(if progress < 0.5 { this.clone() } else { other.clone() })
} else {
Err(())
}
}
impl Animate for AnimationValue { impl Animate for AnimationValue {
fn animate(&self, other: &Self, procedure: Procedure) -> Result<Self, ()> { fn animate(&self, other: &Self, procedure: Procedure) -> Result<Self, ()> {
match (self, other) { let value = match (self, other) {
% for prop in data.longhands: % for prop in data.longhands:
% if prop.animatable: % if prop.animatable:
% if prop.animation_value_type != "discrete": % if prop.animation_value_type != "discrete":
@ -534,22 +542,18 @@ impl Animate for AnimationValue {
&AnimationValue::${prop.camel_case}(ref this), &AnimationValue::${prop.camel_case}(ref this),
&AnimationValue::${prop.camel_case}(ref other), &AnimationValue::${prop.camel_case}(ref other),
) => { ) => {
Ok(AnimationValue::${prop.camel_case}( AnimationValue::${prop.camel_case}(
this.animate(other, procedure)?, this.animate(other, procedure)?,
)) )
}, },
% else: % else:
( (
&AnimationValue::${prop.camel_case}(ref this), &AnimationValue::${prop.camel_case}(ref this),
&AnimationValue::${prop.camel_case}(ref other), &AnimationValue::${prop.camel_case}(ref other),
) => { ) => {
if let Procedure::Interpolate { progress } = procedure { AnimationValue::${prop.camel_case}(
Ok(AnimationValue::${prop.camel_case}( animate_discrete(this, other, procedure)?
if progress < 0.5 { this.clone() } else { other.clone() }, )
))
} else {
Err(())
}
}, },
% endif % endif
% endif % endif
@ -557,7 +561,8 @@ impl Animate for AnimationValue {
_ => { _ => {
panic!("Unexpected AnimationValue::animate call, got: {:?}, {:?}", self, other); panic!("Unexpected AnimationValue::animate call, got: {:?}, {:?}", self, other);
} }
} };
Ok(value)
} }
} }