Types: implement UUID, CRC32, and byte-order compatibility #27

Closed
opened 2026-08-08 08:16:21 +00:00 by hugo · 2 comments
Owner

Objective

Implement UUID construction, parsing, formatting, hashing, ordering, combination, CRC32, and all exact byte-order conversions.

Deliverables

  • Use a compatibility newtype around the selected UUID crate without leaking ambiguous endian behavior.
  • Port zero/random/constants, parse/try-parse, byte constructors, spans, string formats, equality, hashing, CRC/combine helpers, and malformed-input errors.
  • Preserve fixed integer widths and allocation behavior where publicly observable.

Validation

  • All translated UUID/CRC tests pass.
  • Golden byte and string vectors match the pinned C# implementation.
  • Run focused Types tests plus workspace check and docs.

Prerequisite

The full API shim and semantic test-suite gates are complete.

Project constraints

  • Implement only in native Rust; no LibreMetaverse/.NET bridge, subprocess, RPC, or fallback.
  • Keep mapped public signatures fixed and do not weaken translated parity assertions.
  • Remove failing bodies only for owned behavior and leave unrelated modules untouched.
  • Update docs, coverage/parity status, and focused plus workspace validation evidence.
## Objective Implement UUID construction, parsing, formatting, hashing, ordering, combination, CRC32, and all exact byte-order conversions. ## Deliverables - Use a compatibility newtype around the selected UUID crate without leaking ambiguous endian behavior. - Port zero/random/constants, parse/try-parse, byte constructors, spans, string formats, equality, hashing, CRC/combine helpers, and malformed-input errors. - Preserve fixed integer widths and allocation behavior where publicly observable. ## Validation - All translated UUID/CRC tests pass. - Golden byte and string vectors match the pinned C# implementation. - Run focused Types tests plus workspace check and docs. ## Prerequisite The full API shim and semantic test-suite gates are complete. ## Project constraints - Implement only in native Rust; no LibreMetaverse/.NET bridge, subprocess, RPC, or fallback. - Keep mapped public signatures fixed and do not weaken translated parity assertions. - Remove failing bodies only for owned behavior and leave unrelated modules untouched. - Update docs, coverage/parity status, and focused plus workspace validation evidence.
hugo added this to the 04 - Types implementation milestone 2026-08-08 08:16:21 +00:00
hugo added the enhancement label 2026-08-08 08:16:21 +00:00
Author
Owner

Implemented in commit 28a6f54. Added native Rust UUID backed by the uuid crate with explicit network-byte and mixed-endian Guid conversions, full parsing/formatting, ordering, hashing, XOR, MD5 combination, LLCRC, u64 conversion, random generation, and checked byte writes. Added the incremental LibreMetaverse CRC-32 algorithm and native little-endian f32/f64 helpers with mutable buffer mappings. Updated deterministic API generation to re-export reviewed native types and report 2 native Types / 34 native members. Verification passed: 14 libremetaverse-types unit/golden tests; translated TypeTests.UUIDs parity test; clippy with warnings denied; rustdoc; workspace build; workspace tests no-run; independent API compile fixture; mapping/shim/API coverage gates; parity gate with 0 pending, drifted, or unreviewed cases.

Implemented in commit 28a6f54. Added native Rust UUID backed by the uuid crate with explicit network-byte and mixed-endian Guid conversions, full parsing/formatting, ordering, hashing, XOR, MD5 combination, LLCRC, u64 conversion, random generation, and checked byte writes. Added the incremental LibreMetaverse CRC-32 algorithm and native little-endian f32/f64 helpers with mutable buffer mappings. Updated deterministic API generation to re-export reviewed native types and report 2 native Types / 34 native members. Verification passed: 14 libremetaverse-types unit/golden tests; translated TypeTests.UUIDs parity test; clippy with warnings denied; rustdoc; workspace build; workspace tests no-run; independent API compile fixture; mapping/shim/API coverage gates; parity gate with 0 pending, drifted, or unreviewed cases.
Author
Owner

Additional broad test audit after review: cargo test --workspace --no-fail-fast uuid ran all UUID-named tests. The 6 native UUID tests and translated TypeTests.UUIDs pass. UUID-named downstream failures stop before UUID assertions at out-of-milestone shims: GridClient, NameValue, InventoryTexture/InventoryItem, RlvService, and StructuredData OSD/parser. The CRC filter passes all 4 owned CRC/LLCRC tests; its only downstream failure stops at the milestone-09 InventoryItem constructor. The little_endian workspace filter passes. No failure was observed in behavior owned by this issue.

Additional broad test audit after review: cargo test --workspace --no-fail-fast uuid ran all UUID-named tests. The 6 native UUID tests and translated TypeTests.UUIDs pass. UUID-named downstream failures stop before UUID assertions at out-of-milestone shims: GridClient, NameValue, InventoryTexture/InventoryItem, RlvService, and StructuredData OSD/parser. The CRC filter passes all 4 owned CRC/LLCRC tests; its only downstream failure stops at the milestone-09 InventoryItem constructor. The little_endian workspace filter passes. No failure was observed in behavior owned by this issue.
hugo closed this issue 2026-08-08 22:08:47 +00:00
Sign in to join this conversation.