Function endChunkedUnflushed [src]
Writes the end-of-stream message and any optional trailers.
Does not flush.
Asserts that the BodyWriter is using transfer-encoding: chunked.
Respects the value of isEliding to omit all data after the headers.
See also:
endChunked
endUnflushed
end
Prototype
pub fn endChunkedUnflushed(w: *BodyWriter, options: EndChunkedOptions) Error!void Parameters
w: *BodyWriteroptions: EndChunkedOptions Possible Errors
Source
pub fn endChunkedUnflushed(w: *BodyWriter, options: EndChunkedOptions) Error!void {
if (w.isEliding()) {
w.state = .end;
return;
}
const bw = w.http_protocol_output;
switch (w.state.chunk_len) {
0 => {},
1 => unreachable, // Wrote more data than specified in chunk header.
2 => try bw.writeAll("\r\n"),
else => unreachable, // An earlier write call indicated more data would follow.
}
try bw.writeAll("0\r\n");
for (options.trailers) |trailer| {
try bw.writeAll(trailer.name);
try bw.writeAll(": ");
try bw.writeAll(trailer.value);
try bw.writeAll("\r\n");
}
try bw.writeAll("\r\n");
w.state = .end;
}