diff --git a/base.jai b/base.jai index 464f623..873bab0 100644 --- a/base.jai +++ b/base.jai @@ -12,6 +12,17 @@ align_of :: ($T: Type) -> uint #expand { }; } +default_of :: ($T: Type) -> T #expand { + default: T; + return default; +} + +zero_of :: ($T: Type) -> T #expand { + zero: T = ---; + memset(*zero, 0, size_of(T)); + return zero; +} + bitcast :: ($T: Type, expr: Code) -> T #expand { value := expr; return (*value).(*T).*; diff --git a/utils.jai b/utils.jai index df3d526..68ed4df 100644 --- a/utils.jai +++ b/utils.jai @@ -8,11 +8,6 @@ c_call :: (block: Code) #expand { } } -zero_value :: ($T: Type) -> T #expand { - zero: T; - return zero; -} - check_type_tag :: ($$T: Type, tag: Type_Info_Tag) -> bool, *Type_Info { #if is_constant(T) { info :: type_info(T);