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 › EfiMain
EfiMain
start.EfiMain
fn EfiMain (handle : uefi .Handle , system_table : *uefi .tables .SystemTable ) callconv (.c ) usize
File
Code
fn EfiMain (handle : uefi .Handle , system_table : *uefi .tables .SystemTable ) callconv (.c ) usize {
uefi .handle = handle ;
uefi .system_table = system_table ;
switch (@typeInfo (@TypeOf (root .main )).@"fn" .return_type .?) {
noreturn => {
root .main ();
},
void => {
root .main ();
return 0 ;
},
uefi .Status => {
return @backingInt (root .main ());
},
uefi .Error !void => {
root .main () catch |err | switch (err ) {
error .Unexpected => @panic ("EfiMain: unexpected error" ),
else => {
const status = uefi .Status .fromError (@errorCast (err ));
return @backingInt (status );
},
};
return 0 ;
},
else => @compileError (
"expected return type of main to be 'void', 'noreturn', " ++
"'uefi.Status', or 'uefi.Error!void'" ,
),
}
}