pub struct MotionSequence<K> { /* private fields */ }Expand description
A deterministic sequence of scalar motion steps.
The sequence owns relative timing and frame-demand aggregation, but it does not schedule frames, mutate render state, or know about GPUI elements. Adapters sample it with elapsed time and map the returned values into their own presentation state.
Implementations§
Source§impl<K> MotionSequence<K>
impl<K> MotionSequence<K>
Sourcepub fn steps(&self) -> &[MotionSequenceStep<K>]
pub fn steps(&self) -> &[MotionSequenceStep<K>]
Returns the steps in insertion order.
Sourcepub fn insert_at(
&mut self,
key: K,
model: MotionModel,
start_at: Duration,
) -> &mut Self
pub fn insert_at( &mut self, key: K, model: MotionModel, start_at: Duration, ) -> &mut Self
Inserts a step at an absolute sequence elapsed time.
Sourcepub fn append(&mut self, key: K, model: MotionModel) -> &mut Self
pub fn append(&mut self, key: K, model: MotionModel) -> &mut Self
Appends a step after the current sequence duration hint.
Sourcepub fn insert_with_previous(&mut self, key: K, model: MotionModel) -> &mut Self
pub fn insert_with_previous(&mut self, key: K, model: MotionModel) -> &mut Self
Inserts a step at the previous step’s start time.
Sourcepub fn insert_after_previous(
&mut self,
key: K,
model: MotionModel,
delay: Duration,
) -> &mut Self
pub fn insert_after_previous( &mut self, key: K, model: MotionModel, delay: Duration, ) -> &mut Self
Inserts a step after the previous step’s end hint plus delay.
Sourcepub fn insert_staggered(
&mut self,
keys: impl IntoIterator<Item = K>,
model: MotionModel,
start_at: Duration,
stagger: Duration,
) -> &mut Self
pub fn insert_staggered( &mut self, keys: impl IntoIterator<Item = K>, model: MotionModel, start_at: Duration, stagger: Duration, ) -> &mut Self
Inserts many steps with a fixed stagger from a start time.
Sourcepub fn duration_hint(&self) -> Duration
pub fn duration_hint(&self) -> Duration
Returns the sequence duration hint from the latest step end hint.
Source§impl<K: Clone> MotionSequence<K>
impl<K: Clone> MotionSequence<K>
Sourcepub fn sample_at(&self, elapsed: Duration) -> MotionSequenceSample<K>
pub fn sample_at(&self, elapsed: Duration) -> MotionSequenceSample<K>
Samples all steps at sequence elapsed time.
Trait Implementations§
Source§impl<K: Clone> Clone for MotionSequence<K>
impl<K: Clone> Clone for MotionSequence<K>
Source§impl<K: Debug> Debug for MotionSequence<K>
impl<K: Debug> Debug for MotionSequence<K>
Source§impl<K> Default for MotionSequence<K>
impl<K> Default for MotionSequence<K>
Source§impl<K: PartialEq> PartialEq for MotionSequence<K>
impl<K: PartialEq> PartialEq for MotionSequence<K>
impl<K: PartialEq> StructuralPartialEq for MotionSequence<K>
Auto Trait Implementations§
impl<K> Freeze for MotionSequence<K>
impl<K> RefUnwindSafe for MotionSequence<K>
impl<K> Send for MotionSequence<K>
impl<K> Sync for MotionSequence<K>
impl<K> Unpin for MotionSequence<K>
impl<K> UnsafeUnpin for MotionSequence<K>
impl<K> UnwindSafe for MotionSequence<K>
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
Mutably borrows from an owned value. Read more