pub inline fn writeStruct(w: *Writer, value: anytype, endian: std.lang.Endian) Error!void WriteFailedSee the Writer implementation for detailed diagnostics.
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981pub inline fn writeStruct(w: *Writer, value: anytype, endian: std.lang.Endian) Error!void {
switch (@typeInfo(@TypeOf(value))) {
.@"struct" => |info| switch (info.layout) {
.auto => @compileError("ill-defined memory layout"),
.@"extern" => {
if (native_endian == endian) {
return w.writeAll(@ptrCast((&value)[0..1]));
} else {
var copy = value;
std.mem.byteSwapAllFields(@TypeOf(value), ©);
return w.writeAll(@ptrCast((©)[0..1]));
}
},
.@"packed" => {
return writeInt(w, info.backing_integer.?, @bitCast(value), endian);
},
},
else => @compileError("not a struct"),
}
}