No, it is not possible to get the function name from the function type.
The reason is that a function may be an anonymous function without name (although currently in zig there are no anonymous functions and the functions always have a name).
To get around this limitation you can have a struct with a name and a function.
Also it is possible to list all the functions of a namespace using @typeInfo(T).Struct.decls where T is the struct, and the resulting decls contains public named declarations.
Finally it is possible to lookup a public function by its name from a namespace, using @field(T, name) where T is the namespace, name is a string of the function name and @field returns the function value.
This is essentially what a stack trace does. It takes a pointer to an address in code and finds the current function and all parent functions. You could check out and leverage the stack trace dumping code in std.debug for this. Note that it will only work if your binary still has debug symbols, you won’t be able to get the function name otherwise.
That being said, using a stack tracer is probably silly for what you’re wanting to do. Here’s one solution that might work for you:
If you’re not able to modify FnType to include the name, you could create a global std.AutoHashMap(*const fn() void, []const u8) that saves a mapping between every function pointer/name.