asm_tl 0.2.0

2x-3x faster than rustedbytes-tl, thanks to Assembly
Documentation
fn main() {
    let arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default();
    let os = std::env::var("CARGO_CFG_TARGET_OS").unwrap_or_default();
    let env = std::env::var("CARGO_CFG_TARGET_ENV").unwrap_or_default();

    if arch == "x86_64" && os == "linux" {
        cc::Build::new()
            .file("src/asm/x86_64/html_core.S")
            .compile("rbtl_html_core");
        println!("cargo:rerun-if-changed=src/asm/x86_64/html_core.S");
    } else if arch == "aarch64" && os == "linux" {
        cc::Build::new()
            .file("src/asm/aarch64/html_core.S")
            .compile("rbtl_html_core_aarch64");
        println!("cargo:rerun-if-changed=src/asm/aarch64/html_core.S");
    } else if arch == "riscv64" && os == "linux" {
        cc::Build::new()
            .file("src/asm/riscv64/html_core.S")
            .compile("rbtl_html_core_riscv64");
        println!("cargo:rerun-if-changed=src/asm/riscv64/html_core.S");
    } else if arch == "x86_64" && os == "windows" && env == "msvc" {
        cc::Build::new()
            .file("src/asm/x86_64/html_core_msvc.asm")
            .compile("rbtl_html_core_msvc");
        println!("cargo:rerun-if-changed=src/asm/x86_64/html_core_msvc.asm");
    }
}