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) -> 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_synced(self) -> Animation
pub fn repeat_synced(self) -> Animation
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) -> 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
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