Add BasicType system with type-safe storage and configurable locking #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces BasicType - a type-safe wrapper system for memory-mapped storage - along with major performance optimizations and architectural improvements to the MemoryMap library.
Key Features
BasicType System: Type-safe containers for Int, String, Double, Bool with three size variants:
BasicType8(BasicTypeNumber): 10 bytes - optimized for numeric typesBasicType64: 62 bytes - general purpose with short strings (~60 chars)BasicType1024: 1022 bytes - for longer strings (~1000 chars)Lock Abstraction: Flexible locking via
MemoryMapLockprotocolOSAllocatedUnfairLock(default) - high performanceNoLock- zero-cost for single-threaded useNSLock- standard Foundation lockPerformance Optimizations:
withUnsafeByteseliminates subscript overhead@inline(__always)on hot pathsArchitectural Improvements:
ByteStoragelayer with tuple-based storage maintains POD complianceKeyValueStore+Internal.swiftseparates implementation detailsBreaking Changes
KeyValueStore API Change: Now requires Key and Value type parameters
Testing & CI
test.ymlworkflow for multi-platform testing (macOS, iOS, tvOS, watchOS, visionOS)Test Plan