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 › start › wrapMain Private Function wrapMain Doc Source Private Function std.start.wrapMain
inline fn wrapMain (result : anytype ) u8 Params File start.zig: 840
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865 inline fn wrapMain (result : anytype ) u8 {
const ReturnType = @TypeOf (result );
switch (ReturnType ) {
void => return 0 ,
noreturn => unreachable ,
u8 => return result ,
else => {},
}
if (@typeInfo (ReturnType ) != .error_union ) @compileError (bad_main_ret );
const unwrapped_result = result catch |err | {
std .log .err ("{t}" , .{err });
switch (native_os ) {
.freestanding , .other => {},
else => if (@errorReturnTrace ()) |trace | std .debug .dumpErrorReturnTrace (trace ),
}
return 1 ;
};
return switch (@TypeOf (unwrapped_result )) {
noreturn => unreachable ,
void => 0 ,
u8 => unwrapped_result ,
else => @compileError (bad_main_ret ),
};
}