pub struct MotionRuntime { /* private fields */ }Expand description
Stores animations and advances their active values.
§Examples
use aura_anim_core::{MotionRuntime, timing::Timing};
use std::time::Duration;
let mut runtime = MotionRuntime::new();
let opacity = runtime.motion_with(0.0_f32, Timing::new(100.0));
assert!(opacity.transition_to(1.0, &mut runtime));
runtime.tick(Duration::from_millis(50));
assert_eq!(opacity.value(&runtime), 0.5);
assert!(opacity.is_active(&runtime));Implementations§
Source§impl MotionRuntime
impl MotionRuntime
Sourcepub fn new() -> MotionRuntime
pub fn new() -> MotionRuntime
Creates an empty motion runtime.
Sourcepub fn motion<T>(&mut self, initial: T) -> Motion<T>where
T: Animatable,
pub fn motion<T>(&mut self, initial: T) -> Motion<T>where
T: Animatable,
Inserts an idle motion with the default transition timing.
Sourcepub fn motion_with<T>(&mut self, initial: T, timing: Timing) -> Motion<T>where
T: Animatable,
pub fn motion_with<T>(&mut self, initial: T, timing: Timing) -> Motion<T>where
T: Animatable,
Inserts an idle motion with the provided transition timing.
Sourcepub fn insert<T>(
&mut self,
animation: impl Animation<T>,
transition: Timing,
) -> Motion<T>where
T: Animatable,
pub fn insert<T>(
&mut self,
animation: impl Animation<T>,
transition: Timing,
) -> Motion<T>where
T: Animatable,
Inserts an animation that remains stored after it settles.
Sourcepub fn play_once<T>(&mut self, animation: impl Animation<T>) -> Motion<T>where
T: Animatable,
pub fn play_once<T>(&mut self, animation: impl Animation<T>) -> Motion<T>where
T: Animatable,
Inserts an animation that is removed after it settles.
Sourcepub fn insert_with_policy<T>(
&mut self,
animation: impl Animation<T>,
transition: Timing,
retain_policy: RetainPolicy,
) -> Motion<T>where
T: Animatable,
pub fn insert_with_policy<T>(
&mut self,
animation: impl Animation<T>,
transition: Timing,
retain_policy: RetainPolicy,
) -> Motion<T>where
T: Animatable,
Inserts an animation with transition timing and a retention policy.
Sourcepub fn tick_at(&mut self, now: Instant)
pub fn tick_at(&mut self, now: Instant)
Advances active animations using elapsed wall-clock time.
The first call establishes the clock origin and advances by zero.
Sourcepub fn active_count(&self) -> usize
pub fn active_count(&self) -> usize
Returns the number of animations currently marked active.
Sourcepub fn has_active(&self) -> bool
pub fn has_active(&self) -> bool
Returns whether at least one animation is active.
Sourcepub fn motion_count(&self) -> usize
pub fn motion_count(&self) -> usize
Returns the number of stored animations.
Sourcepub fn slot_capacity(&self) -> usize
pub fn slot_capacity(&self) -> usize
Returns the allocated capacity of the runtime slot storage.
Sourcepub fn shrink_to_fit(&mut self)
pub fn shrink_to_fit(&mut self)
Releases unused slot and queue capacity.
Sourcepub fn value<T>(&self, motion: Motion<T>) -> Option<&T>where
T: Animatable,
pub fn value<T>(&self, motion: Motion<T>) -> Option<&T>where
T: Animatable,
Returns the current value for a valid motion handle.
Sourcepub fn state<T>(&self, motion: Motion<T>) -> Option<AnimationState>where
T: Animatable,
pub fn state<T>(&self, motion: Motion<T>) -> Option<AnimationState>where
T: Animatable,
Returns the state for a valid motion handle.
Sourcepub fn is_active<T>(&self, motion: Motion<T>) -> boolwhere
T: Animatable,
pub fn is_active<T>(&self, motion: Motion<T>) -> boolwhere
T: Animatable,
Returns whether the referenced motion is active.
Sourcepub fn transition_to<T>(&mut self, motion: Motion<T>, target: T) -> boolwhere
T: Animatable,
pub fn transition_to<T>(&mut self, motion: Motion<T>, target: T) -> boolwhere
T: Animatable,
Transitions a valid motion toward target.
Returns false when the handle is no longer valid.
Sourcepub fn play<T>(
&mut self,
motion: Motion<T>,
animation: impl Animation<T>,
) -> boolwhere
T: Animatable,
pub fn play<T>(
&mut self,
motion: Motion<T>,
animation: impl Animation<T>,
) -> boolwhere
T: Animatable,
Replaces the animation associated with a valid motion.
Returns false when the handle is no longer valid.
Sourcepub fn command<T>(
&mut self,
motion: Motion<T>,
command: AnimationCommand,
) -> boolwhere
T: Animatable,
pub fn command<T>(
&mut self,
motion: Motion<T>,
command: AnimationCommand,
) -> boolwhere
T: Animatable,
Applies a command to a valid motion.
Returns false when the handle is no longer valid.
Sourcepub fn remove<T>(&mut self, motion: Motion<T>) -> boolwhere
T: Animatable,
pub fn remove<T>(&mut self, motion: Motion<T>) -> boolwhere
T: Animatable,
Removes the animation referenced by motion.
Returns false when the handle is no longer valid.
Trait Implementations§
Source§impl Default for MotionRuntime
impl Default for MotionRuntime
Source§fn default() -> MotionRuntime
fn default() -> MotionRuntime
Auto Trait Implementations§
impl !RefUnwindSafe for MotionRuntime
impl !Send for MotionRuntime
impl !Sync for MotionRuntime
impl !UnwindSafe for MotionRuntime
impl Freeze for MotionRuntime
impl Unpin for MotionRuntime
impl UnsafeUnpin for MotionRuntime
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> 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<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
Source§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.