#[cfg(feature = "crc")]
pub mod crc;
#[cfg(feature = "credentials")]
mod credentials;
#[cfg(feature = "key-store")]
pub mod file_store;
pub mod interner;
#[cfg(feature = "key-rng")]
pub mod key_rng;
pub mod math;
#[cfg(feature = "merkle")]
pub mod merkle;
#[cfg(feature = "otp")]
pub mod otp;
#[cfg(feature = "spawn")]
#[cfg_attr(not(target_family = "wasm"), path = "spawn/tokio.rs")]
#[cfg_attr(target_family = "wasm", path = "spawn/wasm.rs")]
mod spawn;
#[cfg(feature = "tagged-signing")]
pub mod tagged_signing;
#[cfg(feature = "time")]
pub mod time;

#[cfg(feature = "futures")]
pub mod stream;

mod sensitive;
mod waker;

#[cfg(feature = "credentials")]
pub use self::credentials::Credentials;
#[cfg(feature = "spawn")]
pub use self::spawn::{spawn, spawn_local};
pub use self::{sensitive::Sensitive, waker::WakerExt};

/// The version of the Cargo workspace package, with a `+dirty` build-metadata
/// suffix appended when built from a Git work tree that has uncommitted changes
/// (see `build.rs`).
pub const CARGO_VERSION: &str = env!("NIMIQ_VERSION");
