diff --git a/src/time.rs b/src/time.rs index f32eeb17..6400dc7f 100644 --- a/src/time.rs +++ b/src/time.rs @@ -11,3 +11,17 @@ pub use crate::core::time::*; ))) )] pub use iced_futures::backend::default::time::*; + +use crate::Task; + +/// Returns a [`Task`] that produces the current [`Instant`] +/// by calling [`Instant::now`]. +/// +/// While you can call [`Instant::now`] directly in your application, +/// this is an "impure" operation (i.e. it's not referentially transparent). +/// +/// You may care about purity if you want to leverage the `time-travel` +/// feature properly. +pub fn now() -> Task { + Task::future(async { Instant::now() }) +}