Skip to content
Snippets Groups Projects
lib.rs 1.02 KiB
Newer Older
Louis's avatar
Louis committed
//! # Web Instant
//! 
//! Provides `Spot`, a version of `Instant` that works both in environments that support `Instant` and `wasm` family targets. On desktop, the internal representation uses `std::time::Instant`. On the web, the internal representation is an `f64`,
//! and uses `js_sys::Date` methods to cover functinality where required
//! 
//! All the methods on `Instant` are implemented for `Spot`, so you can just replace uses of `std::time::Instant` with `web_instant::Spot`
//! 
//! ## Install
//! 
//! `cargo add web_instant`
//! 
//! ## Usage
//! 
//! ```rust
//! use web_instant::Spot;
//! use std::time::Duration;
//! 
//! fn my_cross_platform_timer(last_time: Spot) {
//! 	let time_diff: Duration = Spot::now() - last_time;
//! 	println!("It has been {} seconds", time_diff.as_secs());
//! }
//! ```

Louis's avatar
Louis committed
#[cfg(not(target_family = "wasm"))]
Louis's avatar
Louis committed
mod instant_desktop;
Louis's avatar
Louis committed
#[cfg(target_family = "wasm")]
Louis's avatar
Louis committed
mod instant_web;

#[cfg(not(target_arch = "wasm32"))]
pub use instant_desktop::Spot;
#[cfg(target_arch = "wasm32")]
pub use instant_web::Spot;