DoxigAlpha

Function parameters

Parameters

#
decompress:*Decompress
transfer_reader:*std.Io.Reader
buffer:[]u8

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 init(
    decompress: *Decompress,
    transfer_reader: *std.Io.Reader,
    buffer: []u8,
    content_encoding: ContentEncoding,
) *std.Io.Reader {
    switch (content_encoding) {
        .identity => {
            decompress.* = .{ .none = transfer_reader };
            return transfer_reader;
        },
        .deflate => {
            decompress.* = .{ .flate = .init(transfer_reader, .zlib, buffer) };
            return &decompress.flate.reader;
        },
        .gzip => {
            decompress.* = .{ .flate = .init(transfer_reader, .gzip, buffer) };
            return &decompress.flate.reader;
        },
        .zstd => {
            decompress.* = .{ .zstd = .init(transfer_reader, buffer, .{ .verify_checksum = false }) };
            return &decompress.zstd.reader;
        },
        .compress => unreachable,
    }
}