Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This release adds several new features, and as such bumps the minor version. Added `lu.container.RehashingAA`; a templated wrapper around a built-in associative array that rehashes itself when it reaches a configurable load factor. This is useful if you aim to keep a growing associative array around long-term that you ideally want to keep rehashed to avoid performance degradation, without having to continuously rehash it manually. Added `lu.container.MutexedAA`; a templated wrapper around a built-in associative array that locks a mutex before performing any operations on the array. This should make it safe to use in a multi-threaded environment, provided it is set up correctly (by calling `MutexedAA.setup()`) before passing it to other threads. Not all associative array operations are exposed, as some are inherently not thread-safe. Added `lu.container.uniqueKey` which, given an associative array with an integral (numeric) key type, reserves a unique key (for which there exists on value) by assigning it a dummy value, and then returns the key to the caller. This allows for a simple way to generate keys guaranteed to be unique without having to keep track of which keys are in use. `lu.container.CircularBuffer.front()` was changed to return `ref auto`, allowing for reference access to the element. This is technically a breaking ABI change, but it is unlikely to affect any code in the wild. * Added `lu.conv.enumToString`, a simple wrapper around `lu.conv.Enum` that infers the type of the enum argument instead of requiring it to be explicitly passed * Removed `lu.semver` deprecated enum member aliases * `lu.string.splitInto` now accepts being passed no string symbols, placing all split tokens in the overflow array instead
- Loading branch information