type_utils.bl

typeid

typeid :: fn (v: type) u64

Returns unique type identificator in compile-time.

File: type_utils.bl

is_number

is_number :: fn (T: type) bool

Returns true if the T type is an integer type.

File: type_utils.bl

is_real

is_real :: fn (T: type) bool

Returns true if the T type is an floating point number type.

File: type_utils.bl

is_real_or_number

is_real_or_number :: fn (T: type) bool

Returns true if the T type is an integer or floating point number type (f32 or f64).

File: type_utils.bl

is_signed_number

is_signed_number :: fn (T: type) bool

Returns true if the T type is a signed integer type.

File: type_utils.bl

is_pointer

is_pointer :: fn (T: type) bool

Returns true if the T type is a pointer type.

File: type_utils.bl

is_function

is_function :: fn (T: type) bool

Returns true if the T type is a function type.

File: type_utils.bl

is_struct

is_struct :: fn (T: type) bool

Returns true if the T type is a struct type.

File: type_utils.bl

is_union

is_union :: fn (T: type) bool

Returns true if the T type is a union type.

File: type_utils.bl

is_enum

is_enum :: fn (T: type) bool

Returns true if the T type is an enumerator type.

File: type_utils.bl

enum_variant_count

enum_variant_count :: fn (TEnum: type) s64

Resolve number of enum type variants.

File: type_utils.bl

enum_variant_name

enum_variant_name :: fn (T: type, index: s64) string_view #inline

Resolve enum variant name.

File: type_utils.bl

enum_variant_value

enum_variant_value :: fn (T: type, index: s64) T #inline

Resolve enum variant value.

File: type_utils.bl

struct_member_count

struct_member_count :: fn (TStruct: type) s64

Resolve number of struct type members.

File: type_utils.bl

get_struct_member_type

get_struct_member_type :: fn (TStruct: type, index: s64) type

Returns type of struct member at index. The index value must be in range from 0 to struct_member_count(T)-1.

File: type_utils.bl

struct_members_to_enum

struct_members_to_enum :: fn (TStruct: type) type

Generates enum type from the struct type.

Creates enum with variants named after struct members respecting order in which members were declared in the struct type.

File: type_utils.bl

has_member

has_member :: fn (TStruct: type, member_name: string_view) bool

File: type_utils.bl

member_offset_bytes

member_offset_bytes :: fn { 
    member_offset_bytes_impl; 
    member_offset_bytes_with_typeinfo_impl; 
}

File: type_utils.bl

member_ptr

member_ptr :: fn { 
    member_ptr_impl; 
    member_ptr_with_type_info_impl; 
}

File: type_utils.bl

number_type

number_type :: fn (size_bytes: usize, is_signed: bool) type

Returns signed or unsigned builtin number type of the requested size. The size_bytes must be 1, 2, 4 or 8 Bytes.

File: type_utils.bl