mirl 9.2.0

Miners Rust Lib - A massive collection of ever growing and changing functions, structs, and enums. Check the description for compatibility and toggleable features! (Most of the lib is controlled by flags/features so the lib can continue to be lightweight despite its size)
// fn main() {
//     let version = rustc_version::version_meta().unwrap();

//     if version.channel == rustc_version::Channel::Nightly {
//         println!("cargo:rustc-cfg=nightly");
//     }
// }
// fn main() {
//     let is_miri = std::env::var("MIRI").is_ok()
//         || std::env::var("CARGO_CFG_MIRI").is_ok();

//     if is_miri {
//         println!("cargo:rustc-cfg=miri");
//         println!("cargo:warning=Building under Miri");
//     }
// }
// fn main() {}
// use std::env;
#[rustfmt::skip]
fn print_nightly() {
    eprintln!("╔═══════════════════════════════════════════════════════════════╗");
    eprintln!("║                       NIGHTLY  REQUIRED                       ║");
    eprintln!("╠═══════════════════════════════════════════════════════════════╣");
    eprintln!("║ `Mirl` requires Rust nightly to compile.                      ║");
    eprintln!("║                                                               ║");
    eprintln!("║ To install and use nightly:                                   ║");
    eprintln!("║                                                               ║");
    eprintln!("║ 1. Install nightly toolchain:                                 ║");
    eprintln!("║    `rustup install nightly`                                   ║");
    eprintln!("║                                                               ║");
    eprintln!("║ 2. Use nightly for this project (recommended):                ║");
    eprintln!("║    `rustup override set nightly`                              ║");
    eprintln!("║                                                               ║");
    eprintln!("║ Or use nightly for a single build:                            ║");
    eprintln!("║    `cargo +nightly build`                                     ║");
    eprintln!("╚═══════════════════════════════════════════════════════════════╝");
}

fn main() {
    // Check if we're using the nightly compiler
    let is_nightly = version_check::is_feature_flaggable()
        .expect("Unable to infer rust metadata using `version_check` crate");

    if !is_nightly {
        print_nightly();

        // Exit with error code
        std::process::exit(1);
    }
        // #[cfg(target_os = "linux")]
        // detect_linux_visual_backend();

    println!("cargo:rerun-if-changed=build.rs");
}

pub fn detect_linux_visual_backend() {
    let wayland = std::env::var("WAYLAND_DISPLAY").is_ok();
    let x11 = std::env::var("DISPLAY").is_ok();

    if wayland {
        println!("cargo:rustc-cfg=is_wayland");
        println!("cargo:rustc-cfg=visuals_supported");
    } else if x11 {
        println!("cargo:rustc-cfg=is_x11");
        println!("cargo:rustc-cfg=visuals_supported");
    }

    // Re-run if these variables change
    println!("cargo:rerun-if-env-changed=WAYLAND_DISPLAY");
    println!("cargo:rerun-if-env-changed=DISPLAY");
}