From 7d4d8fa55b98269666a8fc1f73795a78c10bd073 Mon Sep 17 00:00:00 2001 From: Vincent Rischmann Date: Thu, 23 Nov 2023 21:35:16 +0100 Subject: add the fasFn helper --- helpers.zig | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'helpers.zig') diff --git a/helpers.zig b/helpers.zig index 1a56231..7bb695e 100644 --- a/helpers.zig +++ b/helpers.zig @@ -86,3 +86,19 @@ fn sliceFromValue(sqlite_value: *c.sqlite3_value) []const u8 { return value[0..size]; } + +// Returns true if the type T has a function named `name`. +pub fn hasFn(comptime T: type, comptime name: []const u8) bool { + if (!@hasDecl(T, name)) { + return false; + } + + const decl = @field(T, name); + const decl_type = @TypeOf(decl); + const decl_type_info = @typeInfo(decl_type); + + return switch (decl_type_info) { + .Fn => true, + else => false, + }; +} -- cgit v1.2.3