I just submitted my container library I was working on ages ago
to code.dlang.org. It's currently waiting in a queue, but it
should be available from there soon enough.
I submitted my library with the version "0.1.0" to indicate, "Do
not expect this to work properly." I have a number of unit tests
available for it, and documentation for the library hosted on my
website.
https://w0rp.com/project/dstruct/
It is available on GitHub here.
https://github.com/w0rp/dstruct
If anyone is interested in this stuff at all, let me know what
you think. If you hate it and want to burn me alive, let me know.
A few points follow.
1. This library uses the GC a lot. std.allocator still hasn't
made it out into the real world, so I can't use that yet. I would
like to offer different allocation schemes at some point with
that, but for now the GC default will do. If you absolutely hate
the GC and can't use it, this library isn't for you. (For now.)
2. Again, I don't guarantee that everything will work. I would
really like people to submit issues so I can cover any errors
with more tests.
3. The API for just about anything can be subject to change at
this point. I need more feedback from actual usage of my library.
4. I ended up writing my own library hashmap, which when I tested
ages ago competed with the standard associative array in terms of
performance. This allows me to mark many things @safe pure
nothrow. Also, I was able to implement setDefault in a hopefully
efficient manner. I have tried to push setDefault as an awesome
thing a few times, but I've never been able to explain why it's
good eloquently.
Destroy!