veryl-std 0.13.0

A modern hardware description language
Documentation
use merkle_hash::{Algorithm, Encodable, MerkleTree};
use std::env;
use std::fs;
use std::path::Path;

fn main() {
    let tree = MerkleTree::builder("./veryl/src")
        .algorithm(Algorithm::Blake3)
        .hash_names(true)
        .build()
        .unwrap();
    println!(
        "cargo:warning=std hash: {}",
        tree.root.item.hash.to_hex_string()
    );

    let out_dir = env::var_os("OUT_DIR").unwrap();
    let dest_path = Path::new(&out_dir).join("std_hash.rs");
    fs::write(
        &dest_path,
        format!(
            "const STD_HASH: &str = \"{}\";",
            tree.root.item.hash.to_hex_string(),
        ),
    )
    .unwrap();
    println!("cargo::rerun-if-changed=./veryl/src");
}