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 › alignBuffer
alignBuffer
Writer.alignBuffer
pub fn alignBuffer (
w : *Writer ,
buffer : []const u8 ,
width : usize ,
alignment : std .fmt .Alignment ,
fill : u8 ,
) Error !void
File
Code
pub fn alignBuffer (
w : *Writer ,
buffer : []const u8 ,
width : usize ,
alignment : std .fmt .Alignment ,
fill : u8 ,
) Error !void {
const padding = if (buffer .len < width ) width - buffer .len else 0 ;
if (padding == 0 ) {
@branchHint (.likely );
return w .writeAll (buffer );
}
switch (alignment ) {
.left => {
try w .writeAll (buffer );
try w .splatByteAll (fill , padding );
},
.center => {
const left_padding = padding / 2 ;
const right_padding = (padding + 1 ) / 2 ;
try w .splatByteAll (fill , left_padding );
try w .writeAll (buffer );
try w .splatByteAll (fill , right_padding );
},
.right => {
try w .splatByteAll (fill , padding );
try w .writeAll (buffer );
},
}
}