aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/pkg/harfbuzz/version.zig
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-04 19:22:04 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-05 01:23:06 +0300
commit41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch)
tree3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/pkg/harfbuzz/version.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/pkg/harfbuzz/version.zig')
-rw-r--r--vendor/libghostty-vt/pkg/harfbuzz/version.zig47
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, &micro);
+ 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,
+ }));
+}