zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 4b280ac7e9730a30cb3a03350711a13cf45c5dfc (tree)
parent 2922a483099a0a45d4cbaf2bc7c3b43fcebe4e77
Author: Rohlem <rohlemF@gmail.com>
Date:   Thu, 17 Dec 2020 15:55:05 +0100

add std.zig.system.windows version check utility functions

Diffstat:
Mlib/std/zig/system/windows.zig | 16++++++++++++++++
1 file changed, 16 insertions(+), 0 deletions(-)

diff --git a/lib/std/zig/system/windows.zig b/lib/std/zig/system/windows.zig @@ -43,3 +43,19 @@ pub fn detectRuntimeVersion() WindowsVersion { return @intToEnum(WindowsVersion, version); } + +/// Returns whether the target os versions are uniformly at least as new as the argument: +/// true/false if this holds for the entire target range, null if it only holds for some. +pub fn targetVersionIsAtLeast(requested_version: WindowsVersion) ?bool { + const requested = @enumToInt(requested_version); + const version_range = std.builtin.os.version_range.windows; + const target_min = @enumToInt(version_range.min); + const target_max = @enumToInt(version_range.max); + return if (target_max < requested) false else if (target_min >= requested) true else null; +} + +/// Returns whether the runtime os version is at least as new as the argument. +pub fn runtimeVersionIsAtLeast(requested_version: WindowsVersion) bool { + return targetVersionIsAtLeast(requested_version) orelse + (@enumToInt(detectRuntimeVersion()) >= @enumToInt(requested_version)); +}