mirror of
https://github.com/ziglang/zig.git
synced 2024-11-15 16:45:27 +00:00
5619ce2406
Conflicts: * doc/langref.html.in * lib/std/enums.zig * lib/std/fmt.zig * lib/std/hash/auto_hash.zig * lib/std/math.zig * lib/std/mem.zig * lib/std/meta.zig * test/behavior/alignof.zig * test/behavior/bitcast.zig * test/behavior/bugs/1421.zig * test/behavior/cast.zig * test/behavior/ptrcast.zig * test/behavior/type_info.zig * test/behavior/vector.zig Master branch added `try` to a bunch of testing function calls, and some lines also had changed how to refer to the native architecture and other `@import("builtin")` stuff.
47 lines
854 B
Zig
47 lines
854 B
Zig
const std = @import("std");
|
|
|
|
const mystruct = struct {
|
|
pending: ?listofstructs,
|
|
};
|
|
pub fn TailQueue(comptime T: type) type {
|
|
return struct {
|
|
const Self = @This();
|
|
|
|
pub const Node = struct {
|
|
prev: ?*Node,
|
|
next: ?*Node,
|
|
data: T,
|
|
};
|
|
|
|
first: ?*Node,
|
|
last: ?*Node,
|
|
len: usize,
|
|
|
|
pub fn init() Self {
|
|
return Self{
|
|
.first = null,
|
|
.last = null,
|
|
.len = 0,
|
|
};
|
|
}
|
|
};
|
|
}
|
|
const listofstructs = TailQueue(mystruct);
|
|
|
|
const a = struct {
|
|
const Self = @This();
|
|
|
|
foo: listofstructs,
|
|
|
|
pub fn init() Self {
|
|
return Self{
|
|
.foo = listofstructs.init(),
|
|
};
|
|
}
|
|
};
|
|
|
|
test "intialization" {
|
|
var t = a.init();
|
|
try std.testing.expect(t.foo.len == 0);
|
|
}
|