Function getInfo [src]

If buffer is too small to contain all of the info, this function returns Error.BufferTooSmall. You should call getInfoSize first to determine how big the buffer should be to safely call this function.

Prototype

pub fn getInfo( self: *const File, comptime info: std.meta.Tag(Info), buffer: []align(@alignOf(@FieldType(Info, @tagName(info)))) u8, ) GetInfoError!*@FieldType(Info, @tagName(info))

Parameters

self: *const Fileinfo: std.meta.Tag(Info)buffer: []align(@alignOf(@FieldType(Info, @tagName(info)))) u8

Possible Errors

BufferTooSmall
DeviceError GetInfoSizeError
NoMedia GetInfoSizeError
Unexpected UnexpectedError
Unsupported GetInfoSizeError
VolumeCorrupted GetInfoSizeError

Source

pub fn getInfo( self: *const File, comptime info: std.meta.Tag(Info), buffer: []align(@alignOf(@FieldType(Info, @tagName(info)))) u8, ) GetInfoError!*@FieldType(Info, @tagName(info)) { const InfoType = @FieldType(Info, @tagName(info)); var len = buffer.len; switch (self._get_info( self, &InfoType.guid, &len, buffer.ptr, )) { .success => return @as(*InfoType, @ptrCast(buffer.ptr)), .buffer_too_small => return Error.BufferTooSmall, .unsupported => return Error.Unsupported, .no_media => return Error.NoMedia, .device_error => return Error.DeviceError, .volume_corrupted => return Error.VolumeCorrupted, else => |status| return uefi.unexpectedStatus(status), } }