Function alignBuffer [src]
Prototype
pub fn alignBuffer( w: *Writer, buffer: []const u8, width: usize, alignment: std.fmt.Alignment, fill: u8, ) Error!void
Parameters
w: *Writer
buffer: []const u8
width: usize
alignment: std.fmt.Alignment
fill: u8
Possible Errors
See the Writer
implementation for detailed diagnostics.
Source
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);
},
}
}