mirror of https://github.com/deavmi/niknaks
Tristan B. Velloza Kildaire
1a754cf7e6
* Tree - WIP * Tree - Added initial dfs * Tree - By default use the `always` strat * Tree - Added a TODO * Tree - Added ability to append Tree (unittests) - Updated unittests to test appending * InclusionStratergy - Now uses the `TreeNode!(T)` instead of the `T` itself * VisitationTree - Working on a visitation tree implementation * Tree - Pass in, explcitly, the touch startergy * Tree - Correct visitation stratergy * VisitationTree (unittests) - Added missing assertions * Tree (unittests) - Added missing assertions * Methods - Added rightward shifting mechanism * Methods - Added leftwards shifting mechanism * TreeNode - Added removal - Added indexing support * Tree - Reworking opSlicwe * Tree - opSlice done * Tree - Added normal opSlice as well * Tree (unittests) - Updated test for parametwerized opSlice * Tree - Added opIndex * Tree - Cleaned up - Removed `getValue()` Tree (unittests) - Added test for `removeNode(Tree!(T))` * Containers - Added `shiftIntoLeftwards` and `shiftIntoRightwards` * Containers (unittests) - Use new methods * Containers - Cleaned up * InclusionStratergy - Documented TouchStratergy - Documented * Containers - Documented method * niknaks.arrays - Moved here niknaks.containers - Moved here * niknaks.arrays - Updated unittestesd (test shrinking) - Added docs * niknaks.arrays - Refactored * niknaks.arrays - Added this * VisitationTree - Documented * VisitationTree - Documented * Tree (unittests) - Added docs * Tree (unittests) - Moved import * Tree - Added some docs * Tree - CLeaned up * Tree - Documented * Tree - Documented * Tree - Documented - Cleaned * Always(T) - Documented * Tree - Added `opDollar()` and `@property`'d `length()` * Tree - Adde doc * Tree - Renamed `Tree!(T)` to `Graph!(T)` * Graph - Typo fix * Graph - Clean up * Graph - Renamed * Graph - Documented helper methods * Graph - Typo fix * graph - Documented `dfs(...)` * Graph - Documented `toString()` * Graph (unittests) - Added tests for `opIndex(size_t)` * Graph - Implemented `getValue()` Graph (unittests) - Added tests for `getValue()` * Graph (unittests) - Added test for `opDollar()` * README - Updated docs |
||
---|---|---|
.github/workflows | ||
branding | ||
source/niknaks | ||
.gitignore | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
dub.json |
README.md
Niknaks
Helpful niknaks or "things" that you may grasp for now and then
Usage
To add the package to your project use the following:
dub add niknaks
Modules
Below is a short description of what each module provides, the list is expected to grow over time.
niknaks.functional
- Predicates
- Optionals
niknaks.arrays
- Unique element generation
- Prescence checking
niknaks.bits
- Integral to byte conversions
- Byte ordering functions
niknaks.debugging
- Automagic dumping of arrays to textual representation
- Supports arrays-of-arrays-of...
- Enter-leave (with argument and name printing) for methods
- Some textual manipulation routines as well
- Automagic dumping of arrays to textual representation
niknaks.containers
- Some useful container types
- Things such as
CacheMap
,Graph
andVisitationTree
niknaks.mechanisms
- User-defined input prompter, retry mechanisms
niknaks.config
- Configuration entries and management
License
LGPL 3.0
Contributing
If there is something let me know or open a pull request for it. Try to keep the implementation generic as in by using parameterized types via D's templating capabilities.
Only make use of exceptions where it is absolutely necessary, normally go for an exception-less implementation and have an exception-based one which re-uses the former.
For more information please see CONTRIBUTING.