37 lines
1 KiB
Rust
37 lines
1 KiB
Rust
use std::time::Duration;
|
|
|
|
#[cfg(not(feature = "wasm32_web_time"))]
|
|
pub use std::time::Instant;
|
|
|
|
/// WASM (browser) specific instant type.
|
|
///
|
|
/// This type is only available when the `wasm32_web_time` feature is enabled. In that
|
|
/// case this is an alias for [`web_time::Instant`].
|
|
#[cfg(feature = "wasm32_web_time")]
|
|
pub use web_time::Instant;
|
|
|
|
/// Checks if a deadline was exeeded.
|
|
pub fn deadline_exceeded(deadline: Option<Instant>) -> bool {
|
|
#[allow(unreachable_code)]
|
|
match deadline {
|
|
Some(deadline) => {
|
|
#[cfg(all(target_arch = "wasm32", not(feature = "wasm32_web_time")))]
|
|
{
|
|
return false;
|
|
}
|
|
Instant::now() > deadline
|
|
}
|
|
None => false,
|
|
}
|
|
}
|
|
|
|
/// Converst a duration into a deadline. This can be a noop on wasm
|
|
#[allow(unused)]
|
|
pub fn duration_to_deadline(add: Duration) -> Option<Instant> {
|
|
#[allow(unreachable_code)]
|
|
#[cfg(all(target_arch = "wasm32", not(feature = "wasm32_web_time")))]
|
|
{
|
|
return None;
|
|
}
|
|
Instant::now().checked_add(add)
|
|
}
|