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 › zstd › Decompress › Frame › Zstandard › Decode › updateState Private Function updateState Doc Source Private Function std.compress.zstd.Decompress.Frame.Zstandard.Decode.updateState
fn updateState (
self : *Decode ,
comptime choice : WhichFse ,
bit_reader : *ReverseBitReader ,
) error Params File compress/zstd/Decompress.zig: 648
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666 fn updateState (
self : *Decode ,
comptime choice : WhichFse ,
bit_reader : *ReverseBitReader ,
) error { MalformedFseBits , EndOfStream }!void {
switch (@field (self , @tagName (choice )).table ) {
.rle => {},
.fse => |table | {
const data = table [@field (self , @tagName (choice )).state ];
const T = @TypeOf (@field (self , @tagName (choice ))).State ;
const bits_summand = try bit_reader .readBitsNoEof (T , data .bits );
const next_state = std .math .cast (
@TypeOf (@field (self , @tagName (choice ))).State ,
data .baseline + bits_summand ,
) orelse return error .MalformedFseBits ;
@field (self , @tagName (choice )).state = next_state ;
},
}
}
TODO: don't use
@field