Path: blob/main/crates/wasi/src/p3/wit/deps/clocks/monotonic-clock.wit
1693 views
package wasi:[email protected]; /// WASI Monotonic Clock is a clock API intended to let users measure elapsed /// time. /// /// It is intended to be portable at least between Unix-family platforms and /// Windows. /// /// A monotonic clock is a clock which has an unspecified initial value, and /// successive reads of the clock will produce non-decreasing values. @since(version = 0.3.0-rc-2025-08-15) interface monotonic-clock { /// An instant in time, in nanoseconds. An instant is relative to an /// unspecified initial value, and can only be compared to instances from /// the same monotonic-clock. @since(version = 0.3.0-rc-2025-08-15) type instant = u64; /// A duration of time, in nanoseconds. @since(version = 0.3.0-rc-2025-08-15) type duration = u64; /// Read the current value of the clock. /// /// The clock is monotonic, therefore calling this function repeatedly will /// produce a sequence of non-decreasing values. @since(version = 0.3.0-rc-2025-08-15) now: func() -> instant; /// Query the resolution of the clock. Returns the duration of time /// corresponding to a clock tick. @since(version = 0.3.0-rc-2025-08-15) get-resolution: func() -> duration; /// Wait until the specified instant has occurred. @since(version = 0.3.0-rc-2025-08-15) wait-until: async func( when: instant, ); /// Wait for the specified duration has elapsed. @since(version = 0.3.0-rc-2025-08-15) wait-for: async func( how-long: duration, ); }