The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Name

SPVM::Document::NativeAPI::Type - Type Native APIs

Description

The type native APIs in SPVM are the APIs to get type information.

Usage

  SPVM_API_TYPE* api_type = env->api->type;

Native APIs

can_assign

int32_t (*can_assign)(void* runtime, void* dist_basic_type, int32_t dist_type_dimension, int32_t dist_type_flag, void* src_basic_type, int32_t src_type_dimension, int32_t src_type_flag);

If the source type given by src_basic_type, src_type_dimension, and src_type_flag can be assigned to the dist type given by dist_basic_type, dist_type_dimension, and dist_type_flag , returns 1. Otherwise, returns 0.

get_type_width

int32_t (*get_type_width)(void* runtime, void* basic_type, int32_t type_dimension, int32_t type_flag);

Returns the type width of the type given by basic_type, type_dimension, and type_flag.

is_object_type

int32_t (*is_object_type)(void* runtime, void* basic_type, int32_t type_dimension, int32_t type_flag);

If the type given by basic_type, type_dimension, and type_flag is an object type, returns 1. Otherwise, returns 0.

is_any_object_type

int32_t (*is_any_object_type)(void* runtime, void* basic_type, int32_t type_dimension, int32_t type_flag);

If the type given by basic_type, type_dimension, and type_flag is the any object type objct, returns 1. Otherwise, returns 0.

is_object_array_type

int32_t (*is_object_array_type)(void* runtime, void* basic_type, int32_t type_dimension, int32_t type_flag);

If the type given by basic_type, type_dimension, and type_flag is an object array type, returns 1. Otherwise, returns 0.

is_any_object_array_type

int32_t (*is_any_object_array_type)(void* runtime, void* basic_type, int32_t type_dimension, int32_t type_flag);

If the type given by basic_type, type_dimension, and type_flag is the any object array type objct[], returns 1. Otherwise, returns 0.

Native API IDs

  0 can_assign
  1 get_type_width
  2 is_object_type
  3 is_any_object_type
  4 is_object_array_type
  5 is_any_object_array_type

See Also

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License