Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions specs/port/trios-railway/crates/trios-igla-race/src/race.t27
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// trios-igla-race race coordinator — the stateless unit constructor.
// Port of gHashTag/trios-railway:crates/trios-igla-race/src/race.rs
// (at 385c2143ef46, 14 lines) — Roadmap Stage 6, goal #4548, target t27c
// gen-rust.
//
// The original is the race coordinator's zero-sized unit: a struct with
// no fields, `new` building it, and `Default` delegating to `new`. The
// two decisions the file carries are its statelessness — the coordinator
// holds no run state of its own, the trials live in Neon — and the
// delegation: the default value IS the constructed one. Both are ported
// as pure functions and tested, the same shape the ASHA scheduler
// (#9659) and config sampler (#9664) ports use for their own units: the
// constructor builds the unit, the default calls the constructor (the
// delegation is this port's body), and the field-count pin asserts the
// zero-field design against a regression that would grow hidden state
// onto the coordinator. No transport exists in this port (issue #9668,
// "Port the decision, not the plumbing").

module port::trios_igla_race_race;

// Original line 1: `pub struct RaceCoordinator;` — the zero-sized unit.
pub struct RaceCoordinator { }

// The coordinator's design decision, countable: it carries no state —
// no trial table, no lane book, no worker handles; the trials live in
// Neon. Anything grown onto this struct would be hidden state.
pub fn coordinator_field_count() -> usize {
return 0;
}

// Original lines 3-8: `impl RaceCoordinator { pub fn new() -> Self }` —
// the constructor builds the unit.
pub fn RaceCoordinator_new() -> RaceCoordinator {
return RaceCoordinator { };
}

// Original lines 10-14: `impl Default for RaceCoordinator { fn
// default() -> Self { Self::new() } }` — the default value delegates to
// the constructor: the delegation is this port's body.
pub fn RaceCoordinator_default() -> RaceCoordinator {
return RaceCoordinator_new();
}

// ---------------------------------------------------------------------------
// Tests: the unit's decisions asserted — construction, delegation, and
// the zero-field pin.
// ---------------------------------------------------------------------------

test new_builds_the_stateless_coordinator {
const c = RaceCoordinator_new();
assert(coordinator_field_count() == 0);
}

test default_delegates_to_the_constructor {
const d = RaceCoordinator_default();
assert(coordinator_field_count() == 0);
}
Loading