mirror of
https://github.com/ziglang/zig.git
synced 2025-12-26 16:13:07 +00:00
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);
|
|
}
|