embystream 0.0.15

Another Emby streaming application (frontend/backend separation) written in Rust.
Documentation
#[macro_export]
macro_rules! config_log {
    ($level:expr, $domain:expr, $($arg:tt)+) => {
        let now = chrono::Local::now().format("%Y-%m-%d %H:%M:%S.%6f");
        let colored_now = format!("\x1b[2m{}\x1b[0m", now);

        let level_padded = format!("{:>5}", $level);
        let colored_level = match $level {
            "ERROR" => format!("\x1b[31m{}\x1b[0m", level_padded),
            "DEBUG" => format!("\x1b[33m{}\x1b[0m", level_padded),
            _ => format!("\x1b[32m{}\x1b[0m", level_padded),
        };

        let msg = format!($($arg)+);

        println!("{} {} [{}] {}", colored_now, colored_level, $domain, msg);
    };
}

#[macro_export]
macro_rules! config_info_log {
    ($domain:expr, $($arg:tt)+) => {
        $crate::config_log!("INFO", $domain, $($arg)+);
    };
}

#[macro_export]
macro_rules! config_error_log {
    ($domain:expr, $($arg:tt)+) => {
        $crate::config_log!("ERROR", $domain, $($arg)+);
    };
}

#[macro_export]
macro_rules! config_debug_log {
    ($domain:expr, $($arg:tt)+) => {
        $crate::config_log!("DEBUG", $domain, $($arg)+);
    };
}