// echo README.adoc | entr sh -c "podman run --rm -it --network none -v "${PWD}:/documents/" asciidoctor/docker-asciidoctor asciidoctor -r asciidoctor-mathematical -a mathematical-format=svg README.adoc; printf 'Done ($(date -Isecond))\n'"
// :toc:
:nofooter:
:!webfonts:
:source-highlighter: rouge
:rouge-style: molokai
:sectlinks:

= xpin

== File Structure

In order of dependency, the role of each of these directories in this repository is:

[cols="m,,"]
|===
|Directory |Contents |Description

|docs
|Asciidoctor documentation
|Design decisions and algorithm definition documentation

|spatial-coordinate-systems
|Rust Crate
|Convert among latitude/longitude (DD), degree-minute (DM), degree-minute-second (DMS), UTM, and Pluscodes

|wordlist
|Python/CSV
|Wordlist sources and generator code

|test-data
|C++/CSV
|Test data mapping random and hand-picked lat/lon transformed to CellIDs and xpin addresses.
Also contains source code linking to the C++ S2 library to ensure CellIDs are translated properly.

|words
|Rust Crate
|Crate to store the mapping of words and their associated numeric values.

|src
|Rust Crate
|Main crate containing the algorithm

|tests
|
|Integration tests

|xpin-wasm
|Rust Crate
|WASM bindings for xpin

|web-frontend
|Svelte/JavaScript
|Web-based frontend for ease of use

|build
|HTML web-fontend/HTML docs/WASM Binary
|Compile destination for web-frontend, xpin-wasm, and the docs documentation

|web
|Rust Crate
|Static server that contains an API as well as embedding all resources from the build directory

|===
