Function byteSwapAllElements [src]

Reverses the byte order of all elements in a slice. Handles structs, unions, arrays, enums, floats, and integers recursively. Useful for converting between little-endian and big-endian representations.

Prototype

pub fn byteSwapAllElements(comptime Elem: type, slice: []Elem) void

Parameters

Elem: typeslice: []Elem

Source

pub fn byteSwapAllElements(comptime Elem: type, slice: []Elem) void { for (slice) |*elem| { switch (@typeInfo(@TypeOf(elem.*))) { .@"struct", .@"union", .array => byteSwapAllFields(@TypeOf(elem.*), elem), .@"enum" => { elem.* = @enumFromInt(@byteSwap(@intFromEnum(elem.*))); }, .bool => {}, .float => |float_info| { elem.* = @bitCast(@byteSwap(@as(std.meta.Int(.unsigned, float_info.bits), @bitCast(elem.*)))); }, else => { elem.* = @byteSwap(elem.*); }, } } }