Server.Types is now thread-safe (ConcurrentDictionary for the IsParsable and Parse-method caches; per-call args array instead of a shared static one), so it can be used off the main thread. AdvancedSearch's CompareValues now delegates its general/reference/IParsable parsing branch to Types instead of comparing against a raw string — so reference types (Poison, entity-by-serial) and unlisted IParsable value types (Guid, ...) now parse into their real type and compare by value. The hot typed paths (numeric/string/bool/TimeSpan/DateTime/ enum) stay span-based and zero-alloc; only this uncommon branch allocates. Fixes: 'Poison = Lethal' (and any reference-type/IParsable property search) previously always returned no-match. Adds Poison + Guid tests. Full suite 534/534. |
||
|---|---|---|
| .. | ||
| Fixtures | ||
| Tests | ||
| UOContent.Tests.csproj | ||