diff options
| author | Shawn Landden <shawn@git.icu> | 2018-08-05 15:11:29 -0700 |
|---|---|---|
| committer | Shawn Landden <shawn@git.icu> | 2018-08-06 22:18:44 -0700 |
| commit | 5d2abf4402bdbd70eb95cf0d516ce12ff4202101 (patch) | |
| tree | 51c8d3ce5c93b2a9cd7985275916c36ddb486bb4 /src/windows_sdk.cpp | |
| parent | aa232089f2beaa273458a9fa75b2ba5c70f71805 (diff) | |
| download | zig-5d2abf4402bdbd70eb95cf0d516ce12ff4202101.tar.gz zig-5d2abf4402bdbd70eb95cf0d516ce12ff4202101.zip | |
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.
Diffstat (limited to 'src/windows_sdk.cpp')
0 files changed, 0 insertions, 0 deletions
