geometry-Crate zu WASM baubar (Feature web, compute_joins_json); aus cad-tauri-Workspace ausgeschlossen

Erster Schritt der Rust-Kern-Migration: die Join-Geometrie wird per wasm-pack zu
WASM gebaut (build:geometry) und exportiert compute_joins_json (JSON rein/raus).
Damit kann das TS-Frontend kuenftig die EINE Rust-Implementierung aufrufen statt
des TS-Duplikats. Crate wie render2d/render3d aus dem Workspace excludet, bleibt
per Pfad-Dep fuer den nativen Host nutzbar. Verhalten unveraendert (noch nicht
verdrahtet). geometry cargo test 8/8, cad-tauri cargo check ok.
This commit is contained in:
2026-07-04 23:44:18 +02:00
parent 9520191bde
commit dec431579e
5 changed files with 45 additions and 7 deletions
+14
View File
@@ -9,6 +9,20 @@
use serde::{Deserialize, Serialize};
/// Browser-Fassade (Feature "web"): JSON rein/raus, damit das TS-Frontend die
/// EINE Rust-Join-Implementierung per wasm-pack aufrufen kann (Single Source of
/// Truth statt TS-Duplikat). `input_json` = serialisiertes `JoinInput`, Rueckgabe
/// = serialisiertes `Vec<WallCuts>`.
#[cfg(feature = "web")]
#[wasm_bindgen::prelude::wasm_bindgen]
pub fn compute_joins_json(input_json: &str) -> Result<String, wasm_bindgen::JsValue> {
console_error_panic_hook::set_once();
let input: JoinInput = serde_json::from_str(input_json)
.map_err(|e| wasm_bindgen::JsValue::from_str(&e.to_string()))?;
let out = compute_joins(input);
serde_json::to_string(&out).map_err(|e| wasm_bindgen::JsValue::from_str(&e.to_string()))
}
#[derive(Serialize, Deserialize, Clone, Copy)]
pub struct Vec2 {
pub x: f64,