fx: implement a proper value-type mechanism

This commit is contained in:
2026-05-17 17:09:05 +01:00
parent 65a7a025c5
commit f1258489d1
56 changed files with 1343 additions and 1112 deletions
+30
View File
@@ -0,0 +1,30 @@
#include <fx/value-type.h>
bool fx_type_is_value_type(fx_type_id ty)
{
return ty->a.p00 == __FX_VALUE_TYPE_BASEID;
}
unsigned int __fx_type_get_value_type(fx_type_id ty)
{
if (ty->a.p00 != __FX_VALUE_TYPE_BASEID) {
return 0;
}
return ty->a.p01;
}
/*** CLASS DEFINITION *********************************************************/
FX_TYPE_CLASS_BEGIN(fx_value_type)
FX_TYPE_VTABLE_INTERFACE_BEGIN(fx_object, FX_TYPE_OBJECT)
FX_INTERFACE_ENTRY(to_string) = NULL;
FX_TYPE_VTABLE_INTERFACE_END(fx_object, FX_TYPE_OBJECT)
FX_TYPE_CLASS_END(fx_value_type)
FX_TYPE_DEFINITION_BEGIN(fx_value_type)
type_info->ty_id.a.p00 = __FX_VALUE_TYPE_BASEID;
type_info->ty_id.a.p01 = 0;
FX_TYPE_NAME("fx.value-type");
FX_TYPE_CLASS(fx_value_type_class);
FX_TYPE_DEFINITION_END(fx_value_type)