diff options
Diffstat (limited to 'zig-structs/read.zig')
| -rw-r--r-- | zig-structs/read.zig | 23 |
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 @@ | |||
| 1 | const std = @import("std"); | ||
| 2 | const player = @import("player.zig"); | ||
| 3 | |||
| 4 | pub 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 | } | ||
