* Config
- Added initial types
* ConfigEntry
- Added `getType()`
* ConfigENtry
- Implemented `opCast(TypeTo)()` for all the types.
- It will ALSO throw a compile-time false assertion if an unsupported to-type `TypeTo` is specified
* ConfigEntry
- Removed a TODO
* Registry
- Added initial registry implementation
* ConfigEntry
- Added ensure-set stuff
Registry
- Added `opIndex(string)`
* ConfigEntry (unittests)
- Test the ensure set stuff
* Registry
- Refatcored `newEntry(..., ..., ...)` to alow for parameterizing over-writing allowance
- Implemented `opIndexAssign`
* Registry
- Toggle set-on-creation (i.e. setting something if it never existed)
- `opIndexAssign` allows setting-on-creation (i.e. creation of an otherwise non-existent node)
* Registry (unittest)
- Try get more coverage by testing certain case
* Registry (unittest)
- Try get more coverage by testing ANOTHER case
* RegistryEntry
- Added
* Registry
- Implemented `getEntries()`
* Registry
- Implemented `opSlice()`
* Registry (unittests)
- Test the `opSlice()` and hence `getEntries()` method
* Mechanisms
- Added `Delay`
- Added tests for `Delay`
* DelayTimeoutException
- Added new exception type
Delay
- Now uses `DelayTimeoutException`
* Delay (unittests)
- Test out function to delegate conversion
* Delay
- Stop and reset internal timer once `go()` goes out of scope
- this allows for re-use
* Delay
- Fixed calling of `stop()` on a non-running `StopWatch`
* Delay
- Fully documented
* Delay (unittests)
- Documented
* Mechanisms
- CLeaned up
* Delay
- Documented
- We must add an import.
- The mixin dumps parameter-filled code verbatim and hence the scope is not the same as you would think. Everything we need must be present.
- We must add an import.
- The mixin dumps parameter-filled code verbatim and hence the scope is not the same as you would think. Everything we need must be present.
* Containers
- Created module
* ExpirationStrategy
- Added new enum with members `LIVE` and `ON_ACCESS`
* Entry
- Added entry
* CacheMap
- Added initial implementation
CacheMap (unitests)
- Added a unittest
* CacheList
- Added a stub `CacheList` container type
* CacheMap
- Implement the static ifdefs to set
- Use the hitcount method
* CacheMap
- Disbale hitcount for now
* CacheMap
- Added `ReplacementFunction`
* CacheMap
- Implemented `updateKey(K key)`
* CacheMap
- Implemented `expirationCheck(K key)`
* CacheMao
- Updated `get(K key)` to use the new `K` key-based exipiration check
* CacheMap
- The method `updateKey(K key)` now returns the value refreshed
- `get(K key)` now refrehses on unfound key
* CacheMap
- Implemented `makeKey(K key)`
- Busy reworking, still broken
* CacheMap
- Fixed errors with compilation in `makeKey(K key)`
* CacheMap
- Fixed `expirationCheck(K key)` by using `makeKey(K key)` whenever the key does not yet exist
* CacheMap (unittests)
- Fixed unit test
* CacheMap
- Removed `put(K, V)` method
* CacheMap
- Removed traversal version `expirationCheck()`
* CacheMap
- Force compilation failure when `get()` is called for LIVE strat
- Added proper `~this()` implementation for LIVE strat
* CacheMap
- Documented methods
* CacheMap
- Updated `get(K)`
* CacheMap
- Either a function or delegate may now be used
* CacheMap
- Removed nop
* CacheMap
- Always use a thread that wakes up at expirary time to clean up
- Added destructor (that won't seg) as it wits for the cleanup to happen then exits (allowing destruction AFTER the fact)
* CacheMap
- Added some documentation
* CacheMap
- Cleaned up
* CacheList
- Removed `CacheList`
* Containers
- Moved inside of unittest
* Containers (unittest)
- Documented
- Removed unused unittest
* ExpirationStrategy
- Removed this enum
* Entry
- Documented
* CacheMap
- Documented `get(Key)`
* CacheMap
- Documented `checkerFunc()`
* CacheMap
- Documented `doLiveCheck()` and `~this()`
* niknaks.containers
- Documented module
* niknaks (package)
- Added import
* CacheMap
- Implemented `removeKey(K key)`
* CacheMap
- Documented `removeKey(K)`
* CacheMap (unittest)
- Explcitiyl set time
* CacheMap (unittest)
- Added a test ofkey removal (explicit)
* CacheMap (unittest)
- Destroy map
* CacheMap (unittest)
- Added missing documentation
* CacheMap (unittest)
- Removed old code
* CacheMap (unittests)
- Cleaned up
* CacheMap
- Fixed the constructor which takes in a `ReplacementFunction` to pass in the default arguments as well
- The `checkerFunc` now uses the `sweepInterval`
- Added support for a `sweepInterval` which the checker runs at now (seperate to the `expirationTime`)
CacheMap (unittest)
- Documented more unittests
- Added a unit test for on-access stratergy testing
* niknaks.containers
- Cleaned up imports
* niknaks.debugging
- `dumpArray` will not expand strings anymore
* niknaks.debugging
- Working prototype (potentially) for a fix
* niknaks.debugging
- Updated the unittests to use the new version
* niknaks.debugging
- Added missing docs
* niknaks.debugging
- Made this method internal
* niknas.debugging
- Renamed `dumpArray2` to `dumpArray`
- Removed old `dumpArray_internal(T)(T[] array)`
* niknaks.debugging
- Documented
* niknaks.debugging
- Moved unittest
* niknaks.debugging
- Moved unittests near template (all of them) to allow for them to appear in documentation
* niknaks.debugging
- Remove pragmas
- Documented internals
* niknaks.debugging
- Rmeoved
* niknaks.debugging
- Added initial `dumpArray(T)(T[])` and `dumpArray(T)(T[], size_t, size_t)`
- Added a unit test
* niknaks.debugging
- Added `isWriteStrat(alias T)(T)`
* niknaks.debugging
- Updated unit tests to test all variations
* niknaks.debugging
- Added `genTabs(ubyte count)`
- Working on making `dumpArray` support compile-time recursion on the array types to generate the correct functions nedded for arrays-of-arrays-of-arrays-of yadada you get it
* niknaks.debugging
- `genTabls(size_t)` now takes in `size_t` instead of `ubyte`
- `depth` is now `size_t`
- Increment the depth argument by 1 prior to call
- Add tabbing for call to indent when array of arrays
- Added unit tests for recursive meta programming code generation
* niknaks.debugging
- Indent only when the `depth` is non-zero for both array of arrays case entry and singular array case entry
* niknaks.debugging
- Documented unittests
* niknaks.debugging
- Documented `genTabs(size_t count)`
* niknaks.debugging
- Added `genX(size_t count, string pattern)`
- `genTabs(size_t)` now uses `genX(size_t, string)`
* niknaks.debugging
- Documented last few methods
* niknaks.debugging
- Neatened up
* niknaks.debugging
- Now returns a `string`
* niknaks.debugging
- Don't use `writeln`, use `write` for unit tests
- Cleaned up imports
* niknaks.debugging
- Removed dead and old code
- Cleaned up unused imports
* Package
- Added missing import
* niknaks.debugging
- CHanged module comment
* README
- Added information about the `niknaks.debugging` module
* niknaks.functional
- This is eh, I should just use `std.functional.toDelegate`
* niknaks.functional
- Updated template `Predicate!(T)` to now refer to `bool delegate(T)`
- Added template function `predicateOf(alias f)` where the alias is the function's symbol name. It can be either delegate or functin but must be callkable, then we convert a fucntion to a delegate if need be
* niknaks.functional
- Don't allow any callable, ONLY delegates or functions as the referred-to entity of the alias/symbol
* niknaks.function
- Added some documentation
* niknaks.functional
- `predicateOf!(alias)` now ensurs that the delegate or function has a return type of bool and that it has a single arity
* niknaks.functional
- Removed commented-out old code
* niknaks.functional
- Added missing `isDelegate` import
- Updated unittests
* niknaks.functional
- Remove testing code for a unit test
* niknaks.arrays
- Added a new implementation of `findNextFree!(T)(T[], ref T)` which now returns a boolean and ref's the found value
- Fixes a bug whereby infite loop COULD occur
- The new function is also `@nogc`
* niknaks.arrays
- Added a unittest to test out the new method
* niknaks.arrays
- Removed now-completed TODO
* niknaks.arrays
- Cleaned up comments for unit tests
- Added missing unit test comments
* niknaks.arrays
- Fixed unittest to be nicer
* niknaks.arrays
- Fixed unittest to be nicer
* niknaks.arrays
- Added a unit test to test a missing case of an empty array
* niknaks.bits
- Added `fromBytes`
* niknaks.bits
- Renamed `fromBytes` to `bytesToIntegral`
* niknaks.bits
- `bytesToIntegral` is documented
- `bytesToIntegral` now has a runtime length check
* niknaks.bits
- Dicumented example
* niknaks.-bits
- Added unit test
* niknaks.bits
- Fixed unittest
* niknaks.bits
- Return `T.init` when runtime range check fails
* niknaks.bits
- Made `bytesToIntegral(T)(ubyte[] bytes)` not use any stack space
* niknaks.bits
- Fixed unittest
* niknaks.functional
- Initial support for optionals added
* README
- Added Optionals to list of supported things in `niknaks.functional`
* niknaks.optional
- Split up positive and negative test cases
* niknaks.functional
- Documented template and the struct within
* niknaks.functional
- Documented template and the struct within
* niknaks.functional
- Documented `OptionalException`
* niknaks.functional
- Cleaned up imports