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 › compress › flate › Compress › Huffman › rebaseInner Private Function rebaseInner Doc Source Private Function std.compress.flate.Compress.Huffman.rebaseInner
fn rebaseInner (w : *Writer , preserve : usize , capacity : usize , eos : bool ) Writer .Error !void Params w : *Writer preserve : usize capacity : usize eos : bool File compress/flate/Compress.zig: 2352
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373 fn rebaseInner (w : *Writer , preserve : usize , capacity : usize , eos : bool ) Writer .Error !void {
const h : *Huffman = @fieldParentPtr ("writer" , w );
assert (preserve + capacity <= w .buffer .len );
if (eos ) assert (capacity == w .buffer .len );
const preserved = @min (w .end , preserve );
var remaining = w .buffer [0 .. w .end - preserved ];
while (remaining .len > max_tokens ) { // not >= so there is always a block down below
const bytes = remaining [0 ..max_tokens ];
remaining = remaining [max_tokens ..];
try h .outputBytes (bytes , false );
}
// eos check required for empty block
if (w .buffer .len - (remaining .len + preserved ) < capacity or eos ) {
const bytes = remaining ;
remaining = &.{};
try h .outputBytes (bytes , eos );
}
_ = w .consume (w .end - preserved - remaining .len );
}