mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-11-01 20:19:39 +00:00
* wasm first steps * parsing start * parsing continued * progress * progress * progress * progress * progress * progress * progress * progress * fixes * reorganize * change type * fix * progress * refactoring * progress * progress * progress * keep style info * progress * progress * remove (copy) in name * progress * merge methods into 1 * splice * progress * progress * progress * cleaning * progress * progress * progress * visibility * progress * progress * progress * progress * progress * fixes * progress * fix markers * fix * progress * progress * progress * progress * progress * progress * small fix * use engine info * fix popups * small fix * progress * progress * progress * clean tool * handle self closing elements * reduce data exchanges across boundary * copy on wasm side to avoid any data corruption * speed fix * routing * refactoring * reverse * reverse * crop * split * merge * progress * time tool * fix bounds for waypoints * reduce * fix reactivity * handle corrupt time data * export * progress * remove gpx js package * remove todo * update readme * cleaning * progress * fix link fields * remove unused fields * refactoring and tests * import and export of routes, ref #192 * per-chunk categories storage * cross-tab sync * outdated state * refactoring * reorder methods * refactoring * fix * improve flow * renaming * progress * progress * fix * progress * per file history * keep original flag * use history variant * fix * progress * file explorer * progress * fix * sticky folders * improved sticky folders * fix sortable * fix sortable * fix * fix tab size * no file delete on desktop * fix routing on other file * fix sorting * remember language * open links in browser * commit missing changes * avoid selecting on resize * clarify filename * explorer actions * fix folder styling * drop anywhere in folder * cleaning * fixes * remove focus-ring * full screen * small fix * consistent highlight color * improved preview * performance improvements * sparser data transfers * sparser data transfers * show popup once data is loaded * fix routing control size * fix * sparse desktop build * remove custom ign styles * use new endpoint for openhikingmap * strip native menu * reorder context menu items * route full support * route - track conversion * create route file action * route export, filter out anchors at high zoom level * clarify name handling * move hide & center to view * routes continued * update docs * fix power format, closes #378 * lint fixes * fix display of additional data with gaps, closes #361 * fix linting issues * fix import modules * fix multidrag * change base to resolve * fix type errors * fix layer typings * fix last type error * each keys * improve typings * deploy to cloudflare --------- Co-authored-by: vcoppe <vcoppe@hexaly.com>
33 lines
1.5 KiB
Rust
33 lines
1.5 KiB
Rust
//! Frontier between the SvelteKit frontend and the engine.
|
|
//!
|
|
//! Conventions, chosen to keep calls cheap:
|
|
//! - Coordinates and elevations cross as `Float64Array` (`&[f64]`): one memcpy into linear
|
|
//! memory, no per-point calls. `lng`/`lat`/`ele` arrays must have the same length.
|
|
//! - File bytes cross as `Uint8Array` (`&[u8]`), strings as `&str`.
|
|
//! - File ids cross as one flat `Uint8Array` of concatenated 16-byte UUIDs (no `Array<string>`).
|
|
//! - Rectangles cross as four numbers instead of an object.
|
|
//! - Ids read from the file tree are hyphenated UUID strings; the functions reading buffers take
|
|
//! them as such.
|
|
//! - The functions that edit the files or change the selection return an `Outcome`: whether they
|
|
//! changed anything, what changed (to update what the page keeps), and why nothing was done when
|
|
//! that is so (the command had nothing to do, the data is invalid, an argument is wrong).
|
|
//!
|
|
//! The functions are grouped by what they do: `commands` edit the files, `queries` read the state
|
|
//! of the engine, `selection` changes what is selected, and `persistence` keeps the files and the
|
|
//! settings in the browser. `session` holds the engine they all talk to, `convert` turns engine
|
|
//! types into JS objects and back, and `ts` declares the TypeScript types of those objects.
|
|
|
|
mod command;
|
|
mod convert;
|
|
mod idb;
|
|
mod ids;
|
|
mod persistence;
|
|
mod queries;
|
|
mod selection;
|
|
mod session;
|
|
mod ts;
|
|
mod types;
|
|
|
|
#[cfg(all(test, target_arch = "wasm32"))]
|
|
mod tests;
|