pub struct Animation {
pub duration: Duration,
pub delay: Duration,
pub repeat: AnimationRepeat,
pub easing: Rc<dyn Fn(f32) -> f32>,
pub max_fps: Option<f32>,
}Expand description
An animation that can be applied to an element.
Fields§
§duration: DurationThe amount of time for which this animation should run. A zero
duration completes immediately after the delay, including for
AnimationRepeat::Forever.
delay: DurationThe amount of time to wait before the animation starts. The delay applies once, when the animation begins; it is not repeated between passes of a repeating animation.
repeat: AnimationRepeatWhether and how this animation repeats when a pass finishes
easing: Rc<dyn Fn(f32) -> f32>A function that maps normalized time to an animated value. The result may exceed 0..1 for easing functions that overshoot.
max_fps: Option<f32>The maximum number of times per second this animation re-renders.
When None, the animation re-renders on every frame.
Implementations§
Source§impl Animation
impl Animation
Sourcepub fn new(duration: Duration) -> Animation
pub fn new(duration: Duration) -> Animation
Create a new animation with the given duration. By default the animation will only run once and will use a linear easing function.
Sourcepub fn repeat_n(self, times: u32) -> Animation
pub fn repeat_n(self, times: u32) -> Animation
Set the animation to run the given number of passes in total, then hold its final value. Zero is treated as one pass.
Sourcepub fn with_repeat(self, repeat: AnimationRepeat) -> Animation
pub fn with_repeat(self, repeat: AnimationRepeat) -> Animation
Set how the animation repeats when a pass finishes.
Sourcepub fn with_delay(self, delay: Duration) -> Animation
pub fn with_delay(self, delay: Duration) -> Animation
Wait for the given duration before the animation starts. While the
delay elapses the animation holds its initial value (easing(0)) and
no animation frames are requested. In an animation chain (see
AnimationExt::with_animations) the delay of each animation counts
from the moment that animation begins.
Sourcepub fn with_easing(self, easing: impl Fn(f32) -> f32 + 'static) -> Animation
pub fn with_easing(self, easing: impl Fn(f32) -> f32 + 'static) -> Animation
Sets the easing function used to map normalized time to an animated value.
The output is not clamped, allowing physical easing functions such as springs to overshoot.
Sourcepub fn with_max_fps(self, max_fps: f32) -> Animation
pub fn with_max_fps(self, max_fps: f32) -> Animation
Limit how often this animation re-renders. Instead of re-rendering on
every frame, the animation schedules its next render 1 / max_fps
seconds after the current one. Values that are not finite and positive
are ignored.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Animation
impl !Send for Animation
impl !Sync for Animation
impl !UnwindSafe for Animation
impl Freeze for Animation
impl Unpin for Animation
impl UnsafeUnpin for Animation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more