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 standard library.
std › zig › WindowsSdk › MsvcLibDir › findInstancesDirViaSetup Private Function findInstancesDirViaSetup Doc Source Private Function std.zig.WindowsSdk.MsvcLibDir.findInstancesDirViaSetup
fn findInstancesDirViaSetup (gpa : Allocator , io : Io , registry : *Registry ) error Params File zig/WindowsSdk.zig: 654
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677 fn findInstancesDirViaSetup (gpa : Allocator , io : Io , registry : *Registry ) error { OutOfMemory , PathNotFound }!Dir {
const vs_setup_key_path = L ("Microsoft\\VisualStudio\\Setup" );
const vs_setup_key = registry .openSoftwareKey (.{ .root = .local_machine }, vs_setup_key_path ) catch |err | switch (err ) {
error .KeyNotFound => return error .PathNotFound ,
};
defer vs_setup_key .close ();
const packages_path = vs_setup_key .getString (gpa , .{ .name = L ("CachePath" ) }, .wtf8 ) catch |err | switch (err ) {
error .NotAString ,
error .ValueNameNotFound ,
error .StringNotFound ,
=> return error .PathNotFound ,
error .OutOfMemory => |e | return e ,
};
defer gpa .free (packages_path );
if (!std .fs .path .isAbsolute (packages_path )) return error .PathNotFound ;
const instances_path = try std .fs .path .join (gpa , &.{ packages_path , "_Instances" });
defer gpa .free (instances_path );
return Dir .openDirAbsolute (io , instances_path , .{ .iterate = true }) catch return error .PathNotFound ;
}