From 300c8b0c36f59cf3d71aab5f64a3ac4688e8df99 Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Tue, 22 Dec 2020 21:07:38 -0600 Subject: [PATCH] add generics example --- generics.zig | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 generics.zig diff --git a/generics.zig b/generics.zig new file mode 100644 index 0000000..1510e3c --- /dev/null +++ b/generics.zig @@ -0,0 +1,27 @@ +const std = @import("std"); + +fn List(comptime T: type) type { + return struct { + items: []T, + len: usize, + }; +} + +pub fn main() void { + var buffer: [10]i32 = undefined; + + var list = List(i32){ + .items = &buffer, + .len = 0, + }; + + // the same thing with an intermediate const to make it a little bit more + // clear: + // const IntList = List(i32); + // var list = IntList{ + // .items = &buffer, + // .len = 0, + // }; + + std.debug.print("{}\n", .{list.items.len}); +}