#![cfg_attr(not(doctest), doc = include_str!("../README.md"))]
#![forbid(unsafe_code)]
#![deny(missing_docs)]
pub mod bind;
pub use bind::{Bind, State, StateWithData};
#[cfg(feature = "egui")]
pub mod egui;
#[cfg(feature = "egui")]
pub use egui::{EguiAsyncPlugin, UiExt};
#[macro_export]
macro_rules! run_once {
{ $($tokens:tt)* } => {{
static INIT_ONCE_BLOCK_: std::sync::Once = std::sync::Once::new();
let mut init_once_block_executed = false;
INIT_ONCE_BLOCK_.call_once(|| {
$($tokens)*
init_once_block_executed = true;
});
init_once_block_executed
}};
}