pub struct Animation {
pub duration: Duration,
pub oneshot: bool,
pub synced: bool,
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
oneshot: boolWhether to repeat this animation when it finishes
synced: boolWhether to derive the phase from a shared clock. See Animation::repeat_synced.
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) -> Self
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.
Sourcepub fn repeat_synced(self) -> Self
pub fn repeat_synced(self) -> Self
Set the animation to loop when it finishes, phase-locked to a clock shared by the whole App.
Sourcepub fn with_easing(self, easing: impl Fn(f32) -> f32 + 'static) -> Self
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.
Sourcepub fn with_max_fps(self, max_fps: f32) -> Self
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§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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