hashmoji 0.1.0

Provides a hash functions that returns emojis.
Documentation
use std::env;
use std::fs::File;
use std::io::Write;
use std::path::PathBuf;
use std::str::FromStr;

fn main() {
    let mut path = PathBuf::from_str(&env::var("OUT_DIR").unwrap()).unwrap();
    path.push("generated.rs");

    let collection = hashmoji_generator::Collection::all();
    let filtered = hashmoji_generator::filter(&collection);
    write_emojis(&path, filtered);
}

fn write_emojis<'a>(path: &PathBuf, emojis: impl Iterator<Item = &'a str>) {
    let emojis = emojis.collect::<Vec<_>>();
    let count = emojis.len();

    let mut generated = File::create(path).unwrap();
    generated
        .write_all(format!("pub(crate) const EMOJIS: [&str; {count}] = [\n").as_bytes())
        .unwrap();

    for emoji in emojis {
        generated
            .write_all(format!("\"{}\",\n", emoji).as_bytes())
            .unwrap();
    }

    generated.write_all(b"];\n").unwrap();

    eprintln!("Wrote {count} emojis to {path:?}");
}