Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › http › Reader › chunkedStream Private Function chunkedStream Doc Source 541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559 fn chunkedStream (io_r : *std .Io .Reader , w : *Writer , limit : std .Io .Limit ) std .Io .Reader .StreamError !usize {
const reader : *Reader = @alignCast (@fieldParentPtr ("interface" , io_r ));
const chunk_len_ptr = switch (reader .state ) {
.ready => return error .EndOfStream ,
.body_remaining_chunk_len => |*x | x ,
else => unreachable ,
};
return chunkedReadEndless (reader , w , limit , chunk_len_ptr ) catch |err | switch (err ) {
error .ReadFailed , error .WriteFailed => |e | return e ,
error .EndOfStream => {
reader .body_err = error .HttpChunkTruncated ;
return error .ReadFailed ;
},
else => |e | {
reader .body_err = e ;
return error .ReadFailed ;
},
};
}