diff options
Diffstat (limited to 'vendor/libghostty-vt/pkg/harfbuzz/version.zig')
| -rw-r--r-- | vendor/libghostty-vt/pkg/harfbuzz/version.zig | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/pkg/harfbuzz/version.zig b/vendor/libghostty-vt/pkg/harfbuzz/version.zig new file mode 100644 index 00000000..dbe25b52 --- /dev/null +++ b/vendor/libghostty-vt/pkg/harfbuzz/version.zig @@ -0,0 +1,47 @@ +const std = @import("std"); +const c = @import("c.zig").c; + +pub const Version = struct { + major: u32, + minor: u32, + micro: u32, +}; + +/// Returns library version as three integer components. +pub fn version() Version { + var major: c_uint = 0; + var minor: c_uint = 0; + var micro: c_uint = 0; + c.hb_version(&major, &minor, µ); + return .{ .major = major, .minor = minor, .micro = micro }; +} + +/// Tests the library version against a minimum value, as three integer components. +pub fn versionAtLeast(vsn: Version) bool { + return c.hb_version_atleast( + vsn.major, + vsn.minor, + vsn.micro, + ) > 0; +} + +/// Returns library version as a string with three components. +pub fn versionString() [:0]const u8 { + const res = c.hb_version_string(); + return std.mem.sliceTo(res, 0); +} + +test { + const testing = std.testing; + + // Should be able to get the version + const vsn = version(); + try testing.expect(vsn.major > 0); + + // Should be at least version 1 + try testing.expect(versionAtLeast(.{ + .major = 1, + .minor = 0, + .micro = 0, + })); +} |
