aboutsummaryrefslogtreecommitdiff
path: root/zig-structs/read.zig
diff options
context:
space:
mode:
Diffstat (limited to 'zig-structs/read.zig')
-rw-r--r--zig-structs/read.zig23
1 files changed, 23 insertions, 0 deletions
diff --git a/zig-structs/read.zig b/zig-structs/read.zig
new file mode 100644
index 0000000..95d6390
--- /dev/null
+++ b/zig-structs/read.zig
@@ -0,0 +1,23 @@
1const std = @import("std");
2const player = @import("player.zig");
3
4pub fn main() !void {
5 var gpa = std.heap.GeneralPurposeAllocator(.{}){};
6 const allocator = gpa.allocator();
7 defer {
8 _ = gpa.deinit();
9 }
10
11 const file = try std.fs.cwd().openFile("player.json", .{});
12 defer file.close();
13
14 const stat = try file.stat();
15 const buffer = try file.readToEndAlloc(allocator, stat.size);
16 defer allocator.free(buffer);
17
18 const parsed = try std.json.parseFromSlice(player.Player, allocator, buffer, .{});
19 defer parsed.deinit();
20
21 const p: player.Player = parsed.value;
22 std.debug.print("Reading player with data: {{ Name: {s}, Age: {d} }}\n", .{ p.name, p.age });
23}