Function elidingDrain [src]
Prototype
pub fn elidingDrain(w: *Writer, data: []const []const u8, splat: usize) Error!usize Parameters
w: *Writerdata: []const []const u8splat: usize Possible Errors
Source
pub fn elidingDrain(w: *Writer, data: []const []const u8, splat: usize) Error!usize {
const bw: *BodyWriter = @alignCast(@fieldParentPtr("writer", w));
const slice = data[0 .. data.len - 1];
const pattern = data[slice.len];
var written: usize = pattern.len * splat;
for (slice) |bytes| written += bytes.len;
switch (bw.state) {
.content_length => |*len| len.* -= written + w.end,
else => {},
}
w.end = 0;
return written;
}