enderpearl 1.0.1

Async proxy for Minecraft and HTTP traffic with automated server wake-up.
Documentation
#[macro_export]
macro_rules! print_cli {
    ($($arg:tt)*) => {
        #[cfg(feature = "pretty-cli")]
        {
            println!("{}", format!($($arg)*));
        }
    };
}

#[macro_export]
macro_rules! info {
    ($($arg:tt)*) => {
        #[cfg(feature = "logging")]
        {
            tracing::info!($($arg)*);
        }
        #[cfg(all(not(feature = "logging"), feature = "pretty-cli"))]
        {
            use owo_colors::OwoColorize;
            println!(" {} {}", "".bright_green(), format!($($arg)*).bright_magenta());
        }
    };
}

#[macro_export]
macro_rules! error {
    ($($arg:tt)*) => {
        #[cfg(feature = "logging")]
        {
            tracing::error!($($arg)*);
        }
        #[cfg(all(not(feature = "logging"), feature = "pretty-cli"))]
        {
            use owo_colors::OwoColorize;
            eprintln!(" {} {}", "X".bright_red().bold(), format!($($arg)*).bright_red().bold());
        }
    };
}

#[macro_export]
macro_rules! fail_config {
    ($name:expr, $reason:expr) => {{
        #[cfg(feature = "pretty-cli")]
        {
            use owo_colors::OwoColorize;
            Err($crate::errors::EnderError::Config(
                format!("in upstream {}", $name.bold().bright_red()),
                $reason,
            ))
        }
        #[cfg(not(feature = "pretty-cli"))]
        {
            Err($crate::errors::EnderError::Config(
                format!("in upstream '{}'", $name),
                $reason,
            ))
        }
    }};
}