Translate wire semantics parity tests
Some checks failed
Rust API gates / api-gates (push) Has been cancelled

This commit is contained in:
2026-08-08 14:50:08 +02:00
parent b73721de87
commit 4e5d79e647
32 changed files with 4316 additions and 3199 deletions

View File

@@ -59,8 +59,8 @@ The current workspace is a structural baseline, not a working client:
members with real fields/constants/enum values and standardized failing
bodies;
- all 1,289 discovered NUnit `[Test]`/`[TestCase]` cases have compiling Rust test
entries; 17 Types/Utilities and 78 StructuredData cases are semantically
translated and the other 1,194 intentionally panic with their source identity
entries; 145 cases are semantically translated, four benchmarks are
reviewed, and the other 1,140 intentionally panic with their source identity
and body hash;
- all nine sample/tool projects have compiling Rust binary targets;
- the 128 TestClient command source files are retained as a command inventory.
@@ -76,7 +76,7 @@ gate is complete; semantic test translation is underway.**
The avatar-facing slice preserves the C# agent, movement/camera, appearance and
outfit-policy, inventory/AIS/store, asset/cache, avatar, and animesh concepts.
Long-running mapped calls retain an explicit cross-platform cancellation token
and return the shared `NotImplemented { csharp_member }` error; events return a
and return the shared `Error::NotImplemented(NotImplemented { csharp_member })` error; events return a
typed subscription guard so callback lifetime is visible to Rust callers.
The world-facing slice preserves the C# object, parcel, terrain, grid,
@@ -277,7 +277,7 @@ Each mapped Rust item must actually compile and be callable:
untyped placeholder.
The body is the only part allowed to be fake. Fallible Rust APIs return a shared
typed `NotImplemented { csharp_member }` error. Infallible constructors,
typed `Error::NotImplemented(NotImplemented { csharp_member })` error. Infallible constructors,
accessors, operators and trait methods call a shared `unimplemented_api!`
placeholder that panics with the stable C# member ID. Constants and enum values
must have their real values. Never return plausible defaults such as `false`,
@@ -287,7 +287,7 @@ for the wrong reason.
The failure contract lives in `libremetaverse-types` and every API crate exposes
it as `crate::Error`:
- synchronous fallible members return `Err(NotImplemented::new(CSHARP_ID))`;
- synchronous fallible members return `Err(Error::NotImplemented(NotImplemented::new(CSHARP_ID)))`;
async members do the same when first polled and start no work first;
- a stream-producing operation returns the typed error before exposing a
stream; an intrinsically infallible stream factory uses `unimplemented_api!`
@@ -332,7 +332,8 @@ markers in hand-written Rust files, so regeneration writes only unresolved
placeholders and fails on body drift. The checked-in audit reports pending,
translated, ignored-live, benchmark, drifted, missing, duplicate, stale, and
unreviewed cases. The initial handover contained 1,289 unreviewed cases; the
current ledger contains 95 translated/reviewed and 1,194 pending cases.
current ledger contains 145 translated, four benchmark-reviewed, and 1,140
pending cases.
The Rust tests must call the public APIs rather than internal replacements.
Where the C# tests call internal members through friend-assembly access, record