endUnflushed
When using content-length, asserts that the amount of data sent matches the value sent in the header.
Otherwise, transfer-encoding: chunked is being used, and it writes the end-of-stream message with empty trailers.
Respects the value of isEliding to omit all data after the headers.
Does not flush http_protocol_output, but does flush writer.
See also:
endendChunked
Function parameters
Parameters
- w:*BodyWriter
Type definitions in this namespace
Types
- Method
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
- Status
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
- TransferEncoding
- compression is intentionally omitted here since it is handled in `ContentEncoding`.
- BodyWriter
- Request or response body.
Source
Implementation
pub fn endUnflushed(w: *BodyWriter) Error!void {
try w.writer.flush();
switch (w.state) {
.end => unreachable,
.content_length => |len| {
assert(len == 0); // Trips when end() called before all bytes written.
w.state = .end;
},
.none => {},
.chunk_len => return endChunkedUnflushed(w, .{}),
}
}