From 7077aae9ceedc48fd5329f204163f1fbdd9d0ba8 Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Wed, 15 Apr 2026 19:44:48 -0400 Subject: fix: convert MacAddr from vector to int Still expose a vector / slice API with .fromSlice, --- src/EthIpUdp.zig | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/EthIpUdp.zig') diff --git a/src/EthIpUdp.zig b/src/EthIpUdp.zig index 251ed64..b286db2 100644 --- a/src/EthIpUdp.zig +++ b/src/EthIpUdp.zig @@ -53,8 +53,19 @@ pub const EthIpUdp = packed struct(u336) { // 42 bytes * 8 bits = 336 // --- Ethernet --- eth_type: u16 = std.os.linux.ETH.P.IP, - src_mac: @Vector(6, u8), - dst_mac: @Vector(6, u8) = @splat(0xff), + src_mac: MacAddr, + dst_mac: MacAddr = .fromSlice(@splat(0xff)), + + pub const MacAddr = packed struct { + int: I, + + pub const V = @Vector(6, u8); + pub const I = @Int(.unsigned, @bitSizeOf(V)); + + pub fn fromSlice(s: V) MacAddr { + return .{ .int = @bitCast(s) }; + } + }; pub fn toBytes(self: @This()) [336 / 8]u8 { var res: [336 / 8]u8 = undefined; -- cgit