API Surface¶
bijux-gnss-nav publishes one deliberate downstream surface:
bijux_gnss_nav::api. A symbol belongs there only when an external crate can
use it without depending on nav's internal file layout.
Export Decision Flow¶
flowchart TD
symbol["candidate symbol"]
durable{"durable scientific role?"}
multi{"needed by external<br/>or cross-family caller?"}
stable{"documented contract<br/>and proof exists?"}
api["export through<br/>bijux_gnss_nav::api"]
internal["keep inside owning module"]
symbol --> durable
durable -- no --> internal
durable -- yes --> multi
multi -- no --> internal
multi -- yes --> stable
stable -- no --> internal
stable -- yes --> api
Public Families¶
| family | exported role | keep internal |
|---|---|---|
| artifacts | versioned wrappers such as GPS ephemeris and PPP solution epochs | storage paths and report routing |
| corrections | atmosphere, bias, ionosphere-free, geometry-free, narrow-lane, phase-windup, and residual diagnostics | one-parser correction scratch state |
| estimation | EKF primitives, position runtime, integrity checks, RAIM, PPP, RTK, trajectory reports, solution claims | solver-internal mutation helpers |
| formats and products | broadcast navigation decoders, RINEX, SP3, CLK, ANTEX, and bias SINEX readers | parser-local bit cursors and intermediate fields |
| orbits | ephemeris and satellite-state helpers used by positioning | constellation-private decode staging |
| models and time | antenna, atmosphere, tide, NeQuick, time-system, rollover, and civil-time helpers | generic utilities not tied to navigation |
| support math | small matrix and geodesy helpers needed by downstream consumers | private numerical scaffolding |
| engine seam | NavEngine and runtime-facing navigation traits |
crate-internal orchestration details |
Export Rules¶
- Export by durable scientific role, not by source-file convenience.
- Keep parser-local helpers, solver-internal state mutation, and narrow caller
shortcuts out of
api.rs. - Add or remove exports with docs and tests that prove the external contract.
- Preserve compatibility unless the repository intentionally changes the public contract and documents the migration path.
- Keep source modules as the owner of behavior;
api.rsis the curated doorway, not the implementation owner.
First Proof Check¶
Inspect crates/bijux-gnss-nav/src/api.rs,
crates/bijux-gnss-nav/API.md,
crates/bijux-gnss-nav/docs/PUBLIC_API.md, and the owning module docs for any
newly exported family before changing the public surface.