Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › Io/ › Writer.zig › writeStruct
writeStruct
Writer.writeStruct
pub inline fn writeStruct (w : *Writer , value : anytype , endian : std .builtin .Endian ) Error !void
File
Code
pub inline fn writeStruct (w : *Writer , value : anytype , endian : std .builtin .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" ),
}
}