Struct i_slint_core::timers::Timer

source ·
pub struct Timer { /* private fields */ }
Expand description

Timer is a handle to the timer system that allows triggering a callback to be called after a specified period of time.

Use Timer::start() to create a timer that can repeat at frequent interval, or Timer::single_shot if you just want to call a function with a delay and do not need to be able to stop it.

The timer will automatically stop when dropped. You must keep the Timer object around for as long as you want the timer to keep firing.

The timer can only be used in the thread that runs the Slint event loop. They will not fire if used in another thread.

§Example

use slint::{Timer, TimerMode};
let timer = Timer::default();
timer.start(TimerMode::Repeated, std::time::Duration::from_millis(200), move || {
   println!("This will be printed every 200ms.");
});
// ... more initialization ...
slint::run_event_loop();

Implementations§

source§

impl Timer

source

pub fn start( &self, mode: TimerMode, interval: Duration, callback: impl FnMut() + 'static )

Starts the timer with the given mode and interval, in order for the callback to called when the timer fires. If the timer has been started previously and not fired yet, then it will be restarted.

Arguments:

  • mode: The timer mode to apply, i.e. whether to repeatedly fire the timer or just once.
  • interval: The duration from now until when the timer should fire. And the period of that timer for Repeated timers.
  • callback: The function to call when the time has been reached or exceeded.
source

pub fn single_shot(duration: Duration, callback: impl FnOnce() + 'static)

Starts the timer with the duration, in order for the callback to called when the timer fires. It is fired only once and then deleted.

Arguments:

  • duration: The duration from now until when the timer should fire.
  • callback: The function to call when the time has been reached or exceeded.
§Example
use slint::Timer;
Timer::single_shot(std::time::Duration::from_millis(200), move || {
   println!("This will be printed after 200ms.");
});
source

pub fn stop(&self)

Stops the previously started timer. Does nothing if the timer has never been started.

source

pub fn restart(&self)

Restarts the timer. If the timer was previously started by calling Self::start() with a duration and callback, then the time when the callback will be next invoked is re-calculated to be in the specified duration relative to when this function is called.

Does nothing if the timer was never started.

source

pub fn running(&self) -> bool

Returns true if the timer is running; false otherwise.

source

pub fn set_interval(&self, interval: Duration)

Change the duration of timer. If the timer was previously started by calling Self::start() with a duration and callback, then the time when the callback will be next invoked is re-calculated to be in the specified duration relative to when this function is called.

Does nothing if the timer was never started.

Arguments:

  • interval: The duration from now until when the timer should fire. And the period of that timer for Repeated timers.

Trait Implementations§

source§

impl Default for Timer

source§

fn default() -> Timer

Returns the “default value” for a type. Read more
source§

impl Drop for Timer

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl !Freeze for Timer

§

impl !RefUnwindSafe for Timer

§

impl !Send for Timer

§

impl !Sync for Timer

§

impl Unpin for Timer

§

impl UnwindSafe for Timer

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.