Proc-macros for the phoxal framework.
Three macros make up the authoring surface:
- [
phoxal_api_tree!] — declares the dated API-version modules (phoxal::api::y2026_1, …), their version-local body types, theContractBody/ApiVersionimpls, and the api-local topic builders. - [
derive@Runtime] — reads a runtime struct's typed handle fields plus the#[phoxal(id = …, api = …, config = …)]attribute and emits the static metadata (RuntimeFields) the runner andemit-apisconsume. - [
macro@runtime] — the bare#[phoxal::runtime]attribute on the inherent impl; it reads#[setup]/#[step]/#[shutdown](and, in the query slice,#[server]/#[server_snapshot]/#[snapshot]) and emits the lifecycle dispatch (RuntimeBehavior).
Generated code references the framework through ::phoxal::…; the engine crate
makes that path resolve to itself with extern crate self as phoxal;.