pixfetch 1.0.0

Another fetch program with pixelized images written in Rust
macro_rules! distros {
    ($os:ident; $($tt:tt)*) => {
        match $os {
            Some(distro) => {
                distros!(@IF distro; $($tt)*)
            }
            None => {
                distros!(@IF distro;)
            }
        }
    };
    (@IF $distro:ident; $op:tt $name:literal, $col:literal, $image:literal; $($tt:tt)*) => {
        if distros!(@CONDITION $distro; $op $name) {
            ($col, &include_bytes!(concat!("../logos/", $image, ".png"))[..])
        } else {
            distros!(@IF $distro; $($tt)*)
        }
    };
    (@IF $distro:ident;) => {
        (3, &include_bytes!("../logos/tux.png")[..])
    };
    (@CONDITION $distro:ident; = $name:literal) => {
        $distro == $name
    };
    (@CONDITION $distro:ident; ~ $name:literal) => {
        $distro.contains($name)
    };
}

pub fn get_distro_image(os: Option<String>) -> (u8, &'static [u8]) {
    distros!(
        os;
        ="Arch Linux", 4, "arch";
        ~"Android", 2, "android";
        ~"Debian", 1, "debian";
        ~"Ubuntu", 3, "ubuntu";
        ~"Fedora Linux", 4, "fedora";
        ~"Alpine Linux", 4, "alpine";
        ~"EndeavourOS", 4, "endeavour";
    )
}