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 › os › linux › bpf › Insn › imm_reg Private Function imm_reg Doc Source Private Function std.os.linux.bpf.Insn.imm_reg
fn imm_reg (code : u8 , dst : Reg , src : anytype , off : i16 ) Insn Params code : u8 dst : Reg src off : i16 File os/linux/bpf.zig: 537
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561 fn imm_reg (code : u8 , dst : Reg , src : anytype , off : i16 ) Insn {
const imm_or_reg = if (@TypeOf (src ) == Reg or @typeInfo (@TypeOf (src )) == .enum_literal )
ImmOrReg { .reg = @as (Reg , src ) }
else
ImmOrReg { .imm = src };
const src_type : u8 = switch (imm_or_reg ) {
.imm => K ,
.reg => X ,
};
return Insn {
.code = code | src_type ,
.dst = @backingInt (dst ),
.src = switch (imm_or_reg ) {
.imm => 0 ,
.reg => |r | @backingInt (r ),
},
.off = off ,
.imm = switch (imm_or_reg ) {
.imm => |i | i ,
.reg => 0 ,
},
};
}