Function bodyReader [src]

If compressed body has been negotiated this will return compressed bytes. Asserts only called once and after receiveHead. See also: interfaceDecompressing

Prototype

pub fn bodyReader( reader: *Reader, transfer_buffer: []u8, transfer_encoding: TransferEncoding, content_length: ?u64, ) *std.Io.Reader

Parameters

reader: *Readertransfer_buffer: []u8transfer_encoding: TransferEncodingcontent_length: ?u64

Source

pub fn bodyReader( reader: *Reader, transfer_buffer: []u8, transfer_encoding: TransferEncoding, content_length: ?u64, ) *std.Io.Reader { assert(reader.state == .received_head); switch (transfer_encoding) { .chunked => { reader.state = .{ .body_remaining_chunk_len = .head }; reader.interface = .{ .buffer = transfer_buffer, .seek = 0, .end = 0, .vtable = &.{ .stream = chunkedStream, .discard = chunkedDiscard, }, }; return &reader.interface; }, .none => { if (content_length) |len| { reader.state = .{ .body_remaining_content_length = len }; reader.interface = .{ .buffer = transfer_buffer, .seek = 0, .end = 0, .vtable = &.{ .stream = contentLengthStream, .discard = contentLengthDiscard, }, }; return &reader.interface; } else { reader.state = .body_none; return reader.in; } }, } }