Function writeSliceEndian [src]

Prototype

pub inline fn writeSliceEndian( w: *Writer, Elem: type, slice: []const Elem, endian: std.builtin.Endian, ) Error!void

Parameters

w: *WriterElem: typeslice: []const Elemendian: std.builtin.Endian

Possible Errors

WriteFailed

See the Writer implementation for detailed diagnostics.

Example

test writeSliceEndian { var buffer: [5]u8 align(2) = undefined; var w: Writer = .fixed(&buffer); try w.writeByte('x'); const array: [2]u16 = .{ 0x1234, 0x5678 }; try writeSliceEndian(&w, u16, &array, .big); try testing.expectEqualSlices(u8, &.{ 'x', 0x12, 0x34, 0x56, 0x78 }, &buffer); }

Source

pub inline fn writeSliceEndian( w: *Writer, Elem: type, slice: []const Elem, endian: std.builtin.Endian, ) Error!void { switch (@typeInfo(Elem)) { .@"struct" => |info| comptime assert(info.layout != .auto), .int, .@"enum" => {}, else => @compileError("ill-defined memory layout"), } if (native_endian == endian) { return writeAll(w, @ptrCast(slice)); } else { return writeSliceSwap(w, Elem, slice); } }