Function alignBuffer [src]
Prototype
pub fn alignBuffer( w: *Writer, buffer: []const u8, width: usize, alignment: std.fmt.Alignment, fill: u8, ) Error!void Parameters
w: *Writerbuffer: []const u8width: usizealignment: std.fmt.Alignmentfill: 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);
},
}
}