Function bodyReaderDecompressing [src]

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

Prototype

pub fn bodyReaderDecompressing( reader: *Reader, transfer_buffer: []u8, transfer_encoding: TransferEncoding, content_length: ?u64, content_encoding: ContentEncoding, decompress: *Decompress, decompress_buffer: []u8, ) *std.Io.Reader

Parameters

reader: *Readertransfer_buffer: []u8transfer_encoding: TransferEncodingcontent_length: ?u64content_encoding: ContentEncodingdecompress: *Decompressdecompress_buffer: []u8

Source

pub fn bodyReaderDecompressing( reader: *Reader, transfer_buffer: []u8, transfer_encoding: TransferEncoding, content_length: ?u64, content_encoding: ContentEncoding, decompress: *Decompress, decompress_buffer: []u8, ) *std.Io.Reader { if (transfer_encoding == .none and content_length == null) { assert(reader.state == .received_head); reader.state = .body_none; switch (content_encoding) { .identity => { return reader.in; }, .deflate => { decompress.* = .{ .flate = .init(reader.in, .zlib, decompress_buffer) }; return &decompress.flate.reader; }, .gzip => { decompress.* = .{ .flate = .init(reader.in, .gzip, decompress_buffer) }; return &decompress.flate.reader; }, .zstd => { decompress.* = .{ .zstd = .init(reader.in, decompress_buffer, .{ .verify_checksum = false }) }; return &decompress.zstd.reader; }, .compress => unreachable, } } const transfer_reader = bodyReader(reader, transfer_buffer, transfer_encoding, content_length); return decompress.init(transfer_reader, decompress_buffer, content_encoding); }