Skip to content

Commit

Permalink
v2.1.0
Browse files Browse the repository at this point in the history
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
zorael committed Jan 4, 2024
1 parent e4c8d1a commit 2e6c6f6
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion README.md
@@ -1,4 +1,4 @@
# lu [![Linux/macOS/Windows](https://img.shields.io/github/actions/workflow/status/zorael/lu/d.yml?branch=master)](https://github.com/zorael/lu/actions?query=workflow%3AD) [![Linux](https://img.shields.io/circleci/project/github/zorael/lu/master.svg?logo=circleci&style=flat&maxAge=3600)](https://circleci.com/gh/zorael/lu) [![Windows](https://img.shields.io/appveyor/ci/zorael/lu/master.svg?logo=appveyor&style=flat&maxAge=3600)](https://ci.appveyor.com/project/zorael/lu) [![Commits since last release](https://img.shields.io/github/commits-since/zorael/lu/v2.0.0.svg?logo=github&style=flat&maxAge=3600)](https://github.com/zorael/lu/compare/v2.0.0...master)
# lu [![Linux/macOS/Windows](https://img.shields.io/github/actions/workflow/status/zorael/lu/d.yml?branch=master)](https://github.com/zorael/lu/actions?query=workflow%3AD) [![Linux](https://img.shields.io/circleci/project/github/zorael/lu/master.svg?logo=circleci&style=flat&maxAge=3600)](https://circleci.com/gh/zorael/lu) [![Windows](https://img.shields.io/appveyor/ci/zorael/lu/master.svg?logo=appveyor&style=flat&maxAge=3600)](https://ci.appveyor.com/project/zorael/lu) [![Commits since last release](https://img.shields.io/github/commits-since/zorael/lu/v2.1.0.svg?logo=github&style=flat&maxAge=3600)](https://github.com/zorael/lu/compare/v2.1.0...master)

Miscellaneous general-purpose library modules. Nothing extraordinary.

Expand Down
2 changes: 1 addition & 1 deletion source/lu/semver.d
Expand Up @@ -26,7 +26,7 @@ enum LuSemVer
/++
SemVer minor version of the library.
+/
minor = 0,
minor = 1,

/++
SemVer patch version of the library.
Expand Down

0 comments on commit 2e6c6f6

Please sign in to comment.