SwiftCollections v4.0.3
Patch release focused on serialization alignment, diagnostics reuse, and low-level performance cleanup.
Highlights
-
Migrated state-backed JSON serialization to Chronicler
v0.2.0.- Collection JSON still preserves the existing
{ "State": ... }shape. - State-backed collection types now implement Chronicler’s explicit
IStateBacked<TState>contract. - Replaced SwiftCollections’ local state JSON converter implementation with Chronicler’s
StateJsonConverterFactory.
- Collection JSON still preserves the existing
-
Added shared diagnostics primitives under
SwiftCollections.Diagnostics.- Includes reusable
DiagnosticLogger, typed interpolated diagnostic handlers, and channel logging extensions. - Supports disabled-level interpolation skipping so expensive formatted values are not evaluated when logging is off.
- Includes reusable
-
Improved hashing/null-guard internals.
- Avoids value-type boxing in generic null guards.
- Adds allocation-free integer hash-combine overloads for common hot paths.
-
Added public netstandard2.1 interpolated string handler attribute shims so downstream libraries can rely on SwiftCollections instead of carrying local copies.
Dependency Updates
- Added
Chronicler.Core/Chronicler.Core.Lean0.2.0. - Updated
System.Text.Jsonfornetstandard2.1from10.0.5to10.0.7.
CI & Tests
- CI now builds and tests Release configuration.
- Added coverage for Chronicler JSON round trips, diagnostics behavior, hash helpers, and collection edge cases.
- Stabilized flaky diagnostics-related tests.
Compatibility Notes
- Existing serialized JSON payload shape is preserved.
- Code that directly referenced
SwiftStateJsonConverterorSwiftStateJsonConverterFactoryshould migrate to Chronicler’sStateJsonConverter/StateJsonConverterFactory.