summaryrefslogtreecommitdiff
path: root/zig-struct-bin/main.zig
blob: 41932422b575b9b632a72c3f02092a3d1a1a5208 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const std = @import("std");

const Sample = packed struct {
    type: u16,
    machine: u16,
    version: u32,
};

test "write" {
    const s = Sample{
        .type = 54,
        .machine = 72,
        .version = 132,
    };

    std.debug.print("{}\n", .{s});

    var file = try std.fs.cwd().createFile("out.bin", .{});
    defer file.close();

    try file.writeAll(std.mem.asBytes(&s));
}

test "read" {
    var file = try std.fs.cwd().openFile("./out.bin", .{});
    defer file.close();

    var buffer: [8]u8 = undefined;
    _ = try file.read(buffer[0..]);

    const s: *Sample = @ptrCast(@alignCast(&buffer));
    std.debug.print("{}\n", .{s});
}

pub fn main() void {}