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 library itself.
Zig › std/ › start.zig › wrapMain
wrapMain
start.wrapMain
inline fn wrapMain (result : anytype ) u8
File
Code
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 ),
};
}