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
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Implement UUID construction, parsing, formatting, hashing, ordering, combination, CRC32, and all exact byte-order conversions.
Deliverables
Validation
Prerequisite
The full API shim and semantic test-suite gates are complete.
Project constraints
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.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.