sweecrypt 1.1.4

A simple and fun cipher (Rust)
use std::fs;
use indexmap::IndexMap;
use serde_json::Value;

fn main() {
    let json = include_str!("sweecryptdb.json");
    let map: IndexMap<String, Value> = serde_json::from_str(&json).unwrap();

    let mut reversed = IndexMap::new();
    for (k, v) in map.iter().rev() {
        reversed.insert(v.clone(), k.clone());
    }

    let mut out = String::from("");
    out.push_str("fn prebuilt_maps() -> (IndexMap<&'static str, &'static str>, IndexMap<&'static str, &'static str>) {\n");
    
    // normal map
    out.push_str("    let normal = IndexMap::from([\n");
    for (k, v) in &map {
        let key = serde_json::to_string(k).unwrap();
        let val = serde_json::to_string(v.as_str().unwrap()).unwrap();
        out.push_str(&format!("        ({}, {}),\n", key, val));
    }
    out.push_str("    ]);\n");

    // reversed map
    out.push_str("    let reversed = IndexMap::from([\n");
    for (k, v) in &reversed {
        let key = serde_json::to_string(k.as_str().unwrap()).unwrap();
        let val = serde_json::to_string(v).unwrap();
        out.push_str(&format!("        ({}, {}),\n", key, val));
    }
    out.push_str("    ]);\n");

    out.push_str("    (normal, reversed)\n}\n");
    
    fs::write("src/generated.rs", out).unwrap();
    println!("cargo:rerun-if-changed=sweecryptdb.json");
}