Implement Types collections and token bucket

This commit is contained in:
2026-08-08 23:45:26 +00:00
parent 28bd5a0296
commit ae0b7966e2
10 changed files with 1881 additions and 1023 deletions

View File

@@ -51,7 +51,7 @@ Running `cargo test --workspace` is intentionally red during the shim stage.
## Native implementation progress
Milestone 04 implementation has begun. `libremetaverse-types` now provides
Milestone 04 is complete. `libremetaverse-types` now provides
native UUID, incremental CRC-32, little-endian floating-point byte helpers,
Vector2/Vector3/Vector3d/Vector4 arithmetic and serialization, Color4 color
conversion, Ray storage, Quaternion rotation/interpolation/serialization, and
@@ -66,8 +66,12 @@ direction. All Types enum discriminants retain their C# widths, extensible
protocol flags preserve unknown bits, and the native conversion layer covers
numeric and floating-point byte order, UTF-8
and hex text, hashes and PBKDF2, timestamps, IP addresses, region handles, enum
metadata, and cross-platform OS detection. The remaining Types collections,
caches, and token bucket stay visibly failure-only until their owning milestone
issue is completed.
metadata, and cross-platform OS detection. The Types collections,
including duplicate-preserving multi-value and synchronized double-key maps,
bounded LRU/MRU caches, deterministic absolute and sliding expiration, and
hierarchical token-bucket throttling are native Rust as well. Cache and bucket
tests use injected monotonic clocks, and concurrency invariants run without
sleep-based timing. All 45 Types and all 942 mapped members now resolve to
native implementations; no generated Types shims remain.
The controlled audit aggregates every expected failure by standardized C#
member ID and rejects unrelated fixture, assertion, compile, or symbol errors.