From 33d6c931f503fc3e3c1ca5f45e2a4823a13e084c Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sun, 14 Jun 2026 04:06:39 +0200 Subject: [PATCH] Working map gen --- crates/codegen/src/lib.rs | 2 +- crates/mist-api/src/transpiler.mist | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/crates/codegen/src/lib.rs b/crates/codegen/src/lib.rs index e3f1af9..0abb496 100644 --- a/crates/codegen/src/lib.rs +++ b/crates/codegen/src/lib.rs @@ -31,7 +31,7 @@ pub trait GetRust { pub struct RustCodegen { output: String, indent: usize, - mapping: HashSet<(RustMap, MistMap)>, + pub mapping: HashSet<(RustMap, MistMap)>, position: RustMap, } diff --git a/crates/mist-api/src/transpiler.mist b/crates/mist-api/src/transpiler.mist index ba66a5f..d25f276 100644 --- a/crates/mist-api/src/transpiler.mist +++ b/crates/mist-api/src/transpiler.mist @@ -238,13 +238,27 @@ fn transpile_file(path *PathBuf, source *str, mut output_file PathBuf, mod_decl let res = fs::write(&output_file, format!("{mod_decl}{output}")); + let output_file_map = output_file.with_extension("map.json"); + + let res_map = fs::write(&output_file_map, serde_json::to_string(&gc.mapping).unwrap()); + + if res_map.is_err() { + eprintln!( + "error: failed to write mapping output {}\n {}", + output_file_map.display(), + res.as_ref().unwrap_err(), + ); + } + if res.is_err() { eprintln!( "error: failed to write output {}\n {}", output_file.display(), - res.unwrap_err(), + res.as_ref().unwrap_err(), ); + } + if res_map.is_err() || res.is_err() { process::exit(1); } }