pub struct FrameTime(/* private fields */);Expand description
The animation vocabulary: the shell-fed frame clock (FrameTime)
plus the pure easing/interpolation/spring math a widget or app advances it
through, flat-re-exported from frust-core::anim. Time enters from the
shell during paint (PaintCtx::frame_time); nothing here reads a clock.
A point in time supplied by the shell, in monotonic nanoseconds.
The origin is arbitrary and shell-specific, so widgets may only difference
two FrameTimes (via FrameTime::saturating_sub), never interpret one
absolutely or compare times from different shells.
Implementations§
Source§impl FrameTime
impl FrameTime
Sourcepub const ZERO: FrameTime
pub const ZERO: FrameTime
The zero instant, also the “no time available” fallback for legacy/test paint paths.
Sourcepub const fn from_nanos(nanos: u64) -> FrameTime
pub const fn from_nanos(nanos: u64) -> FrameTime
Build a FrameTime from a raw monotonic-nanosecond count.
Sourcepub fn as_secs_f64(self) -> f64
pub fn as_secs_f64(self) -> f64
This instant as fractional seconds from the (arbitrary) origin.
Sourcepub fn saturating_sub(self, earlier: FrameTime) -> Duration
pub fn saturating_sub(self, earlier: FrameTime) -> Duration
The non-negative Duration elapsed from earlier to self, saturating at
zero for a non-monotonic clock (the basis of AnimationController::advance’s
never-negative delta).
Trait Implementations§
impl Copy for FrameTime
impl Eq for FrameTime
Source§impl Ord for FrameTime
impl Ord for FrameTime
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for FrameTime
impl PartialOrd for FrameTime
impl StructuralPartialEq for FrameTime
Auto Trait Implementations§
impl Freeze for FrameTime
impl RefUnwindSafe for FrameTime
impl Send for FrameTime
impl Sync for FrameTime
impl Unpin for FrameTime
impl UnsafeUnpin for FrameTime
impl UnwindSafe for FrameTime
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<T> Brush for T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.