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.

FixedFileInfo

https://learn.microsoft.com/en-us/windows/win32/api/verrsrc/ns-verrsrc-vs_fixedfileinfo

res.FixedFileInfo
pub const FixedFileInfo = struct

File

Code

pub const FixedFileInfo = struct {
    file_version: Version = .{},
    product_version: Version = .{},
    file_flags_mask: u32 = 0,
    file_flags: u32 = 0,
    file_os: u32 = 0,
    file_type: u32 = 0,
    file_subtype: u32 = 0,
    file_date: Version = .{}, // TODO: I think this is always all zeroes?

    pub const signature = 0xFEEF04BD;
    // Note: This corresponds to a version of 1.0
    pub const version = 0x00010000;

    pub const byte_len = 0x34;
    pub const key = std.unicode.utf8ToUtf16LeStringLiteral("VS_VERSION_INFO");

    pub const Version = struct {
        parts: [4]u16 = @splat(0),

        pub fn mostSignificantCombinedParts(self: Version) u32 {
            return (@as(u32, self.parts[0]) << 16) + self.parts[1];
        }

        pub fn leastSignificantCombinedParts(self: Version) u32 {
            return (@as(u32, self.parts[2]) << 16) + self.parts[3];
        }
    };

    pub fn write(self: FixedFileInfo, writer: *std.Io.Writer) !void {
        try writer.writeInt(u32, signature, .little);
        try writer.writeInt(u32, version, .little);
        try writer.writeInt(u32, self.file_version.mostSignificantCombinedParts(), .little);
        try writer.writeInt(u32, self.file_version.leastSignificantCombinedParts(), .little);
        try writer.writeInt(u32, self.product_version.mostSignificantCombinedParts(), .little);
        try writer.writeInt(u32, self.product_version.leastSignificantCombinedParts(), .little);
        try writer.writeInt(u32, self.file_flags_mask, .little);
        try writer.writeInt(u32, self.file_flags, .little);
        try writer.writeInt(u32, self.file_os, .little);
        try writer.writeInt(u32, self.file_type, .little);
        try writer.writeInt(u32, self.file_subtype, .little);
        try writer.writeInt(u32, self.file_date.mostSignificantCombinedParts(), .little);
        try writer.writeInt(u32, self.file_date.leastSignificantCombinedParts(), .little);
    }
}