is this a cursed way to do it
local fn __internal_to_string<T, U>(i64 args, string fmt) {
T arg = args.yield(U);
i32 length = io::snprintf(nil, 0, fmt, arg);
string res = (string)malloc(length);
io::sprintf(res, fmt, arg);
return res;
}
if ty.contains("*") {
return __internal_to_string<i64>(args, "%p");
}
if ty.starts_with("i8") {
return __internal_to_string<i8, i8>(args, "%d");
}
if ty.starts_with("i16") {
return __internal_to_string<i16, i16>(args, "%d");
}
if ty.starts_with("i32") {
return __internal_to_string<i32, i32>(args, "%d");
}
if ty.starts_with("i64") {
return __internal_to_string<i64, i64>(args, "%ld");
}
if ty.starts_with("u8") {
return __internal_to_string_split<i32, u8>(args, "%u");
}
if ty.starts_with("u16") {
return __internal_to_string_split<i32, u16>(args, "%u");
}
if ty.starts_with("u32") {
return __internal_to_string_split<i32, u32>(args, "%u");
}
if ty.starts_with("u64") {
return __internal_to_string_split<i64, u64>(args, "%lu");
}
if ty.starts_with("f32") {
return __internal_to_string_split<f64, f32>(args, "%f");
}
if ty.starts_with("f64") {
return __internal_to_string<f64, f64>(args, "%f");
}
// ...
``` runtime primitive type to string






what else should it be?








i finally made an anti-crash loop extension to crashhandler for myself