March 07, 2020
Steve, thank you once again. Now it compiles & runs!

I now create my tree like this:

auto debs = new RedBlackTree!(Deb, (a, b) => a.name < b.name);

(I feel that the rbtree docs are inadequate regarding creating new empty trees, so have submitted a bug report:
https://issues.dlang.org/show_bug.cgi?id=20646 )

The other problem I had was that the Deb I created on the stack had its own internal rbtree that was always null.

To address this I changed tags in the Deb struct to this:

auto tags = new RedBlackTree!string;

so it always creates a new empty tree. And I renamed clear to reset and now do this:

    void reset() {
        name = "";
        ...
        tags = new RedBlackTree!string;
        ...
    }

I assume that I can safely rely on the GC to clean up for me.

So now I think I can safely use the pattern (1., repeat 2.1, ... ) described earlier: certainly it builds and runs.

Next I'll have to try really populating the Debs including their tag trees and populating the debs tree of Debs structs.

Thank you.



1 2
Next ›   Last »