[][src]Struct riddle_time::TimeSystemHandle

pub struct TimeSystemHandle { /* fields omitted */ }

Implementations

impl TimeSystemHandle[src]

pub fn downgrade(this: &TimeSystemHandle) -> TimeSystemWeak[src]

Downgrade this handle to a weak handle

pub fn eq(a: &TimeSystemHandle, b: &TimeSystemHandle) -> bool[src]

Test whether two handles point to the same location in memory

Methods from Deref<Target = TimeSystem>

pub fn process_frame(&self)[src]

Update the time system state, marking the beginning of a the next frame.

The instant that this method is called is taken as the reference time for the frame that is about to be executed.

Timers will also be triggered during this function call if they are due to trigger.

Do not call this function directly if you are using this through the riddle crate.

Example

let frame_1 = time_system.frame_instant();

// A while later
let frame_n = time_system.frame_instant();

assert_eq!(true, frame_n - frame_1 > std::time::Duration::from_secs(0));

pub fn fps(&self) -> f32[src]

Get the current FPS as calculated based on previous frame durations.

pub fn delta_secs(&self) -> f32[src]

Get the current delta t as calculated based on previous frame durations.

pub fn frame_instant(&self) -> Instant[src]

Get the reference time for this frame. Captured during TimeSystem::process_frame.

pub fn register_timer<F>(&self, duration: Duration, callback: F) -> TimerHandle where
    F: FnOnce() + Send + 'static, 
[src]

Register a timer with a callback which will be fired when the time elpases.

The returned handle may be dropped without cancelling the timer.

Example

let val = Arc::new(AtomicBool::new(false));

time_system.register_timer(std::time::Duration::from_millis(200), {
    let val = val.clone();
    move || { val.store(true, Ordering::Relaxed); }
});

// A while later
assert_eq!(true, val.load(Ordering::Relaxed));

Trait Implementations

impl Clone for TimeSystemHandle[src]

impl Deref for TimeSystemHandle[src]

type Target = TimeSystem

The resulting type after dereferencing.

Auto Trait Implementations

impl RefUnwindSafe for TimeSystemHandle

impl Send for TimeSystemHandle

impl Sync for TimeSystemHandle

impl Unpin for TimeSystemHandle

impl UnwindSafe for TimeSystemHandle

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.