//! # 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
//! functionality 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());
//! }
//! ```

#[cfg(not(target_family = "wasm"))]
mod instant_desktop;
#[cfg(target_family = "wasm")]
mod instant_web;

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