pub mod cast;
pub mod expand_states;
pub mod iterable;
pub mod ivec;
pub mod ready_chunks;
pub mod safemap;
pub mod safeset;
pub use iterable::Iterable;
pub use ivec::IVec;
#[macro_export]
macro_rules! action_info {
($thing:expr, $action:expr) => {
tracing::info!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m", $thing, $action)
};
($thing:expr, $action:expr, $($arg:expr),+) => {
tracing::info!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m \x1b[2m{}\x1b[0m", $thing, $action, format!("{}", format_args!($($arg),+)))
};
}
#[macro_export]
macro_rules! action_debug {
($thing:expr, $action:expr) => {
tracing::debug!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m", $thing, $action)
};
($thing:expr, $action:expr, $($arg:expr),+) => {
tracing::debug!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m \x1b[2m{}\x1b[0m", $thing, $action, format!("{}", format_args!($($arg),+)))
};
}
#[macro_export]
macro_rules! action_warn {
($thing:expr, $action:expr) => {
tracing::warn!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m", $thing, $action)
};
($thing:expr, $action:expr, $($arg:expr),+) => {
tracing::warn!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m \x1b[2m{}\x1b[0m", $thing, $action, format!("{}", format_args!($($arg),+)))
};
}
#[macro_export]
macro_rules! action_error {
($thing:expr, $action:expr) => {
tracing::error!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m", $thing, $action)
};
($thing:expr, $action:expr, $($arg:expr),+) => {
tracing::error!("\x1b[1;34m{}\x1b[0m → \x1b[32m{}\x1b[0m \x1b[2m{}\x1b[0m", $thing, $action, format!("{}", format_args!($($arg),+)))
};
}
#[macro_export]
macro_rules! notice_info {
($($arg:tt)*) => {
tracing::info!("\x1b[1;33m{}\x1b[0m", format!($($arg)*))
};
}