Types: implement UUID, CRC32, and byte-order compatibility #27
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.