pub const OsVersion = union(enum) none: voidsemver: SemanticVersionwindows: Target.Os.WindowsVersion81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103pub const OsVersion = union(enum) {
none: void,
semver: SemanticVersion,
windows: Target.Os.WindowsVersion,
pub fn eql(a: OsVersion, b: OsVersion) bool {
const Tag = @typeInfo(OsVersion).@"union".tag_type.?;
const a_tag: Tag = a;
const b_tag: Tag = b;
if (a_tag != b_tag) return false;
return switch (a) {
.none => true,
.semver => |a_semver| a_semver.order(b.semver) == .eq,
.windows => |a_windows| a_windows == b.windows,
};
}
pub fn eqlOpt(a: ?OsVersion, b: ?OsVersion) bool {
if (a == null and b == null) return true;
if (a == null or b == null) return false;
return OsVersion.eql(a.?, b.?);
}
}