Skip to content

Entrypoints and Examples

The main entrypoint is the curated import surface itself: bijux_gnss_core::api. Core examples should show stable exchange records and validation seams, not full receiver, navigation, or command workflows.

Reader Route

flowchart TD
    reader["reader need"]
    import["import from api.rs"]
    record["construct or accept<br/>shared record"]
    validate["validate artifact<br/>or invariant"]
    owner["continue in owning<br/>higher crate"]

    reader --> import --> record
    record --> validate
    record --> owner

Example: Foundational Types

use bijux_gnss_core::api::{Constellation, GpsTime, SatId};

let sat = SatId { constellation: Constellation::Gps, prn: 7 };
let t = GpsTime { week: 2200, tow_s: 1000.0 };

Example: Artifact Validation

use bijux_gnss_core::api::{ArtifactValidate, ArtifactV1};

fn validate(artifact: &ArtifactV1) -> bool {
    artifact.validate().is_ok()
}

Example: Observation Contract Use

use bijux_gnss_core::api::ObsEpoch;

fn accept_epoch(_epoch: &ObsEpoch) {
    // Downstream crates consume the shared record shape without importing
    // private module paths.
}

Example Standards

example should show because
import from bijux_gnss_core::api private module paths are not the public contract
small records with obvious units core owns vocabulary, not workflows
validation traits and reports persisted meaning must be checkable
handoff to receiver, nav, signal, or infra behavior belongs outside core when it is not foundational

Avoid examples that run acquisition, solve navigation, inspect repository state, or render CLI output. Those examples belong in the owning package docs.

First Proof Check

Inspect crates/bijux-gnss-core/src/api.rs, crates/bijux-gnss-core/docs/PUBLIC_API.md, and crates/bijux-gnss-core/docs/CONTRACTS.md. Then inspect crates/bijux-gnss-core/tests/public_api_guardrail.rs and the most relevant artifact or timekeeping validation tests to confirm these examples still match real contract entrypoints.