Implement all public enum discriminants, flag semantics, primitive metadata, and Utils conversion helpers.
Deliverables
Use exact repr widths and retain unknown bits/values where grids are extensible.
Port string/numeric/byte/date/URI/IP/region-handle conversion helpers owned by Types.
Preserve invalid-value and sentinel behavior only where protocol-defined.
Validation
All translated enum/flag/conversion tests pass.
Compile-time or golden assertions cover numeric discriminants and flag masks.
Unknown-value round trips are verified.
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 all public enum discriminants, flag semantics, primitive metadata, and Utils conversion helpers.
## Deliverables
- Use exact repr widths and retain unknown bits/values where grids are extensible.
- Port string/numeric/byte/date/URI/IP/region-handle conversion helpers owned by Types.
- Preserve invalid-value and sentinel behavior only where protocol-defined.
## Validation
- All translated enum/flag/conversion tests pass.
- Compile-time or golden assertions cover numeric discriminants and flag masks.
- Unknown-value round trips are verified.
## 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:22 +00:00
Completed all 22 Types enum representations with exact C# widths, case-insensitive named parsing, EnumInfo text metadata, and protocol flag operations.
Added raw-value retention for extensible InventoryType/HoleType values and unknown-bit retention for PrimFlags, SoundFlags, and ExtraParamType.
Replaced the complete Utils shell: numeric/float endian conversions and real destination mutation, UTF-8/null and hex conversions, enum/string conversions, clamp/interpolation/packed values, MD5/SHA-1/SHA-256, PBKDF2-HMAC-SHA1, timestamps, IP/DNS, region handles, random values, and cross-platform platform detection.
Corrected mutable byte-array mappings and kept the independent compile fixture generic bound explicit.
Updated documentation and native coverage to 35 Types / 821 members; the remaining 10 Types are precisely the collection/cache/token scope of #31.
Verification:
39 libremetaverse-types tests pass, including all enum widths, complete PrimFlags/SoundFlags masks, unknown values/bits, metadata, golden hashes, PBKDF2 vector, byte/string sentinels, and destination mutation.
Translated UtilsConversionsTests.StringToBytes now passes; TypeTests quaternion/matrix/UUID/vector cases remain green.
Workspace build and test compilation pass.
Workspace Clippy with -D warnings and rustdoc with -D warnings pass.
API mapping/shim regeneration checks, API coverage, downstream API compile fixture, parity, pinned-source surface, and controlled red-suite audit pass.
Controlled audit: 64 passes and 1,281 expected standardized failures; no unrelated assertion, fixture, or symbol failures.
Implemented in commit 28bd5a0 and pushed to main.
Native Rust implementation:
- Completed all 22 Types enum representations with exact C# widths, case-insensitive named parsing, EnumInfo text metadata, and protocol flag operations.
- Added raw-value retention for extensible InventoryType/HoleType values and unknown-bit retention for PrimFlags, SoundFlags, and ExtraParamType.
- Replaced the complete Utils shell: numeric/float endian conversions and real destination mutation, UTF-8/null and hex conversions, enum/string conversions, clamp/interpolation/packed values, MD5/SHA-1/SHA-256, PBKDF2-HMAC-SHA1, timestamps, IP/DNS, region handles, random values, and cross-platform platform detection.
- Corrected mutable byte-array mappings and kept the independent compile fixture generic bound explicit.
- Updated documentation and native coverage to 35 Types / 821 members; the remaining 10 Types are precisely the collection/cache/token scope of #31.
Verification:
- 39 libremetaverse-types tests pass, including all enum widths, complete PrimFlags/SoundFlags masks, unknown values/bits, metadata, golden hashes, PBKDF2 vector, byte/string sentinels, and destination mutation.
- Translated UtilsConversionsTests.StringToBytes now passes; TypeTests quaternion/matrix/UUID/vector cases remain green.
- Workspace build and test compilation pass.
- Workspace Clippy with -D warnings and rustdoc with -D warnings pass.
- API mapping/shim regeneration checks, API coverage, downstream API compile fixture, parity, pinned-source surface, and controlled red-suite audit pass.
- Controlled audit: 64 passes and 1,281 expected standardized failures; no unrelated assertion, fixture, or symbol failures.
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 all public enum discriminants, flag semantics, primitive metadata, and Utils conversion helpers.
Deliverables
Validation
Prerequisite
The full API shim and semantic test-suite gates are complete.
Project constraints
Implemented in commit
28bd5a0and pushed to main.Native Rust implementation:
Verification: