Shawn Landden 5d2abf4402 std: add red-black tree implementation
This is to be used with @fieldParentPtr();

Example:

const rb = @import("std").rb;

const Number = struct {
    node: rb.Node,
    value: i32,
};

fn number(node: *rb.Node) *Number {
    @fieldParentPtr(Number, "node", node);
}

fn compare(l: *rb.Node, r: *rb.Node) rb.Compare {
    var left = number(l);
    var right = number(r);

    if (left.value < right.value) {
        return rb.Compare.LessThan;
    } else if (left.value == right.value) {
        return rb.Compare.Equal;
    } else if (left.value > right.value) {
        return rb.Compare.GreaterThan;
    }
    unreachable;
}
--

A version that caches rb.Tree.first() could be added in the future.
2018-08-06 22:18:44 -07:00
..
2018-07-22 00:04:24 -04:00
2018-07-29 23:25:40 -04:00
2018-08-02 14:15:31 -04:00
2018-07-17 10:29:42 -04:00
2018-06-18 17:43:01 -04:00
2018-08-06 22:18:44 -07:00
2018-07-18 10:07:22 -04:00