aboutsummaryrefslogtreecommitdiff
path: root/src/meta.zig
diff options
context:
space:
mode:
authorGravatar Alexander <alexkuz@gmail.com> 2022-07-09 15:45:38 +0400
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-07-09 05:09:16 -0700
commit7d1c9fa1a471d180c078a860c4885478f334bdf5 (patch)
tree1c7fa59320147142c828dc7ca1d38bbda3722839 /src/meta.zig
parentdd5996379d3783e1982f156056dc550e365920d8 (diff)
downloadbun-7d1c9fa1a471d180c078a860c4885478f334bdf5.tar.gz
bun-7d1c9fa1a471d180c078a860c4885478f334bdf5.tar.zst
bun-7d1c9fa1a471d180c078a860c4885478f334bdf5.zip
Migrate to Zig v0.10.0
Diffstat (limited to 'src/meta.zig')
-rw-r--r--src/meta.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/meta.zig b/src/meta.zig
index afc502d58..c104e378d 100644
--- a/src/meta.zig
+++ b/src/meta.zig
@@ -10,3 +10,17 @@ pub fn ReturnOfType(comptime Type: type) type {
const typeinfo: std.builtin.TypeInfo.Fn = @typeInfo(Type);
return typeinfo.return_type orelse void;
}
+
+// partially emulates behaviour of @typeName in previous Zig versions,
+// converting "some.namespace.MyType" to "MyType"
+pub fn typeBaseName(comptime fullname: []const u8) []const u8 {
+
+ // leave type name like "namespace.WrapperType(namespace.MyType)" as it is
+ const baseidx = comptime std.mem.indexOf(u8, fullname, "(");
+ if (baseidx != null) return fullname;
+
+ const idx = comptime std.mem.lastIndexOf(u8, fullname, ".");
+
+ const name = if (idx == null) fullname else fullname[(idx.? + 1)..];
+ return comptime std.fmt.comptimePrint("{s}", .{name});
+}