mirror of
https://github.com/ziglang/zig.git
synced 2026-01-28 02:05:31 +00:00
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.
79 lines
2.8 KiB
Zig
79 lines
2.8 KiB
Zig
pub const ArrayList = @import("array_list.zig").ArrayList;
|
|
pub const AlignedArrayList = @import("array_list.zig").AlignedArrayList;
|
|
pub const BufMap = @import("buf_map.zig").BufMap;
|
|
pub const BufSet = @import("buf_set.zig").BufSet;
|
|
pub const Buffer = @import("buffer.zig").Buffer;
|
|
pub const BufferOutStream = @import("buffer.zig").BufferOutStream;
|
|
pub const HashMap = @import("hash_map.zig").HashMap;
|
|
pub const LinkedList = @import("linked_list.zig").LinkedList;
|
|
pub const IntrusiveLinkedList = @import("linked_list.zig").IntrusiveLinkedList;
|
|
pub const SegmentedList = @import("segmented_list.zig").SegmentedList;
|
|
pub const DynLib = @import("dynamic_library.zig").DynLib;
|
|
|
|
pub const atomic = @import("atomic/index.zig");
|
|
pub const base64 = @import("base64.zig");
|
|
pub const build = @import("build.zig");
|
|
pub const c = @import("c/index.zig");
|
|
pub const crypto = @import("crypto/index.zig");
|
|
pub const cstr = @import("cstr.zig");
|
|
pub const debug = @import("debug/index.zig");
|
|
pub const dwarf = @import("dwarf.zig");
|
|
pub const elf = @import("elf.zig");
|
|
pub const empty_import = @import("empty.zig");
|
|
pub const event = @import("event.zig");
|
|
pub const fmt = @import("fmt/index.zig");
|
|
pub const hash = @import("hash/index.zig");
|
|
pub const heap = @import("heap.zig");
|
|
pub const io = @import("io.zig");
|
|
pub const json = @import("json.zig");
|
|
pub const macho = @import("macho.zig");
|
|
pub const math = @import("math/index.zig");
|
|
pub const mem = @import("mem.zig");
|
|
pub const net = @import("net.zig");
|
|
pub const os = @import("os/index.zig");
|
|
pub const rand = @import("rand/index.zig");
|
|
pub const rb = @import("rb.zig");
|
|
pub const sort = @import("sort.zig");
|
|
pub const unicode = @import("unicode.zig");
|
|
pub const zig = @import("zig/index.zig");
|
|
|
|
pub const lazyInit = @import("lazy_init.zig").lazyInit;
|
|
|
|
test "std" {
|
|
// run tests from these
|
|
_ = @import("atomic/index.zig");
|
|
_ = @import("array_list.zig");
|
|
_ = @import("buf_map.zig");
|
|
_ = @import("buf_set.zig");
|
|
_ = @import("buffer.zig");
|
|
_ = @import("hash_map.zig");
|
|
_ = @import("linked_list.zig");
|
|
_ = @import("segmented_list.zig");
|
|
|
|
_ = @import("base64.zig");
|
|
_ = @import("build.zig");
|
|
_ = @import("c/index.zig");
|
|
_ = @import("crypto/index.zig");
|
|
_ = @import("cstr.zig");
|
|
_ = @import("debug/index.zig");
|
|
_ = @import("dwarf.zig");
|
|
_ = @import("elf.zig");
|
|
_ = @import("empty.zig");
|
|
_ = @import("event.zig");
|
|
_ = @import("fmt/index.zig");
|
|
_ = @import("hash/index.zig");
|
|
_ = @import("io.zig");
|
|
_ = @import("json.zig");
|
|
_ = @import("macho.zig");
|
|
_ = @import("math/index.zig");
|
|
_ = @import("mem.zig");
|
|
_ = @import("net.zig");
|
|
_ = @import("heap.zig");
|
|
_ = @import("os/index.zig");
|
|
_ = @import("rand/index.zig");
|
|
_ = @import("sort.zig");
|
|
_ = @import("unicode.zig");
|
|
_ = @import("zig/index.zig");
|
|
_ = @import("lazy_init.zig");
|
|
}
|