Skip to main content

Crate phoxal_api

Crate phoxal_api 

Source
Expand description

Versioned robot-domain payloads and their semantic endpoints.

Payload structs, enums, implementations, and tests are ordinary Rust items in version-first modules. A sibling phoxal_api_fragment! declares only that module’s endpoints. Payloads own serde shape, construction invariants, and domain behavior; they do not know their topic or delivery policy. phoxal_api_tree! materializes deterministic descriptors and typed topic builders, then re-exports the authored payloads through each revision.

Normal robot participants use the train-selected latest facade (reexported as phoxal::api). This pre-v1 train currently has one maintained concrete revision, v0_1. Every materialized revision is complete and independent at runtime: inheritance exists only in macro authoring.

Endpoint semantics are fixed by the declaration: State, Sample, Event, Stream, Setpoint, or bounded query. Source identity, robot/capture time, ordered positions, loss, gaps, and terminal evidence remain bus metadata and never become generated fields in a domain payload.

This crate contains robot contracts only. Runtime/simulation infrastructure and supervisor process protocols have separate owners.

Modules§

latest
Concrete API revision v0.1.
v0_1
Concrete API revision v0.1.

Macros§

phoxal_api_fragment
Declare the semantic endpoints for one version-first Robot API module.
phoxal_api_fragment_group
Relay child fragment registration without contributing a semantic path.
phoxal_api_tree
Materialize declared Robot API versions from registered endpoint fragments.

Structs§

UnsupportedRobotApi
An open Robot API version that this generated catalogue does not implement.

Enums§

RobotApi
One exact Robot API revision implemented by this crate.