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/ › os/ › uefi/ › protocol/ › service_binding.zig
service_binding.zig
Index
File
Code
const std = @import ("std" );
const uefi = std .os .uefi ;
const Guid = uefi .Guid ;
const Handle = uefi .Handle ;
const Status = uefi .Status ;
const Error = Status .Error ;
const cc = uefi .cc ;
pub fn ServiceBinding (service_guid : Guid ) type {
return struct {
const Self = @This ();
_create_child : *const fn (*Self , *?Handle ) callconv (cc ) Status ,
_destroy_child : *const fn (*Self , Handle ) callconv (cc ) Status ,
pub const CreateChildError = uefi .UnexpectedError || error {
InvalidParameter ,
OutOfResources ,
} || Error ;
pub const DestroyChildError = uefi .UnexpectedError || error {
Unsupported ,
InvalidParameter ,
AccessDenied ,
} || Error ;
pub fn createChild (self : *Self ) CreateChildError !Handle {
var handle : ?Handle = null ;
switch (self ._create_child (self , &handle )) {
.success => return handle orelse error .Unexpected ,
else => |status | {
try status .err ();
return uefi .unexpectedStatus (status );
},
}
}
pub fn addToHandle (self : *Self , handle : Handle ) CreateChildError !void {
switch (self ._create_child (self , @ptrCast (@constCast (&handle )))) {
.success => {},
else => |status | {
try status .err ();
return uefi .unexpectedStatus (status );
},
}
}
pub fn destroyChild (self : *Self , handle : Handle ) DestroyChildError !void {
switch (self ._destroy_child (self , handle )) {
.success => {},
else => |status | {
try status .err ();
return uefi .unexpectedStatus (status );
},
}
}
pub const guid align (8 ) = service_guid ;
};
}