Skip to main content

Animation

Struct Animation 

Source
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: Duration

The amount of time for which this animation should run. A zero duration completes immediately after the delay, including for AnimationRepeat::Forever.

§delay: Duration

The 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: AnimationRepeat

Whether 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

Source

pub fn new(duration: Duration) -> Self

Create a new animation with the given duration. By default the animation will only run once and will use a linear easing function.

Source

pub fn repeat(self) -> Self

Set the animation to loop forever when it finishes.

Source

pub fn repeat_n(self, times: u32) -> Self

Set the animation to run the given number of passes in total, then hold its final value. Zero is treated as one pass.

Source

pub fn with_repeat(self, repeat: AnimationRepeat) -> Self

Set how the animation repeats when a pass finishes.

Source

pub fn with_delay(self, delay: Duration) -> Self

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.

Source

pub fn with_easing(self, easing: impl Fn(f32) -> f32 + 'static) -> Self

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.

Source

pub fn with_max_fps(self, max_fps: f32) -> Self

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§

Source§

impl Clone for Animation

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more