extern struct KNOWNFOLDERID [src]

Alias for std.os.windows.GUID

Fields

Data1: u32
Data2: u16
Data3: u16
Data4: [8]u8

Members

Source

pub const GUID = extern struct { Data1: u32, Data2: u16, Data3: u16, Data4: [8]u8, const hex_offsets = switch (builtin.target.cpu.arch.endian()) { .big => [16]u6{ 0, 2, 4, 6, 9, 11, 14, 16, 19, 21, 24, 26, 28, 30, 32, 34, }, .little => [16]u6{ 6, 4, 2, 0, 11, 9, 16, 14, 19, 21, 24, 26, 28, 30, 32, 34, }, }; pub fn parse(s: []const u8) GUID { assert(s[0] == '{'); assert(s[37] == '}'); return parseNoBraces(s[1 .. s.len - 1]) catch @panic("invalid GUID string"); } pub fn parseNoBraces(s: []const u8) !GUID { assert(s.len == 36); assert(s[8] == '-'); assert(s[13] == '-'); assert(s[18] == '-'); assert(s[23] == '-'); var bytes: [16]u8 = undefined; for (hex_offsets, 0..) |hex_offset, i| { bytes[i] = (try std.fmt.charToDigit(s[hex_offset], 16)) << 4 | try std.fmt.charToDigit(s[hex_offset + 1], 16); } return @as(GUID, @bitCast(bytes)); } }