//! GridCraft in the browser. //! //! Runs the same [`gridcraft_ui_egui::SheetApp`] as the desktop app through eframe's web runner //! (wgpu: WebGPU where available, WebGL2 otherwise). Build with `trunk build --release` from //! this directory (output in `dist/web`). //! //! Differences from the desktop app: no TCP control channel; Open uses the browser file picker //! (bytes arrive asynchronously through `Services::inbox`); Save downloads the file; dropped //! files are read asynchronously. //! //! URL query flags: `?webgl` forces WebGL2; `?sample=sales|budget|grades` opens a sample. #![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)] #[cfg(target_arch = "wasm32")] mod web; #[cfg(target_arch = "wasm32")] fn main() { web::start(); } #[cfg(not(target_arch = "wasm32"))] fn main() { eprintln!("gridcraft-web only runs in the browser: build it with `trunk build --release` in apps/gridcraft-web"); }