• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef __ANI_H__
17 #define __ANI_H__
18 // NOLINTBEGIN
19 
20 #ifdef __cplusplus
21 #include <cstdarg>
22 #include <cstddef>
23 #include <cstdint>
24 #else
25 #include <stdarg.h>
26 #include <stddef.h>
27 #include <stdint.h>
28 #endif
29 
30 #define ANI_VERSION_1 1
31 
32 #define ANI_FALSE 0
33 #define ANI_TRUE 1
34 
35 typedef size_t ani_size;
36 
37 // Primitive types:
38 typedef uint8_t ani_boolean;
39 typedef uint32_t ani_char;
40 typedef int8_t ani_byte;
41 typedef int16_t ani_short;
42 typedef int32_t ani_int;
43 typedef int64_t ani_long;
44 typedef float ani_float;
45 typedef double ani_double;
46 
47 // Reference types:
48 #ifdef __cplusplus
49 class __ani_ref {};
50 class __ani_module : public __ani_ref {};
51 class __ani_namespace : public __ani_ref {};
52 class __ani_object : public __ani_ref {};
53 class __ani_fn_object : public __ani_object {};
54 class __ani_enum_value : public __ani_object {};
55 class __ani_error : public __ani_object {};
56 class __ani_promise : public __ani_object {};
57 class __ani_tuple_value : public __ani_object {};
58 class __ani_type : public __ani_object {};
59 class __ani_arraybuffer : public __ani_object {};
60 class __ani_string : public __ani_object {};
61 class __ani_stringliteral : public __ani_string {};
62 class __ani_class : public __ani_type {};
63 class __ani_enum : public __ani_type {};
64 class __ani_tuple : public __ani_type {};
65 class __ani_fixedarray : public __ani_object {};
66 class __ani_fixedarray_boolean : public __ani_fixedarray {};
67 class __ani_fixedarray_char : public __ani_fixedarray {};
68 class __ani_fixedarray_byte : public __ani_fixedarray {};
69 class __ani_fixedarray_short : public __ani_fixedarray {};
70 class __ani_fixedarray_int : public __ani_fixedarray {};
71 class __ani_fixedarray_long : public __ani_fixedarray {};
72 class __ani_fixedarray_float : public __ani_fixedarray {};
73 class __ani_fixedarray_double : public __ani_fixedarray {};
74 class __ani_fixedarray_ref : public __ani_fixedarray {};
75 typedef __ani_ref *ani_ref;
76 typedef __ani_module *ani_module;
77 typedef __ani_namespace *ani_namespace;
78 typedef __ani_object *ani_object;
79 typedef __ani_fn_object *ani_fn_object;
80 typedef __ani_enum_value *ani_enum_value;
81 typedef __ani_error *ani_error;
82 typedef __ani_promise *ani_promise;
83 typedef __ani_tuple_value *ani_tuple_value;
84 typedef __ani_type *ani_type;
85 typedef __ani_arraybuffer *ani_arraybuffer;
86 typedef __ani_string *ani_string;
87 typedef __ani_stringliteral *ani_stringliteral;
88 typedef __ani_class *ani_class;
89 typedef __ani_enum *ani_enum;
90 typedef __ani_tuple *ani_tuple;
91 typedef __ani_fixedarray *ani_fixedarray;
92 typedef __ani_fixedarray_boolean *ani_fixedarray_boolean;
93 typedef __ani_fixedarray_char *ani_fixedarray_char;
94 typedef __ani_fixedarray_byte *ani_fixedarray_byte;
95 typedef __ani_fixedarray_short *ani_fixedarray_short;
96 typedef __ani_fixedarray_int *ani_fixedarray_int;
97 typedef __ani_fixedarray_long *ani_fixedarray_long;
98 typedef __ani_fixedarray_float *ani_fixedarray_float;
99 typedef __ani_fixedarray_double *ani_fixedarray_double;
100 typedef __ani_fixedarray_ref *ani_fixedarray_ref;
101 #else   // __cplusplus
102 struct __ani_ref;
103 typedef struct __ani_ref *ani_ref;
104 typedef ani_ref ani_module;
105 typedef ani_ref ani_namespace;
106 typedef ani_ref ani_object;
107 typedef ani_object ani_fn_object;
108 typedef ani_object ani_enum_value;
109 typedef ani_object ani_error;
110 typedef ani_object ani_promise;
111 typedef ani_object ani_tuple_value;
112 typedef ani_object ani_type;
113 typedef ani_object ani_arraybuffer;
114 typedef ani_object ani_string;
115 typedef ani_string ani_stringliteral;
116 typedef ani_type ani_class;
117 typedef ani_type ani_enum;
118 typedef ani_type ani_tuple;
119 typedef ani_object ani_fixedarray;
120 typedef ani_fixedarray ani_fixedarray_boolean;
121 typedef ani_fixedarray ani_fixedarray_char;
122 typedef ani_fixedarray ani_fixedarray_byte;
123 typedef ani_fixedarray ani_fixedarray_short;
124 typedef ani_fixedarray ani_fixedarray_int;
125 typedef ani_fixedarray ani_fixedarray_long;
126 typedef ani_fixedarray ani_fixedarray_float;
127 typedef ani_fixedarray ani_fixedarray_double;
128 typedef ani_fixedarray ani_fixedarray_ref;
129 #endif  // __cplusplus
130 
131 struct __ani_gref;
132 typedef struct __ani_gref *ani_gref;
133 
134 struct __ani_wref;
135 typedef struct __ani_wref *ani_wref;
136 
137 struct __ani_variable;
138 typedef struct __ani_variable *ani_variable;
139 
140 struct __ani_function;
141 typedef struct __ani_function *ani_function;
142 
143 struct __ani_field;
144 typedef struct __ani_field *ani_field;
145 
146 struct __ani_static_field;
147 typedef struct __ani_satic_field *ani_static_field;
148 
149 struct __ani_property;
150 typedef struct __ani_property *ani_property;
151 
152 struct __ani_method;
153 typedef struct __ani_method *ani_method;
154 
155 struct __ani_static_method;
156 typedef struct __ani_static_method *ani_static_method;
157 
158 struct __ani_cls_slot;
159 typedef struct __ani_cls_slot *ani_cls_slot;
160 
161 typedef void (*ani_finalizer)(void *data, void *hint);
162 
163 typedef enum {
164     ANI_KIND_BOOLEAN,
165     ANI_KIND_CHAR,
166     ANI_KIND_BYTE,
167     ANI_KIND_SHORT,
168     ANI_KIND_INT,
169     ANI_KIND_LONG,
170     ANI_KIND_FLOAT,
171     ANI_KIND_DOUBLE,
172     ANI_KIND_REF,
173 } ani_kind;
174 
175 typedef union {
176     ani_boolean z;
177     ani_char c;
178     ani_byte b;
179     ani_short s;
180     ani_int i;
181     ani_long l;
182     ani_float f;
183     ani_double d;
184     ani_ref r;
185 } ani_value;
186 
187 typedef struct {
188     const char *name;
189     const char *signature;
190     const void *pointer;
191 } ani_native_function;
192 
193 #ifdef __cplusplus
194 typedef struct __ani_vm ani_vm;
195 typedef struct __ani_env ani_env;
196 #else
197 typedef const struct __ani_vm_api *ani_vm;
198 typedef const struct __ani_interaction_api *ani_env;
199 #endif
200 
201 typedef enum {
202     ANI_OK,
203     ANI_ERROR,
204     ANI_INVALID_ARGS,
205     ANI_INVALID_TYPE,
206     ANI_INVALID_DESCRIPTOR,
207     ANI_PENDING_ERROR,
208     ANI_NOT_FOUND,
209     ANI_ALREADY_BINDED,
210     ANI_OUT_OF_REF,
211     ANI_OUT_OF_MEMORY,
212     ANI_OUT_OF_RANGE,
213     ANI_BUFFER_TO_SMALL,
214     // NOTE: Add necessary status codes
215 } ani_status;
216 
217 struct __ani_vm_api {
218     void *reserved0;
219     void *reserved1;
220     void *reserved2;
221     void *reserved3;
222 
223     ani_status (*DestroyVM)(ani_vm *vm);
224     ani_status (*GetEnv)(ani_vm *vm, uint32_t version, ani_env **result);
225     ani_status (*AttachThread)(ani_vm *vm, void *params, ani_env **result);
226     ani_status (*DetachThread)(ani_vm *vm);
227 };
228 
229 typedef struct {
230     const char *option;
231     void *option_data;
232 } ani_vm_option;
233 
234 #define ANI_EXPORT __attribute__((visibility("default")))
235 
236 #ifdef __cplusplus
237 extern "C" {
238 #endif
239 
240 ANI_EXPORT ani_status ANI_CreateVM(uint32_t version, size_t nr_options, const ani_vm_option *options, ani_vm **result);
241 ANI_EXPORT ani_status ANI_GetCreatedVMs(ani_vm **vms_buffer, ani_size vms_buffer_length, ani_size *result);
242 
243 // Prototypes of exported functions for a shared library.
244 ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result);
245 ANI_EXPORT ani_status ANI_Destructor(ani_vm *vm);
246 
247 #ifdef __cplusplus
248 }
249 #endif
250 
251 struct __ani_interaction_api {
252     void *reserved0;
253     void *reserved1;
254     void *reserved2;
255     void *reserved3;
256 
257     /**
258      * @brief Retrieves the version information.
259      *
260      * This function retrieves the version information and stores it in the result parameter.
261      *
262      * @param[in] env A pointer to the environment structure.
263      * @param[out] result A pointer to a variable where the version information will be stored.
264      * @return Returns a status code of type `ani_status` indicating success or failure.
265      */
266     ani_status (*GetVersion)(ani_env *env, uint32_t *result);
267 
268     /**
269      * @brief Retrieves the Virtual Machine (VM) instance.
270      *
271      * This function retrieves the VM instance and stores it in the result parameter.
272      *
273      * @param[in] env A pointer to the environment structure.
274      * @param[out] result A pointer to the VM instance to be populated.
275      * @return Returns a status code of type `ani_status` indicating success or failure.
276      */
277     ani_status (*GetVM)(ani_env *env, ani_vm **result);
278 
279     /**
280      * @brief Checks if a reference is an object.
281      *
282      * This function determines whether the specified reference represents an object.
283      *
284      * @param[in] env A pointer to the environment structure.
285      * @param[in] ref The reference to check.
286      * @param[out] result A pointer to store the boolean result (true if the reference is an object, false otherwise).
287      * @return Returns a status code of type `ani_status` indicating success or failure.
288      */
289     ani_status (*Reference_IsObject)(ani_env *env, ani_ref ref, ani_boolean *result);
290 
291     /**
292      * @brief Checks if a reference is a functional object.
293      *
294      * This function determines whether the specified reference represents a functional object.
295      *
296      * @param[in] env A pointer to the environment structure.
297      * @param[in] ref The reference to check.
298      * @param[out] result A pointer to store the boolean result (true if the reference is a functional object, false
299      * otherwise).
300      * @return Returns a status code of type `ani_status` indicating success or failure.
301      */
302     ani_status (*Reference_IsFunctionalObject)(ani_env *env, ani_ref ref, ani_boolean *result);
303 
304     /**
305      * @brief Checks if a reference is an enum.
306      *
307      * This function determines whether the specified reference represents an enum.
308      *
309      * @param[in] env A pointer to the environment structure.
310      * @param[in] ref The reference to check.
311      * @param[out] result A pointer to store the boolean result (true if the reference is an enum, false otherwise).
312      * @return Returns a status code of type `ani_status` indicating success or failure.
313      */
314     ani_status (*Reference_IsEnum)(ani_env *env, ani_ref ref, ani_boolean *result);
315 
316     /**
317      * @brief Checks if a reference is a tuple.
318      *
319      * This function determines whether the specified reference represents a tuple.
320      *
321      * @param[in] env A pointer to the environment structure.
322      * @param[in] ref The reference to check.
323      * @param[out] result A pointer to store the boolean result (true if the reference is a tuple, false otherwise).
324      * @return Returns a status code of type `ani_status` indicating success or failure.
325      */
326     ani_status (*Reference_IsTuple)(ani_env *env, ani_ref ref, ani_boolean *result);
327 
328     /**
329      * @brief Checks if a reference is a string.
330      *
331      * This function determines whether the specified reference represents a string.
332      *
333      * @param[in] env A pointer to the environment structure.
334      * @param[in] ref The reference to check.
335      * @param[out] result A pointer to store the boolean result (true if the reference is a string, false otherwise).
336      * @return Returns a status code of type `ani_status` indicating success or failure.
337      */
338     ani_status (*Reference_IsString)(ani_env *env, ani_ref ref, ani_boolean *result);
339 
340     /**
341      * @brief Checks if a reference is a string literal.
342      *
343      * This function determines whether the specified reference represents a string literal.
344      *
345      * @param[in] env A pointer to the environment structure.
346      * @param[in] ref The reference to check.
347      * @param[out] result A pointer to store the boolean result (true if the reference is a string literal, false
348      * otherwise).
349      * @return Returns a status code of type `ani_status` indicating success or failure.
350      */
351     ani_status (*Reference_IsStringLiteral)(ani_env *env, ani_ref ref, ani_boolean *result);
352 
353     /**
354      * @brief Checks if a reference is a fixed array.
355      *
356      * This function determines whether the specified reference represents a fixed array.
357      *
358      * @param[in] env A pointer to the environment structure.
359      * @param[in] ref The reference to check.
360      * @param[out] result A pointer to store the boolean result (true if the reference is a fixed array, false
361      * otherwise).
362      * @return Returns a status code of type `ani_status` indicating success or failure.
363      */
364     ani_status (*Reference_IsFixedArray)(ani_env *env, ani_ref ref, ani_boolean *result);
365 
366     /**
367      * @brief Checks if a reference is a fixed array of booleans.
368      *
369      * This function determines whether the specified reference represents a fixed array of booleans.
370      *
371      * @param[in] env A pointer to the environment structure.
372      * @param[in] ref The reference to check.
373      * @param[out] result A pointer to store the boolean result (true if the reference is a fixed array of booleans,
374      * false otherwise).
375      * @return Returns a status code of type `ani_status` indicating success or failure.
376      */
377     ani_status (*Reference_IsFixedArray_Boolean)(ani_env *env, ani_ref ref, ani_boolean *result);
378 
379     /**
380      * @brief Checks if a reference is a fixed array of chars.
381      *
382      * This function determines whether the specified reference represents a fixed array of chars.
383      *
384      * @param[in] env A pointer to the environment structure.
385      * @param[in] ref The reference to check.
386      * @param[out] result A pointer to store the char result (true if the reference is a fixed array of chars, false
387      * otherwise).
388      * @return Returns a status code of type `ani_status` indicating success or failure.
389      */
390     ani_status (*Reference_IsFixedArray_Char)(ani_env *env, ani_ref ref, ani_boolean *result);
391 
392     /**
393      * @brief Checks if a reference is a fixed array of bytes.
394      *
395      * This function determines whether the specified reference represents a fixed array of bytes.
396      *
397      * @param[in] env A pointer to the environment structure.
398      * @param[in] ref The reference to check.
399      * @param[out] result A pointer to store the byte result (true if the reference is a fixed array of bytes, false
400      * otherwise).
401      * @return Returns a status code of type `ani_status` indicating success or failure.
402      */
403     ani_status (*Reference_IsFixedArray_Byte)(ani_env *env, ani_ref ref, ani_boolean *result);
404 
405     /**
406      * @brief Checks if a reference is a fixed array of shorts.
407      *
408      * This function determines whether the specified reference represents a fixed array of shorts.
409      *
410      * @param[in] env A pointer to the environment structure.
411      * @param[in] ref The reference to check.
412      * @param[out] result A pointer to store the short result (true if the reference is a fixed array of shorts, false
413      * otherwise).
414      * @return Returns a status code of type `ani_status` indicating success or failure.
415      */
416     ani_status (*Reference_IsFixedArray_Short)(ani_env *env, ani_ref ref, ani_boolean *result);
417 
418     /**
419      * @brief Checks if a reference is a fixed array of integers.
420      *
421      * This function determines whether the specified reference represents a fixed array of integers.
422      *
423      * @param[in] env A pointer to the environment structure.
424      * @param[in] ref The reference to check.
425      * @param[out] result A pointer to store the integer result (true if the reference is a fixed array of integers,
426      * false otherwise).
427      * @return Returns a status code of type `ani_status` indicating success or failure.
428      */
429     ani_status (*Reference_IsFixedArray_Int)(ani_env *env, ani_ref ref, ani_boolean *result);
430 
431     /**
432      * @brief Checks if a reference is a fixed array of longs.
433      *
434      * This function determines whether the specified reference represents a fixed array of longs.
435      *
436      * @param[in] env A pointer to the environment structure.
437      * @param[in] ref The reference to check.
438      * @param[out] result A pointer to store the long result (true if the reference is a fixed array of longs, false
439      * otherwise).
440      * @return Returns a status code of type `ani_status` indicating success or failure.
441      */
442     ani_status (*Reference_IsFixedArray_Long)(ani_env *env, ani_ref ref, ani_boolean *result);
443 
444     /**
445      * @brief Checks if a reference is a fixed array of floats.
446      *
447      * This function determines whether the specified reference represents a fixed array of floats.
448      *
449      * @param[in] env A pointer to the environment structure.
450      * @param[in] ref The reference to check.
451      * @param[out] result A pointer to store the float result (true if the reference is a fixed array of floats, false
452      * otherwise).
453      * @return Returns a status code of type `ani_status` indicating success or failure.
454      */
455     ani_status (*Reference_IsFixedArray_Float)(ani_env *env, ani_ref ref, ani_boolean *result);
456 
457     /**
458      * @brief Checks if a reference is a fixed array of doubles.
459      *
460      * This function determines whether the specified reference represents a fixed array of doubles.
461      *
462      * @param[in] env A pointer to the environment structure.
463      * @param[in] ref The reference to check.
464      * @param[out] result A pointer to store the double result (true if the reference is a fixed array of doubles, false
465      * otherwise).
466      * @return Returns a status code of type `ani_status` indicating success or failure.
467      */
468     ani_status (*Reference_IsFixedArray_Double)(ani_env *env, ani_ref ref, ani_boolean *result);
469 
470     /**
471      * @brief Checks if a reference is a fixed array of references.
472      *
473      * This function determines whether the specified reference represents a fixed array of references.
474      *
475      * @param[in] env A pointer to the environment structure.
476      * @param[in] ref The reference to check.
477      * @param[out] result A pointer to store the boolean result (true if the reference is a fixed array of references,
478      * false otherwise).
479      * @return Returns a status code of type `ani_status` indicating success or failure.
480      */
481     ani_status (*Reference_IsFixedArray_Ref)(ani_env *env, ani_ref ref, ani_boolean *result);
482 
483     /**
484      * @brief Creates a new object of a specified class using a constructor method.
485      *
486      * This function creates a new object of the given class and calls the specified constructor method with variadic
487      * arguments.
488      *
489      * @param[in] env A pointer to the environment structure.
490      * @param[in] cls The class of the object to create.
491      * @param[in] method The constructor method to invoke.
492      * @param[in] ... Variadic arguments to pass to the constructor method.
493      * @param[out] result A pointer to store the object return value.
494      * @return Returns a status code of type `ani_status` indicating success or failure.
495      */
496     ani_status (*Object_New)(ani_env *env, ani_class cls, ani_method method, ani_object *result, ...);
497 
498     /**
499      * @brief Creates a new object of a specified class using a constructor method (array-based).
500      *
501      * This function creates a new object of the given class and calls the specified constructor method with arguments
502      * provided in an array.
503      *
504      * @param[in] env A pointer to the environment structure.
505      * @param[in] cls The class of the object to create.
506      * @param[in] method The constructor method to invoke.
507      * @param[in] args An array of arguments to pass to the constructor method.
508      * @param[out] result A pointer to store the object return value.
509      * @return Returns a status code of type `ani_status` indicating success or failure.
510      */
511     ani_status (*Object_New_A)(ani_env *env, ani_class cls, ani_method method, ani_object *result,
512                                const ani_value *args);
513 
514     /**
515      * @brief Creates a new object of a specified class using a constructor method (variadic arguments).
516      *
517      * This function creates a new object of the given class and calls the specified constructor method with a `va_list`
518      * of arguments.
519      *
520      * @param[in] env A pointer to the environment structure.
521      * @param[in] cls The class of the object to create.
522      * @param[in] method The constructor method to invoke.
523      * @param[in] args A `va_list` of arguments to pass to the constructor method.
524      * @param[out] result A pointer to store the object return value.
525      * @return Returns a status code of type `ani_status` indicating success or failure.
526      */
527     ani_status (*Object_New_V)(ani_env *env, ani_class cls, ani_method method, ani_object *result, va_list args);
528 
529     /**
530      * @brief Retrieves the type of a given object.
531      *
532      * This function retrieves the type of the specified object.
533      *
534      * @param[in] env A pointer to the environment structure.
535      * @param[in] object The object whose type is to be retrieved.
536      * @param[out] result A pointer to store the retrieved type.
537      * @return Returns a status code of type `ani_status` indicating success or failure.
538      */
539     ani_status (*Object_GetType)(ani_env *env, ani_object object, ani_type *result);
540 
541     /**
542      * @brief Checks if an object is an instance of a specified type.
543      *
544      * This function checks whether the given object is an instance of the specified type.
545      *
546      * @param[in] env A pointer to the environment structure.
547      * @param[in] object The object to check.
548      * @param[in] type The type to compare against.
549      * @param[out] result A pointer to store the boolean result (true if the object is an instance of the type, false
550      * otherwise).
551      * @return Returns a status code of type `ani_status` indicating success or failure.
552      */
553     ani_status (*Object_InstanceOf)(ani_env *env, ani_object object, ani_type type, ani_boolean *result);
554 
555     /**
556      * @brief Checks if two objects are the same.
557      *
558      * This function compares two objects to determine if they refer to the same instance.
559      *
560      * @param[in] env A pointer to the environment structure.
561      * @param[in] object1 The first object to compare.
562      * @param[in] object2 The second object to compare.
563      * @param[out] result A pointer to store the boolean result (true if the objects are the same, false otherwise).
564      * @return Returns a status code of type `ani_status` indicating success or failure.
565      */
566     ani_status (*Object_IsSame)(ani_env *env, ani_object object1, ani_object object2, ani_boolean *result);
567 
568     /**
569      * @brief Retrieves the superclass of a specified type.
570      *
571      * This function retrieves the superclass of a given type and stores it in the result parameter.
572      *
573      * @param[in] env A pointer to the environment structure.
574      * @param[in] type The type for which to retrieve the superclass.
575      * @param[out] result A pointer to the superclass to be populated.
576      * @return Returns a status code of type `ani_status` indicating success or failure.
577      */
578     ani_status (*Type_GetSuperClass)(ani_env *env, ani_type type, ani_class *result);
579 
580     /**
581      * @brief Determines if one type is assignable from another.
582      *
583      * This function checks if a type is assignable from another and stores the result in the output parameter.
584      *
585      * @param[in] env A pointer to the environment structure.
586      * @param[in] from_type The source type.
587      * @param[in] to_type The target type.
588      * @param[out] result A pointer to a boolean indicating assignability.
589      * @return Returns a status code of type `ani_status` indicating success or failure.
590      */
591     ani_status (*Type_IsAssignableFrom)(ani_env *env, ani_type from_type, ani_type to_type, ani_boolean *result);
592 
593     /**
594      * @brief Finds a module by its descriptor.
595      *
596      * This function locates a module based on its descriptor and stores it in the result parameter.
597      *
598      * @param[in] env A pointer to the environment structure.
599      * @param[in] module_descriptor The descriptor of the module to find.
600      * @param[out] result A pointer to the module to be populated.
601      * @return Returns a status code of type `ani_status` indicating success or failure.
602      */
603     ani_status (*FindModule)(ani_env *env, const char *module_descriptor, ani_module *result);
604 
605     /**
606      * @brief Finds a namespace by its descriptor.
607      *
608      * This function locates a namespace based on its descriptor and stores it in the result parameter.
609      *
610      * @param[in] env A pointer to the environment structure.
611      * @param[in] namespace_descriptor The descriptor of the namespace to find.
612      * @param[out] result A pointer to the namespace to be populated.
613      * @return Returns a status code of type `ani_status` indicating success or failure.
614      */
615     ani_status (*FindNamespace)(ani_env *env, const char *namespace_descriptor, ani_namespace *result);
616 
617     /**
618      * @brief Finds a class by its descriptor.
619      *
620      * This function locates a class based on its descriptor and stores it in the result parameter.
621      *
622      * @param[in] env A pointer to the environment structure.
623      * @param[in] class_descriptor The descriptor of the class to find.
624      * @param[out] result A pointer to the class to be populated.
625      * @return Returns a status code of type `ani_status` indicating success or failure.
626      */
627     ani_status (*FindClass)(ani_env *env, const char *class_descriptor, ani_class *result);
628 
629     /**
630      * @brief Finds an enum by its descriptor.
631      *
632      * This function locates an enum based on its descriptor and stores it in the result parameter.
633      *
634      * @param[in] env A pointer to the environment structure.
635      * @param[in] enum_descriptor The descriptor of the enum to find.
636      * @param[out] result A pointer to the enum to be populated.
637      * @return Returns a status code of type `ani_status` indicating success or failure.
638      */
639     ani_status (*FindEnum)(ani_env *env, const char *enum_descriptor, ani_enum *result);
640 
641     /**
642      * @brief Finds a tuple by its descriptor.
643      *
644      * This function locates a tuple based on its descriptor and stores it in the result parameter.
645      *
646      * @param[in] env A pointer to the environment structure.
647      * @param[in] tuple_descriptor The descriptor of the tuple to find.
648      * @param[out] result A pointer to the tuple to be populated.
649      * @return Returns a status code of type `ani_status` indicating success or failure.
650      */
651     ani_status (*FindTuple)(ani_env *env, const char *tuple_descriptor, ani_tuple *result);
652 
653     /**
654      * @brief Finds a function by its descriptor.
655      *
656      * This function locates a function based on its descriptor and stores it in the result parameter.
657      *
658      * @param[in] env A pointer to the environment structure.
659      * @param[in] function_descriptor The descriptor of the function to find.
660      * @param[out] result A pointer to the function to be populated.
661      * @return Returns a status code of type `ani_status` indicating success or failure.
662      */
663     ani_status (*FindFunction)(ani_env *env, const char *function_descriptor, ani_function *result);
664 
665     /**
666      * @brief Finds a variable by its descriptor.
667      *
668      * This function locates a variable based on its descriptor and stores it in the result parameter.
669      *
670      * @param[in] env A pointer to the environment structure.
671      * @param[in] variable_descriptor The descriptor of the variable to find.
672      * @param[out] result A pointer to the variable to be populated.
673      * @return Returns a status code of type `ani_status` indicating success or failure.
674      */
675     ani_status (*FindVariable)(ani_env *env, const char *variable_descriptor, ani_variable *result);
676 
677     /**
678      * @brief Finds a namespace within a module by its descriptor.
679      *
680      * This function locates a namespace within the specified module based on its descriptor.
681      *
682      * @param[in] env A pointer to the environment structure.
683      * @param[in] module The module to search within.
684      * @param[in] namespace_descriptor The descriptor of the namespace to find.
685      * @param[out] result A pointer to the namespace object.
686      * @return Returns a status code of type `ani_status` indicating success or failure.
687      */
688     ani_status (*Module_FindNamespace)(ani_env *env, ani_module module, const char *namespace_descriptor,
689                                        ani_namespace *result);
690 
691     /**
692      * @brief Finds a class within a module by its descriptor.
693      *
694      * This function locates a class within the specified module based on its descriptor.
695      *
696      * @param[in] env A pointer to the environment structure.
697      * @param[in] module The module to search within.
698      * @param[in] class_descriptor The descriptor of the class to find.
699      * @param[out] result A pointer to the class object.
700      * @return Returns a status code of type `ani_status` indicating success or failure.
701      */
702     ani_status (*Module_FindClass)(ani_env *env, ani_module module, const char *class_descriptor, ani_class *result);
703 
704     /**
705      * @brief Finds an enum within a module by its descriptor.
706      *
707      * This function locates an enum within the specified module based on its descriptor.
708      *
709      * @param[in] env A pointer to the environment structure.
710      * @param[in] module The module to search within.
711      * @param[in] enum_descriptor The descriptor of the enum to find.
712      * @param[out] result A pointer to the enum object.
713      * @return Returns a status code of type `ani_status` indicating success or failure.
714      */
715     ani_status (*Module_FindEnum)(ani_env *env, ani_module module, const char *enum_descriptor, ani_enum *result);
716 
717     /**
718      * @brief Finds a function within a module by its name and signature.
719      *
720      * This function locates a function within the specified module based on its name and signature.
721      *
722      * @param[in] env A pointer to the environment structure.
723      * @param[in] module The module to search within.
724      * @param[in] name The name of the function to retrieve.
725      * @param[in] signature The signature of the function to retrieve.
726      * @param[out] result A pointer to the function object.
727      * @return Returns a status code of type `ani_status` indicating success or failure.
728      */
729     ani_status (*Module_FindFunction)(ani_env *env, ani_module module, const char *name, const char *signature,
730                                       ani_function *result);
731 
732     /**
733      * @brief Finds a variable within a module by its descriptor.
734      *
735      * This function locates a variable within the specified module based on its descriptor.
736      *
737      * @param[in] env A pointer to the environment structure.
738      * @param[in] module The module to search within.
739      * @param[in] variable_descriptor The descriptor of the variable to find.
740      * @param[out] result A pointer to the variable object.
741      * @return Returns a status code of type `ani_status` indicating success or failure.
742      */
743     ani_status (*Module_FindVariable)(ani_env *env, ani_module module, const char *variable_descriptor,
744                                       ani_variable *result);
745 
746     /**
747      * @brief Finds a namespace within another namespace by its descriptor.
748      *
749      * This function locates a namespace within the specified parent namespace based on its descriptor.
750      *
751      * @param[in] env A pointer to the environment structure.
752      * @param[in] ns The parent namespace to search within.
753      * @param[in] namespace_descriptor The descriptor of the namespace to find.
754      * @param[out] result A pointer to the namespace object.
755      * @return Returns a status code of type `ani_status` indicating success or failure.
756      */
757     ani_status (*Namespace_FindNamespace)(ani_env *env, ani_namespace ns, const char *namespace_descriptor,
758                                           ani_namespace *result);
759 
760     /**
761      * @brief Finds a class within a namespace by its descriptor.
762      *
763      * This function locates a class within the specified namespace based on its descriptor.
764      *
765      * @param[in] env A pointer to the environment structure.
766      * @param[in] ns The namespace to search within.
767      * @param[in] class_descriptor The descriptor of the class to find.
768      * @param[out] result A pointer to the class object.
769      * @return Returns a status code of type `ani_status` indicating success or failure.
770      */
771     ani_status (*Namespace_FindClass)(ani_env *env, ani_namespace ns, const char *class_descriptor, ani_class *result);
772 
773     /**
774      * @brief Finds an enum within a namespace by its descriptor.
775      *
776      * This function locates an enum within the specified namespace based on its descriptor.
777      *
778      * @param[in] env A pointer to the environment structure.
779      * @param[in] ns The namespace to search within.
780      * @param[in] enum_descriptor The descriptor of the enum to find.
781      * @param[out] result A pointer to the enum object.
782      * @return Returns a status code of type `ani_status` indicating success or failure.
783      */
784     ani_status (*Namespace_FindEnum)(ani_env *env, ani_namespace ns, const char *enum_descriptor, ani_enum *result);
785 
786     /**
787      * @brief Finds a function within a namespace by its name and signature.
788      *
789      * This function locates a function within the specified namespace based on its name and signature.
790      *
791      * @param[in] env A pointer to the environment structure.
792      * @param[in] ns The namespace to search within.
793      * @param[in] name The name of the function to retrieve.
794      * @param[in] signature The signature of the function to retrieve.
795      * @param[out] result A pointer to the function object.
796      * @return Returns a status code of type `ani_status` indicating success or failure.
797      */
798     ani_status (*Namespace_FindFunction)(ani_env *env, ani_namespace ns, const char *name, const char *signature,
799                                          ani_function *result);
800 
801     /**
802      * @brief Finds a variable within a namespace by its descriptor.
803      *
804      * This function locates a variable within the specified namespace based on its descriptor.
805      *
806      * @param[in] env A pointer to the environment structure.
807      * @param[in] ns The namespace to search within.
808      * @param[in] variable_descriptor The descriptor of the variable to find.
809      * @param[out] result A pointer to the variable object.
810      * @return Returns a status code of type `ani_status` indicating success or failure.
811      */
812     ani_status (*Namespace_FindVariable)(ani_env *env, ani_namespace ns, const char *variable_descriptor,
813                                          ani_variable *result);
814 
815     /**
816      * @brief Binds native functions to a module.
817      *
818      * This function binds an array of native functions to the specified module.
819      *
820      * @param[in] env A pointer to the environment structure.
821      * @param[in] module The module to which the native functions will be bound.
822      * @param[in] functions A pointer to an array of native functions to bind.
823      * @param[in] nr_functions The number of native functions in the array.
824      * @return Returns a status code of type `ani_status` indicating success or failure.
825      */
826     ani_status (*Module_BindNativeFunctions)(ani_env *env, ani_module module, const ani_native_function *functions,
827                                              ani_size nr_functions);
828 
829     /**
830      * @brief Binds native functions to a namespace.
831      *
832      * This function binds an array of native functions to the specified namespace.
833      *
834      * @param[in] env A pointer to the environment structure.
835      * @param[in] ns The namespace to which the native functions will be bound.
836      * @param[in] functions A pointer to an array of native functions to bind.
837      * @param[in] nr_functions The number of native functions in the array.
838      * @return Returns a status code of type `ani_status` indicating success or failure.
839      */
840     ani_status (*Namespace_BindNativeFunctions)(ani_env *env, ani_namespace ns, const ani_native_function *functions,
841                                                 ani_size nr_functions);
842 
843     /**
844      * @brief Binds native methods to a class.
845      *
846      * This function binds an array of native methods to the specified class.
847      *
848      * @param[in] env A pointer to the environment structure.
849      * @param[in] cls The class to which the native methods will be bound.
850      * @param[in] methods A pointer to an array of native methods to bind.
851      * @param[in] nr_methods The number of native methods in the array.
852      * @return Returns a status code of type `ani_status` indicating success or failure.
853      */
854     ani_status (*Class_BindNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods,
855                                           ani_size nr_methods);
856 
857     /**
858      * @brief Deletes a local reference.
859      *
860      * This function deletes a specified local reference to free up resources.
861      *
862      * @param[in] env A pointer to the environment structure.
863      * @param[in] ref The reference to be deleted.
864      * @return Returns a status code of type `ani_status` indicating success or failure.
865      */
866     ani_status (*Reference_Delete)(ani_env *env, ani_ref ref);
867 
868     /**
869      * @brief Ensures enough local references are available.
870      *
871      * This function checks and ensures that the specified number of local references can be created.
872      *
873      * @param[in] env A pointer to the environment structure.
874      * @param[in] nr_refs The number of local references to ensure availability for.
875      * @return Returns a status code of type `ani_status` indicating success or failure.
876      */
877     ani_status (*EnsureEnoughReferences)(ani_env *env, ani_size nr_refs);
878 
879     /**
880      * @brief Creates a new local scope for references.
881      *
882      * This function creates a local scope for references with a specified capacity.
883      *
884      * @param[in] env A pointer to the environment structure.
885      * @param[in] nr_refs The maximum number of references that can be created in this scope.
886      * @return Returns a status code of type `ani_status` indicating success or failure.
887      */
888     ani_status (*CreateLocalScope)(ani_env *env, ani_size nr_refs);
889 
890     /**
891      * @brief Destroys the current local scope.
892      *
893      * This function destroys the current local scope and frees all references within it.
894      *
895      * @param[in] env A pointer to the environment structure.
896      * @return Returns a status code of type `ani_status` indicating success or failure.
897      */
898     ani_status (*DestroyLocalScope)(ani_env *env);
899 
900     /**
901      * @brief Creates a new escape local scope.
902      *
903      * This function creates a local scope for references with escape functionality, allowing objects to escape this
904      * scope.
905      *
906      * @param[in] env A pointer to the environment structure.
907      * @param[in] nr_refs The maximum number of references that can be created in this scope.
908      * @return Returns a status code of type `ani_status` indicating success or failure.
909      */
910     ani_status (*CreateEscapeLocalScope)(ani_env *env, ani_size nr_refs);
911 
912     /**
913      * @brief Destroys the current escape local scope.
914      *
915      * This function destroys the current escape local scope and allows escaping references to be retrieved.
916      *
917      * @param[in] env A pointer to the environment structure.
918      * @param[in] ref The reference to be escaped from the current scope.
919      * @param[out] result A pointer to the resulting reference that has escaped the scope.
920      * @return Returns a status code of type `ani_status` indicating success or failure.
921      */
922     ani_status (*DestroyEscapeLocalScope)(ani_env *env, ani_ref ref, ani_ref *result);
923 
924     /**
925      * @brief Throws an error.
926      *
927      * This function throws the specified error in the current environment.
928      *
929      * @param[in] env A pointer to the environment structure.
930      * @param[in] err The error to throw.
931      * @return Returns a status code of type `ani_status` indicating success or failure.
932      */
933     ani_status (*ThrowError)(ani_env *env, ani_error err);
934 
935     /**
936      * @brief Checks if there are unhandled errors.
937      *
938      * This function determines if there are unhandled errors in the current environment.
939      *
940      * @param[in] env A pointer to the environment structure.
941      * @param[out] result A pointer to a boolean indicating if unhandled errors exist.
942      * @return Returns a status code of type `ani_status` indicating success or failure.
943      */
944     ani_status (*ExistUnhandledError)(ani_env *env, ani_boolean *result);
945 
946     /**
947      * @brief Retrieves the current unhandled error.
948      *
949      * This function fetches the unhandled error in the environment.
950      *
951      * @param[in] env A pointer to the environment structure.
952      * @param[out] result A pointer to store the unhandled error.
953      * @return Returns a status code of type `ani_status` indicating success or failure.
954      */
955     ani_status (*GetUnhandledError)(ani_env *env, ani_error *result);
956 
957     /**
958      * @brief Resets the current error state.
959      *
960      * This function clears the error state in the current environment.
961      *
962      * @param[in] env A pointer to the environment structure.
963      * @return Returns a status code of type `ani_status` indicating success or failure.
964      */
965     ani_status (*ResetError)(ani_env *env);
966 
967     /**
968      * @brief Provides a description of the current error.
969      *
970      * This function prints the stack trace or other debug information for the current error.
971      *
972      * @param[in] env A pointer to the environment structure.
973      * @return Returns a status code of type `ani_status` indicating success or failure.
974      */
975     ani_status (*DescribeError)(ani_env *env);  // NOTE: Print stacktrace for debugging?
976 
977     /**
978      * @brief Aborts execution with a message.
979      *
980      * This function terminates execution with the specified error message.
981      *
982      * @param[in] env A pointer to the environment structure.
983      * @param[in] message The error message to display on termination.
984      * @return Does not return; the process terminates.
985      */
986     ani_status (*Abort)(ani_env *env, const char *message);
987 
988     /**
989      * @brief Retrieves a null reference.
990      *
991      * This function provides a null reference in the specified result.
992      *
993      * @param[in] env A pointer to the environment structure.
994      * @param[out] result A pointer to store the null reference.
995      * @return Returns a status code of type `ani_status` indicating success or failure.
996      */
997     ani_status (*GetNull)(ani_env *env, ani_ref *result);
998 
999     /**
1000      * @brief Retrieves an undefined reference.
1001      *
1002      * This function provides an undefined reference in the specified result.
1003      *
1004      * @param[in] env A pointer to the environment structure.
1005      * @param[out] result A pointer to store the undefined reference.
1006      * @return Returns a status code of type `ani_status` indicating success or failure.
1007      */
1008     ani_status (*GetUndefined)(ani_env *env, ani_ref *result);
1009 
1010     /**
1011      * @brief Checks if a reference is null.
1012      *
1013      * This function determines if the specified reference is null.
1014      *
1015      * @param[in] env A pointer to the environment structure.
1016      * @param[in] ref The reference to check.
1017      * @param[out] result A pointer to a boolean indicating if the reference is null.
1018      * @return Returns a status code of type `ani_status` indicating success or failure.
1019      */
1020     ani_status (*Reference_IsNull)(ani_env *env, ani_ref ref, ani_boolean *result);
1021 
1022     /**
1023      * @brief Checks if a reference is undefined.
1024      *
1025      * This function determines if the specified reference is undefined.
1026      *
1027      * @param[in] env A pointer to the environment structure.
1028      * @param[in] ref The reference to check.
1029      * @param[out] result A pointer to a boolean indicating if the reference is undefined.
1030      * @return Returns a status code of type `ani_status` indicating success or failure.
1031      */
1032     ani_status (*Reference_IsUndefined)(ani_env *env, ani_ref ref, ani_boolean *result);
1033 
1034     /**
1035      * @brief Checks if a reference is nullish value (null or undefined).
1036      *
1037      * This function determines if the specified reference is either null or undefined.
1038      *
1039      * @param[in] env A pointer to the environment structure.
1040      * @param[in] ref The reference to check.
1041      * @param[out] result A pointer to a boolean indicating if the reference is nullish value.
1042      * @return Returns a status code of type `ani_status` indicating success or failure.
1043      */
1044     ani_status (*Reference_IsNullishValue)(ani_env *env, ani_ref ref, ani_boolean *result);
1045 
1046     /**
1047      * @brief Compares two references for equality.
1048      *
1049      * This function checks if two references are equal.
1050      *
1051      * @param[in] env A pointer to the environment structure.
1052      * @param[in] ref0 The first reference to compare.
1053      * @param[in] ref1 The second reference to compare.
1054      * @param[out] result A pointer to a boolean indicating if the references are equal.
1055      * @return Returns a status code of type `ani_status` indicating success or failure.
1056      */
1057     ani_status (*Reference_Equals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result);
1058 
1059     /**
1060      * @brief Compares two references for strict equality.
1061      *
1062      * This function checks if two references are strictly equal.
1063      *
1064      * @param[in] env A pointer to the environment structure.
1065      * @param[in] ref0 The first reference to compare.
1066      * @param[in] ref1 The second reference to compare.
1067      * @param[out] result A pointer to a boolean indicating if the references are strictly equal.
1068      * @return Returns a status code of type `ani_status` indicating success or failure.
1069      */
1070     ani_status (*Reference_StrictEquals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result);
1071 
1072     /**
1073      * @brief Creates a new UTF-16 string.
1074      *
1075      * This function creates a new string from the provided UTF-16 encoded data.
1076      *
1077      * @param[in] env A pointer to the environment structure.
1078      * @param[in] utf16_string A pointer to the UTF-16 encoded string data.
1079      * @param[in] utf16_size The size of the UTF-16 string in code units.
1080      * @param[out] result A pointer to store the created string.
1081      * @return Returns a status code of type `ani_status` indicating success or failure.
1082      */
1083     ani_status (*String_NewUTF16)(ani_env *env, const uint16_t *utf16_string, ani_size utf16_size, ani_string *result);
1084 
1085     /**
1086      * @brief Retrieves the size of a UTF-16 string.
1087      *
1088      * This function retrieves the size (in code units) of the specified UTF-16 string.
1089      *
1090      * @param[in] env A pointer to the environment structure.
1091      * @param[in] string The UTF-16 string to measure.
1092      * @param[out] result A pointer to store the size of the string.
1093      * @return Returns a status code of type `ani_status` indicating success or failure.
1094      */
1095     ani_status (*String_GetUTF16Size)(ani_env *env, ani_string string, ani_size *result);
1096 
1097     /**
1098      * @brief Retrieves the UTF-16 encoded data of a string.
1099      *
1100      * This function copies the UTF-16 encoded data of the string into the provided buffer.
1101      *
1102      * @param[in] env A pointer to the environment structure.
1103      * @param[in] string The string to retrieve data from.
1104      * @param[out] utf16_buffer A buffer to store the UTF-16 encoded data.
1105      * @param[in] utf16_buffer_size The size of the buffer in code units.
1106      * @param[out] result A pointer to store the number of code units written.
1107      * @return Returns a status code of type `ani_status` indicating success or failure.
1108      */
1109     ani_status (*String_GetUTF16)(ani_env *env, ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size,
1110                                   ani_size *result);
1111 
1112     /**
1113      * @brief Retrieves a substring of a UTF-16 string.
1114      *
1115      * This function copies a portion of the UTF-16 string into the provided buffer.
1116      *
1117      * @param[in] env A pointer to the environment structure.
1118      * @param[in] string The string to retrieve data from.
1119      * @param[in] substr_offset The starting offset of the substring.
1120      * @param[in] substr_size The size of the substring in code units.
1121      * @param[out] utf16_buffer A buffer to store the substring.
1122      * @param[in] utf16_buffer_size The size of the buffer in code units.
1123      * @param[out] result A pointer to store the number of code units written.
1124      * @return Returns a status code of type `ani_status` indicating success or failure.
1125      */
1126     ani_status (*String_GetUTF16SubString)(ani_env *env, ani_string string, ani_size substr_offset,
1127                                            ani_size substr_size, uint16_t *utf16_buffer, ani_size utf16_buffer_size,
1128                                            ani_size *result);
1129 
1130     /**
1131      * @brief Creates a new UTF-8 string.
1132      *
1133      * This function creates a new string from the provided UTF-8 encoded data.
1134      *
1135      * @param[in] env A pointer to the environment structure.
1136      * @param[in] utf8_string A pointer to the UTF-8 encoded string data.
1137      * @param[in] utf8_size The size of the UTF-8 string in bytes.
1138      * @param[out] result A pointer to store the created string.
1139      * @return Returns a status code of type `ani_status` indicating success or failure.
1140      */
1141     ani_status (*String_NewUTF8)(ani_env *env, const char *utf8_string, ani_size utf8_size, ani_string *result);
1142 
1143     /**
1144      * @brief Retrieves the size of a UTF-8 string.
1145      *
1146      * This function retrieves the size (in bytes) of the specified UTF-8 string.
1147      *
1148      * @param[in] env A pointer to the environment structure.
1149      * @param[in] string The UTF-8 string to measure.
1150      * @param[out] result A pointer to store the size of the string.
1151      * @return Returns a status code of type `ani_status` indicating success or failure.
1152      */
1153     ani_status (*String_GetUTF8Size)(ani_env *env, ani_string string, ani_size *result);
1154 
1155     /**
1156      * @brief Retrieves the UTF-8 encoded data of a string.
1157      *
1158      * This function copies the UTF-8 encoded data of the string into the provided buffer.
1159      *
1160      * @param[in] env A pointer to the environment structure.
1161      * @param[in] string The string to retrieve data from.
1162      * @param[out] utf8_buffer A buffer to store the UTF-8 encoded data.
1163      * @param[in] utf8_buffer_size The size of the buffer in bytes.
1164      * @param[out] result A pointer to store the number of bytes written.
1165      * @return Returns a status code of type `ani_status` indicating success or failure.
1166      */
1167     ani_status (*String_GetUTF8)(ani_env *env, ani_string string, char *utf8_buffer, ani_size utf8_buffer_size,
1168                                  ani_size *result);
1169 
1170     /**
1171      * @brief Retrieves a substring of a UTF-8 string.
1172      *
1173      * This function copies a portion of the UTF-8 string into the provided buffer.
1174      *
1175      * @param[in] env A pointer to the environment structure.
1176      * @param[in] string The string to retrieve data from.
1177      * @param[in] substr_offset The starting offset of the substring.
1178      * @param[in] substr_size The size of the substring in bytes.
1179      * @param[out] utf8_buffer A buffer to store the substring.
1180      * @param[in] utf8_buffer_size The size of the buffer in bytes.
1181      * @param[out] result A pointer to store the number of bytes written.
1182      * @return Returns a status code of type `ani_status` indicating success or failure.
1183      */
1184     ani_status (*String_GetUTF8SubString)(ani_env *env, ani_string string, ani_size substr_offset, ani_size substr_size,
1185                                           char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result);
1186 
1187     /**
1188      * @brief Retrieves critical information about a string.
1189      *
1190      * This function retrieves the type and data of a string for critical operations.
1191      *
1192      * @param[in] env A pointer to the environment structure.
1193      * @param[in] string The string to analyze.
1194      * @param[out] result_string_type A pointer to store the type of the string (e.g., UTF-16 or UTF-8).
1195      * @param[out] result_data A pointer to the raw string data.
1196      * @param[out] result_size A pointer to the size of the string data.
1197      * @return Returns a status code of type `ani_status` indicating success or failure.
1198      */
1199     ani_status (*String_GetCritical)(ani_env *env, ani_string string, uint32_t *result_string_type,
1200                                      const void **result_data,
1201                                      ani_size *result_size);  // result_string_type - string type utf16/utf8, etc?
1202 
1203     /**
1204      * @brief Releases critical string data.
1205      *
1206      * This function releases the raw string data retrieved using `String_GetCritical`.
1207      *
1208      * @param[in] env A pointer to the environment structure.
1209      * @param[in] string The string whose data was retrieved.
1210      * @param[in] data A pointer to the raw data to release.
1211      * @return Returns a status code of type `ani_status` indicating success or failure.
1212      */
1213     ani_status (*String_ReleaseCritical)(ani_env *env, ani_string string, const void *data);
1214 
1215     /**
1216      * @brief Creates a new UTF-16 string literal.
1217      *
1218      * This function creates a new string literal from the provided UTF-16 encoded data.
1219      *
1220      * @param[in] env A pointer to the environment structure.
1221      * @param[in] utf16_string A pointer to the UTF-16 encoded string data.
1222      * @param[in] utf16_size The size of the UTF-16 string in code units.
1223      * @param[out] result A pointer to store the created string literal.
1224      * @return Returns a status code of type `ani_status` indicating success or failure.
1225      */
1226     ani_status (*StringLiteral_NewUTF16)(ani_env *env, const uint16_t *utf16_string, ani_size utf16_size,
1227                                          ani_stringliteral *result);
1228 
1229     /**
1230      * @brief Retrieves the size of a UTF-16 string literal.
1231      *
1232      * This function retrieves the size (in code units) of the specified UTF-16 string literal.
1233      *
1234      * @param[in] env A pointer to the environment structure.
1235      * @param[in] string The UTF-16 string literal to measure.
1236      * @param[out] result A pointer to store the size of the string literal.
1237      * @return Returns a status code of type `ani_status` indicating success or failure.
1238      */
1239     ani_status (*StringLiteral_GetUTF16Size)(ani_env *env, ani_stringliteral string, ani_size *result);
1240 
1241     /**
1242      * @brief Retrieves the UTF-16 encoded data of a string literal.
1243      *
1244      * This function copies the UTF-16 encoded data of the string literal into the provided buffer.
1245      *
1246      * @param[in] env A pointer to the environment structure.
1247      * @param[in] string The string literal to retrieve data from.
1248      * @param[out] utf16_buffer A buffer to store the UTF-16 encoded data.
1249      * @param[in] utf16_buffer_size The size of the buffer in code units.
1250      * @param[out] result A pointer to store the number of code units written.
1251      * @return Returns a status code of type `ani_status` indicating success or failure.
1252      */
1253     ani_status (*StringLiteral_GetUTF16)(ani_env *env, ani_stringliteral string, uint16_t *utf16_buffer,
1254                                          ani_size utf16_buffer_size, ani_size *result);
1255 
1256     /**
1257      * @brief Retrieves a substring of a UTF-16 string literal.
1258      *
1259      * This function copies a portion of the UTF-16 string literal into the provided buffer.
1260      *
1261      * @param[in] env A pointer to the environment structure.
1262      * @param[in] string The string literal to retrieve data from.
1263      * @param[in] substr_offset The starting offset of the substring.
1264      * @param[in] substr_size The size of the substring in code units.
1265      * @param[out] utf16_buffer A buffer to store the substring.
1266      * @param[in] utf16_buffer_size The size of the buffer in code units.
1267      * @param[out] result A pointer to store the number of code units written.
1268      * @return Returns a status code of type `ani_status` indicating success or failure.
1269      */
1270     ani_status (*StringLiteral_GetUTF16SubString)(ani_env *env, ani_stringliteral string, ani_size substr_offset,
1271                                                   ani_size substr_size, uint16_t *utf16_buffer,
1272                                                   ani_size utf16_buffer_size, ani_size *result);
1273 
1274     /**
1275      * @brief Creates a new UTF-8 string literal.
1276      *
1277      * This function creates a new string literal from the provided UTF-8 encoded data.
1278      *
1279      * @param[in] env A pointer to the environment structure.
1280      * @param[in] utf8_string A pointer to the UTF-8 encoded string data.
1281      * @param[in] size The size of the UTF-8 string in bytes.
1282      * @param[out] result A pointer to store the created string literal.
1283      * @return Returns a status code of type `ani_status` indicating success or failure.
1284      */
1285     ani_status (*StringLiteral_NewUTF8)(ani_env *env, const char *utf8_string, ani_size size,
1286                                         ani_stringliteral *result);
1287 
1288     /**
1289      * @brief Retrieves the size of a UTF-8 string literal.
1290      *
1291      * This function retrieves the size (in bytes) of the specified UTF-8 string literal.
1292      *
1293      * @param[in] env A pointer to the environment structure.
1294      * @param[in] string The UTF-8 string literal to measure.
1295      * @param[out] result A pointer to store the size of the string literal.
1296      * @return Returns a status code of type `ani_status` indicating success or failure.
1297      */
1298     ani_status (*StringLiteral_GetUTF8Size)(ani_env *env, ani_stringliteral string, ani_size *result);
1299 
1300     /**
1301      * @brief Retrieves the UTF-8 encoded data of a string literal.
1302      *
1303      * This function copies the UTF-8 encoded data of the string literal into the provided buffer.
1304      *
1305      * @param[in] env A pointer to the environment structure.
1306      * @param[in] string The string literal to retrieve data from.
1307      * @param[out] utf8_buffer A buffer to store the UTF-8 encoded data.
1308      * @param[in] utf8_buffer_size The size of the buffer in bytes.
1309      * @param[out] result A pointer to store the number of bytes written.
1310      * @return Returns a status code of type `ani_status` indicating success or failure.
1311      */
1312     ani_status (*StringLiteral_GetUTF8)(ani_env *env, ani_stringliteral string, char *utf8_buffer,
1313                                         ani_size utf8_buffer_size, ani_size *result);
1314 
1315     /**
1316      * @brief Retrieves a substring of a UTF-8 string literal.
1317      *
1318      * This function copies a portion of the UTF-8 string literal into the provided buffer.
1319      *
1320      * @param[in] env A pointer to the environment structure.
1321      * @param[in] string The string literal to retrieve data from.
1322      * @param[in] substr_offset The starting offset of the substring.
1323      * @param[in] substr_size The size of the substring in bytes.
1324      * @param[out] utf8_buffer A buffer to store the substring.
1325      * @param[in] utf8_buffer_size The size of the buffer in bytes.
1326      * @param[out] result A pointer to store the number of bytes written.
1327      * @return Returns a status code of type `ani_status` indicating success or failure.
1328      */
1329     ani_status (*StringLiteral_GetUTF8SubString)(ani_env *env, ani_stringliteral string, ani_size substr_offset,
1330                                                  ani_size substr_size, char *utf8_buffer, ani_size utf8_buffer_size,
1331                                                  ani_size *result);
1332 
1333     /**
1334      * @brief Retrieves critical information about a string literal.
1335      *
1336      * This function retrieves the type and data of a string literal for critical operations.
1337      *
1338      * @param[in] env A pointer to the environment structure.
1339      * @param[in] string The string literal to analyze.
1340      * @param[out] result_string_type A pointer to store the type of the string literal (e.g., UTF-16 or UTF-8).
1341      * @param[out] result_data A pointer to the raw string literal data.
1342      * @param[out] result_size A pointer to the size of the string literal data.
1343      * @return Returns a status code of type `ani_status` indicating success or failure.
1344      */
1345     ani_status (*StringLiteral_GetCritical)(
1346         ani_env *env, ani_stringliteral string, uint32_t *result_string_type, const void **result_data,
1347         ani_size *result_size);  // result_string_type - string type utf16/utf8, etc?
1348 
1349     /**
1350      * @brief Releases critical string literal data.
1351      *
1352      * This function releases the raw string literal data retrieved using `StringLiteral_GetCritical`.
1353      *
1354      * @param[in] env A pointer to the environment structure.
1355      * @param[in] string The string literal whose data was retrieved.
1356      * @param[in] data A pointer to the raw data to release.
1357      * @return Returns a status code of type `ani_status` indicating success or failure.
1358      */
1359     ani_status (*StringLiteral_ReleaseCritical)(ani_env *env, ani_stringliteral string, const void *data);
1360 
1361     /**
1362      * @brief Retrieves the length of a fixed array.
1363      *
1364      * This function retrieves the length of the specified fixed array.
1365      *
1366      * @param[in] env A pointer to the environment structure.
1367      * @param[in] array The fixed array whose length is to be retrieved.
1368      * @param[out] result A pointer to store the length of the array.
1369      * @return Returns a status code of type `ani_status` indicating success or failure.
1370      */
1371     ani_status (*FixedArray_GetLength)(ani_env *env, ani_fixedarray array, ani_size *result);
1372 
1373     /**
1374      * @brief Creates a new fixed array of booleans.
1375      *
1376      * This function creates a new fixed array of the specified length for boolean values.
1377      *
1378      * @param[in] env A pointer to the environment structure.
1379      * @param[in] length The length of the array to be created.
1380      * @param[out] result A pointer to store the created fixed array.
1381      * @return Returns a status code of type `ani_status` indicating success or failure.
1382      */
1383     ani_status (*FixedArray_New_Boolean)(ani_env *env, ani_size length, ani_fixedarray_boolean *result);
1384 
1385     /**
1386      * @brief Creates a new fixed array of characters.
1387      *
1388      * This function creates a new fixed array of the specified length for character values.
1389      *
1390      * @param[in] env A pointer to the environment structure.
1391      * @param[in] length The length of the array to be created.
1392      * @param[out] result A pointer to store the created fixed array.
1393      * @return Returns a status code of type `ani_status` indicating success or failure.
1394      */
1395     ani_status (*FixedArray_New_Char)(ani_env *env, ani_size length, ani_fixedarray_char *result);
1396 
1397     /**
1398      * @brief Creates a new fixed array of bytes.
1399      *
1400      * This function creates a new fixed array of the specified length for byte values.
1401      *
1402      * @param[in] env A pointer to the environment structure.
1403      * @param[in] length The length of the array to be created.
1404      * @param[out] result A pointer to store the created fixed array.
1405      * @return Returns a status code of type `ani_status` indicating success or failure.
1406      */
1407     ani_status (*FixedArray_New_Byte)(ani_env *env, ani_size length, ani_fixedarray_byte *result);
1408 
1409     /**
1410      * @brief Creates a new fixed array of shorts.
1411      *
1412      * This function creates a new fixed array of the specified length for short integer values.
1413      *
1414      * @param[in] env A pointer to the environment structure.
1415      * @param[in] length The length of the array to be created.
1416      * @param[out] result A pointer to store the created fixed array.
1417      * @return Returns a status code of type `ani_status` indicating success or failure.
1418      */
1419     ani_status (*FixedArray_New_Short)(ani_env *env, ani_size length, ani_fixedarray_short *result);
1420 
1421     /**
1422      * @brief Creates a new fixed array of integers.
1423      *
1424      * This function creates a new fixed array of the specified length for integer values.
1425      *
1426      * @param[in] env A pointer to the environment structure.
1427      * @param[in] length The length of the array to be created.
1428      * @param[out] result A pointer to store the created fixed array.
1429      * @return Returns a status code of type `ani_status` indicating success or failure.
1430      */
1431     ani_status (*FixedArray_New_Int)(ani_env *env, ani_size length, ani_fixedarray_int *result);
1432 
1433     /**
1434      * @brief Creates a new fixed array of long integers.
1435      *
1436      * This function creates a new fixed array of the specified length for long integer values.
1437      *
1438      * @param[in] env A pointer to the environment structure.
1439      * @param[in] length The length of the array to be created.
1440      * @param[out] result A pointer to store the created fixed array.
1441      * @return Returns a status code of type `ani_status` indicating success or failure.
1442      */
1443     ani_status (*FixedArray_New_Long)(ani_env *env, ani_size length, ani_fixedarray_long *result);
1444 
1445     /**
1446      * @brief Creates a new fixed array of floats.
1447      *
1448      * This function creates a new fixed array of the specified length for float values.
1449      *
1450      * @param[in] env A pointer to the environment structure.
1451      * @param[in] length The length of the array to be created.
1452      * @param[out] result A pointer to store the created fixed array.
1453      * @return Returns a status code of type `ani_status` indicating success or failure.
1454      */
1455     ani_status (*FixedArray_New_Float)(ani_env *env, ani_size length, ani_fixedarray_float *result);
1456 
1457     /**
1458      * @brief Creates a new fixed array of doubles.
1459      *
1460      * This function creates a new fixed array of the specified length for double values.
1461      *
1462      * @param[in] env A pointer to the environment structure.
1463      * @param[in] length The length of the array to be created.
1464      * @param[out] result A pointer to store the created fixed array.
1465      * @return Returns a status code of type `ani_status` indicating success or failure.
1466      */
1467     ani_status (*FixedArray_New_Double)(ani_env *env, ani_size length, ani_fixedarray_double *result);
1468 
1469     /**
1470      * @brief Retrieves a region of boolean values from a fixed array.
1471      *
1472      * This function retrieves a portion of the specified boolean fixed array into a native buffer.
1473      *
1474      * @param[in] env A pointer to the environment structure.
1475      * @param[in] array The fixed array to retrieve values from.
1476      * @param[in] offset The starting offset of the region.
1477      * @param[in] length The number of elements to retrieve.
1478      * @param[out] native_buffer A buffer to store the retrieved boolean values.
1479      * @return Returns a status code of type `ani_status` indicating success or failure.
1480      */
1481     ani_status (*FixedArray_GetRegion_Boolean)(ani_env *env, ani_fixedarray_boolean array, ani_size offset,
1482                                                ani_size length, ani_boolean *native_buffer);
1483 
1484     /**
1485      * @brief Retrieves a region of character values from a fixed array.
1486      *
1487      * This function retrieves a portion of the specified character fixed array into a native buffer.
1488      *
1489      * @param[in] env A pointer to the environment structure.
1490      * @param[in] array The fixed array to retrieve values from.
1491      * @param[in] offset The starting offset of the region.
1492      * @param[in] length The number of elements to retrieve.
1493      * @param[out] native_buffer A buffer to store the retrieved character values.
1494      * @return Returns a status code of type `ani_status` indicating success or failure.
1495      */
1496     ani_status (*FixedArray_GetRegion_Char)(ani_env *env, ani_fixedarray_char array, ani_size offset, ani_size length,
1497                                             ani_char *native_buffer);
1498 
1499     /**
1500      * @brief Retrieves a region of byte values from a fixed array.
1501      *
1502      * This function retrieves a portion of the specified byte fixed array into a native buffer.
1503      *
1504      * @param[in] env A pointer to the environment structure.
1505      * @param[in] array The fixed array to retrieve values from.
1506      * @param[in] offset The starting offset of the region.
1507      * @param[in] length The number of elements to retrieve.
1508      * @param[out] native_buffer A buffer to store the retrieved byte values.
1509      * @return Returns a status code of type `ani_status` indicating success or failure.
1510      */
1511     ani_status (*FixedArray_GetRegion_Byte)(ani_env *env, ani_fixedarray_byte array, ani_size offset, ani_size length,
1512                                             ani_byte *native_buffer);
1513 
1514     /**
1515      * @brief Retrieves a region of short values from a fixed array.
1516      *
1517      * This function retrieves a portion of the specified short fixed array into a native buffer.
1518      *
1519      * @param[in] env A pointer to the environment structure.
1520      * @param[in] array The fixed array to retrieve values from.
1521      * @param[in] offset The starting offset of the region.
1522      * @param[in] length The number of elements to retrieve.
1523      * @param[out] native_buffer A buffer to store the retrieved short values.
1524      * @return Returns a status code of type `ani_status` indicating success or failure.
1525      */
1526     ani_status (*FixedArray_GetRegion_Short)(ani_env *env, ani_fixedarray_short array, ani_size offset, ani_size length,
1527                                              ani_short *native_buffer);
1528 
1529     /**
1530      * @brief Retrieves a region of integer values from a fixed array.
1531      *
1532      * This function retrieves a portion of the specified integer fixed array into a native buffer.
1533      *
1534      * @param[in] env A pointer to the environment structure.
1535      * @param[in] array The fixed array to retrieve values from.
1536      * @param[in] offset The starting offset of the region.
1537      * @param[in] length The number of elements to retrieve.
1538      * @param[out] native_buffer A buffer to store the retrieved integer values.
1539      * @return Returns a status code of type `ani_status` indicating success or failure.
1540      */
1541     ani_status (*FixedArray_GetRegion_Int)(ani_env *env, ani_fixedarray_int array, ani_size offset, ani_size length,
1542                                            ani_int *native_buffer);
1543 
1544     /**
1545      * @brief Retrieves a region of long integer values from a fixed array.
1546      *
1547      * This function retrieves a portion of the specified long integer fixed array into a native buffer.
1548      *
1549      * @param[in] env A pointer to the environment structure.
1550      * @param[in] array The fixed array to retrieve values from.
1551      * @param[in] offset The starting offset of the region.
1552      * @param[in] length The number of elements to retrieve.
1553      * @param[out] native_buffer A buffer to store the retrieved long integer values.
1554      * @return Returns a status code of type `ani_status` indicating success or failure.
1555      */
1556     ani_status (*FixedArray_GetRegion_Long)(ani_env *env, ani_fixedarray_long array, ani_size offset, ani_size length,
1557                                             ani_long *native_buffer);
1558 
1559     /**
1560      * @brief Retrieves a region of float values from a fixed array.
1561      *
1562      * This function retrieves a portion of the specified float fixed array into a native buffer.
1563      *
1564      * @param[in] env A pointer to the environment structure.
1565      * @param[in] array The fixed array to retrieve values from.
1566      * @param[in] offset The starting offset of the region.
1567      * @param[in] length The number of elements to retrieve.
1568      * @param[out] native_buffer A buffer to store the retrieved float values.
1569      * @return Returns a status code of type `ani_status` indicating success or failure.
1570      */
1571     ani_status (*FixedArray_GetRegion_Float)(ani_env *env, ani_fixedarray_float array, ani_size offset, ani_size length,
1572                                              ani_float *native_buffer);
1573 
1574     /**
1575      * @brief Retrieves a region of double values from a fixed array.
1576      *
1577      * This function retrieves a portion of the specified double fixed array into a native buffer.
1578      *
1579      * @param[in] env A pointer to the environment structure.
1580      * @param[in] array The fixed array to retrieve values from.
1581      * @param[in] offset The starting offset of the region.
1582      * @param[in] length The number of elements to retrieve.
1583      * @param[out] native_buffer A buffer to store the retrieved double values.
1584      * @return Returns a status code of type `ani_status` indicating success or failure.
1585      */
1586     ani_status (*FixedArray_GetRegion_Double)(ani_env *env, ani_fixedarray_double array, ani_size offset,
1587                                               ani_size length, ani_double *native_buffer);
1588 
1589     /**
1590      * @brief Sets a region of boolean values in a fixed array.
1591      *
1592      * This function sets a portion of the specified boolean fixed array using a native buffer.
1593      *
1594      * @param[in] env A pointer to the environment structure.
1595      * @param[in] array The fixed array to set values in.
1596      * @param[in] offset The starting offset of the region.
1597      * @param[in] length The number of elements to set.
1598      * @param[in] native_buffer A buffer containing the boolean values to set.
1599      * @return Returns a status code of type `ani_status` indicating success or failure.
1600      */
1601     ani_status (*FixedArray_SetRegion_Boolean)(ani_env *env, ani_fixedarray_boolean array, ani_size offset,
1602                                                ani_size length, const ani_boolean *native_buffer);
1603 
1604     /**
1605      * @brief Sets a region of character values in a fixed array.
1606      *
1607      * This function sets a portion of the specified character fixed array using a native buffer.
1608      *
1609      * @param[in] env A pointer to the environment structure.
1610      * @param[in] array The fixed array to set values in.
1611      * @param[in] offset The starting offset of the region.
1612      * @param[in] length The number of elements to set.
1613      * @param[in] native_buffer A buffer containing the character values to set.
1614      * @return Returns a status code of type `ani_status` indicating success or failure.
1615      */
1616     ani_status (*FixedArray_SetRegion_Char)(ani_env *env, ani_fixedarray_char array, ani_size offset, ani_size length,
1617                                             const ani_char *native_buffer);
1618 
1619     /**
1620      * @brief Sets a region of byte values in a fixed array.
1621      *
1622      * This function sets a portion of the specified byte fixed array using a native buffer.
1623      *
1624      * @param[in] env A pointer to the environment structure.
1625      * @param[in] array The fixed array to set values in.
1626      * @param[in] offset The starting offset of the region.
1627      * @param[in] length The number of elements to set.
1628      * @param[in] native_buffer A buffer containing the byte values to set.
1629      * @return Returns a status code of type `ani_status` indicating success or failure.
1630      */
1631     ani_status (*FixedArray_SetRegion_Byte)(ani_env *env, ani_fixedarray_byte array, ani_size offset, ani_size length,
1632                                             const ani_byte *native_buffer);
1633 
1634     /**
1635      * @brief Sets a region of short values in a fixed array.
1636      *
1637      * This function sets a portion of the specified short fixed array using a native buffer.
1638      *
1639      * @param[in] env A pointer to the environment structure.
1640      * @param[in] array The fixed array to set values in.
1641      * @param[in] offset The starting offset of the region.
1642      * @param[in] length The number of elements to set.
1643      * @param[in] native_buffer A buffer containing the short values to set.
1644      * @return Returns a status code of type `ani_status` indicating success or failure.
1645      */
1646     ani_status (*FixedArray_SetRegion_Short)(ani_env *env, ani_fixedarray_short array, ani_size offset, ani_size length,
1647                                              const ani_short *native_buffer);
1648 
1649     /**
1650      * @brief Sets a region of integer values in a fixed array.
1651      *
1652      * This function sets a portion of the specified integer fixed array using a native buffer.
1653      *
1654      * @param[in] env A pointer to the environment structure.
1655      * @param[in] array The fixed array to set values in.
1656      * @param[in] offset The starting offset of the region.
1657      * @param[in] length The number of elements to set.
1658      * @param[in] native_buffer A buffer containing the integer values to set.
1659      * @return Returns a status code of type `ani_status` indicating success or failure.
1660      */
1661     ani_status (*FixedArray_SetRegion_Int)(ani_env *env, ani_fixedarray_int array, ani_size offset, ani_size length,
1662                                            const ani_int *native_buffer);
1663 
1664     /**
1665      * @brief Sets a region of long integer values in a fixed array.
1666      *
1667      * This function sets a portion of the specified long integer fixed array using a native buffer.
1668      *
1669      * @param[in] env A pointer to the environment structure.
1670      * @param[in] array The fixed array to set values in.
1671      * @param[in] offset The starting offset of the region.
1672      * @param[in] length The number of elements to set.
1673      * @param[in] native_buffer A buffer containing the long integer values to set.
1674      * @return Returns a status code of type `ani_status` indicating success or failure.
1675      */
1676     ani_status (*FixedArray_SetRegion_Long)(ani_env *env, ani_fixedarray_long array, ani_size offset, ani_size length,
1677                                             const ani_long *native_buffer);
1678 
1679     /**
1680      * @brief Sets a region of float values in a fixed array.
1681      *
1682      * This function sets a portion of the specified float fixed array using a native buffer.
1683      *
1684      * @param[in] env A pointer to the environment structure.
1685      * @param[in] array The fixed array to set values in.
1686      * @param[in] offset The starting offset of the region.
1687      * @param[in] length The number of elements to set.
1688      * @param[in] native_buffer A buffer containing the float values to set.
1689      * @return Returns a status code of type `ani_status` indicating success or failure.
1690      */
1691     ani_status (*FixedArray_SetRegion_Float)(ani_env *env, ani_fixedarray_float array, ani_size offset, ani_size length,
1692                                              const ani_float *native_buffer);
1693 
1694     /**
1695      * @brief Sets a region of double values in a fixed array.
1696      *
1697      * This function sets a portion of the specified double fixed array using a native buffer.
1698      *
1699      * @param[in] env A pointer to the environment structure.
1700      * @param[in] array The fixed array to set values in.
1701      * @param[in] offset The starting offset of the region.
1702      * @param[in] length The number of elements to set.
1703      * @param[in] native_buffer A buffer containing the double values to set.
1704      * @return Returns a status code of type `ani_status` indicating success or failure.
1705      */
1706     ani_status (*FixedArray_SetRegion_Double)(ani_env *env, ani_fixedarray_double array, ani_size offset,
1707                                               ani_size length, const ani_double *native_buffer);
1708 
1709     /**
1710      * @brief Pins a fixed array in memory.
1711      *
1712      * This function pins a fixed array of primitive types in memory to ensure it is not moved by the garbage collector.
1713      *
1714      * @param[in] env A pointer to the environment structure.
1715      * @param[in] primitive_array The fixed array to pin.
1716      * @param[out] result A pointer to store the memory address of the pinned array.
1717      * @return Returns a status code of type `ani_status` indicating success or failure.
1718      */
1719     ani_status (*FixedArray_Pin)(ani_env *env, ani_fixedarray primitive_array, void **result);
1720 
1721     /**
1722      * @brief Unpins a fixed array in memory.
1723      *
1724      * This function unpins a previously pinned fixed array, allowing it to be moved by the garbage collector.
1725      *
1726      * @param[in] env A pointer to the environment structure.
1727      * @param[in] primitive_array The fixed array to unpin.
1728      * @param[in] data A pointer to the pinned memory that was previously retrieved.
1729      * @return Returns a status code of type `ani_status` indicating success or failure.
1730      */
1731     ani_status (*FixedArray_Unpin)(ani_env *env, ani_fixedarray primitive_array, void *data);
1732 
1733     /**
1734      * @brief Creates a new fixed array of references.
1735      *
1736      * This function creates a new fixed array of references, optionally initializing it with an array of references.
1737      *
1738      * @param[in] env A pointer to the environment structure.
1739      * @param[in] length The length of the array to be created.
1740      * @param[in] initial_array An optional array of references to initialize the fixed array. Can be null.
1741      * @param[out] result A pointer to store the created fixed array of references.
1742      * @return Returns a status code of type `ani_status` indicating success or failure.
1743      */
1744     ani_status (*FixedArray_New_Ref)(ani_env *env, ani_size length, ani_ref *initial_array, ani_fixedarray_ref *result);
1745 
1746     /**
1747      * @brief Sets a reference at a specific index in a fixed array.
1748      *
1749      * This function sets the value of a reference at the specified index in the fixed array.
1750      *
1751      * @param[in] env A pointer to the environment structure.
1752      * @param[in] array The fixed array of references to modify.
1753      * @param[in] index The index at which to set the reference.
1754      * @param[in] ref The reference to set at the specified index.
1755      * @return Returns a status code of type `ani_status` indicating success or failure.
1756      */
1757     ani_status (*FixedArray_Set_Ref)(ani_env *env, ani_fixedarray_ref array, ani_size index, ani_ref ref);
1758 
1759     /**
1760      * @brief Retrieves a reference from a specific index in a fixed array.
1761      *
1762      * This function retrieves the value of a reference at the specified index in the fixed array.
1763      *
1764      * @param[in] env A pointer to the environment structure.
1765      * @param[in] array The fixed array of references to query.
1766      * @param[in] index The index from which to retrieve the reference.
1767      * @param[out] result A pointer to store the retrieved reference.
1768      * @return Returns a status code of type `ani_status` indicating success or failure.
1769      */
1770     ani_status (*FixedArray_Get_Ref)(ani_env *env, ani_fixedarray_ref array, ani_size index, ani_ref *result);
1771 
1772     /**
1773      * @brief Retrieves an enum value by its name.
1774      *
1775      * This function retrieves an enum value associated with the specified name.
1776      *
1777      * @param[in] env A pointer to the environment structure.
1778      * @param[in] enm The enum to search within.
1779      * @param[in] name The name of the enum value to retrieve.
1780      * @param[out] result A pointer to store the retrieved enum value.
1781      * @return Returns a status code of type `ani_status` indicating success or failure.
1782      */
1783     ani_status (*Enum_GetEnumValueByName)(ani_env *env, ani_enum enm, const char *name, ani_enum_value *result);
1784 
1785     /**
1786      * @brief Retrieves an enum value by its index.
1787      *
1788      * This function retrieves an enum value located at the specified index.
1789      *
1790      * @param[in] env A pointer to the environment structure.
1791      * @param[in] enm The enum to search within.
1792      * @param[in] index The index of the enum value to retrieve.
1793      * @param[out] result A pointer to store the retrieved enum value.
1794      * @return Returns a status code of type `ani_status` indicating success or failure.
1795      */
1796     ani_status (*Enum_GetEnumValueByIndex)(ani_env *env, ani_enum enm, ani_size index, ani_enum_value *result);
1797 
1798     /**
1799      * @brief Retrieves the enum associated with an enum value.
1800      *
1801      * This function retrieves the enum to which the specified enum value belongs.
1802      *
1803      * @param[in] env A pointer to the environment structure.
1804      * @param[in] enum_value The enum value whose associated enum is to be retrieved.
1805      * @param[out] result A pointer to store the retrieved enum.
1806      * @return Returns a status code of type `ani_status` indicating success or failure.
1807      */
1808     ani_status (*EnumValue_GetEnum)(ani_env *env, ani_enum_value enum_value, ani_enum *result);
1809 
1810     /**
1811      * @brief Retrieves the underlying value of an enum value.
1812      *
1813      * This function retrieves the object representing the value of the specified enum value.
1814      *
1815      * @param[in] env A pointer to the environment structure.
1816      * @param[in] enum_value The enum value whose underlying value is to be retrieved.
1817      * @param[out] result A pointer to store the retrieved object.
1818      * @return Returns a status code of type `ani_status` indicating success or failure.
1819      */
1820     ani_status (*EnumValue_GetValue)(ani_env *env, ani_enum_value enum_value, ani_object *result);
1821 
1822     /**
1823      * @brief Retrieves the name of an enum value.
1824      *
1825      * This function retrieves the name associated with the specified enum value.
1826      *
1827      * @param[in] env A pointer to the environment structure.
1828      * @param[in] enum_value The enum value whose name is to be retrieved.
1829      * @param[out] result A pointer to store the retrieved name.
1830      * @return Returns a status code of type `ani_status` indicating success or failure.
1831      */
1832     ani_status (*EnumValue_GetName)(ani_env *env, ani_enum_value enum_value, ani_string *result);
1833 
1834     /**
1835      * @brief Retrieves the index of an enum value.
1836      *
1837      * This function retrieves the index of the specified enum value within its enum.
1838      *
1839      * @param[in] env A pointer to the environment structure.
1840      * @param[in] enum_value The enum value whose index is to be retrieved.
1841      * @param[out] result A pointer to store the retrieved index.
1842      * @return Returns a status code of type `ani_status` indicating success or failure.
1843      */
1844     ani_status (*EnumValue_GetIndex)(ani_env *env, ani_enum_value enum_value, ani_size *result);
1845 
1846     /**
1847      * @brief Invokes a functional object.
1848      *
1849      * This function invokes a functional object (e.g., a function or callable object) with the specified arguments.
1850      *
1851      * @param[in] env A pointer to the environment structure.
1852      * @param[in] fn The functional object to invoke.
1853      * @param[in] argc The number of arguments being passed to the functional object.
1854      * @param[in] argv A pointer to an array of references representing the arguments. Can be null if `argc` is 0.
1855      * @param[out] result A pointer to store the result of the invocation. Can be null if the functional object does not
1856      * return a value.
1857      * @return Returns a status code of type `ani_status` indicating success or failure.
1858      */
1859     ani_status (*FunctionalObject_Call)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result);
1860 
1861     /**
1862      * @brief Sets a boolean value to a variable.
1863      *
1864      * This function assigns a boolean value to the specified variable.
1865      *
1866      * @param[in] env A pointer to the environment structure.
1867      * @param[in] variable The variable to modify.
1868      * @param[in] value The boolean value to assign to the variable.
1869      * @return Returns a status code of type `ani_status` indicating success or failure.
1870      */
1871     ani_status (*Variable_SetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean value);
1872 
1873     /**
1874      * @brief Sets a character value to a variable.
1875      *
1876      * This function assigns a character value to the specified variable.
1877      *
1878      * @param[in] env A pointer to the environment structure.
1879      * @param[in] variable The variable to modify.
1880      * @param[in] value The character value to assign to the variable.
1881      * @return Returns a status code of type `ani_status` indicating success or failure.
1882      */
1883     ani_status (*Variable_SetValue_Char)(ani_env *env, ani_variable variable, ani_char value);
1884 
1885     /**
1886      * @brief Sets a byte value to a variable.
1887      *
1888      * This function assigns a byte value to the specified variable.
1889      *
1890      * @param[in] env A pointer to the environment structure.
1891      * @param[in] variable The variable to modify.
1892      * @param[in] value The byte value to assign to the variable.
1893      * @return Returns a status code of type `ani_status` indicating success or failure.
1894      */
1895     ani_status (*Variable_SetValue_Byte)(ani_env *env, ani_variable variable, ani_byte value);
1896 
1897     /**
1898      * @brief Sets a short value to a variable.
1899      *
1900      * This function assigns a short integer value to the specified variable.
1901      *
1902      * @param[in] env A pointer to the environment structure.
1903      * @param[in] variable The variable to modify.
1904      * @param[in] value The short integer value to assign to the variable.
1905      * @return Returns a status code of type `ani_status` indicating success or failure.
1906      */
1907     ani_status (*Variable_SetValue_Short)(ani_env *env, ani_variable variable, ani_short value);
1908 
1909     /**
1910      * @brief Sets an integer value to a variable.
1911      *
1912      * This function assigns an integer value to the specified variable.
1913      *
1914      * @param[in] env A pointer to the environment structure.
1915      * @param[in] variable The variable to modify.
1916      * @param[in] value The integer value to assign to the variable.
1917      * @return Returns a status code of type `ani_status` indicating success or failure.
1918      */
1919     ani_status (*Variable_SetValue_Int)(ani_env *env, ani_variable variable, ani_int value);
1920 
1921     /**
1922      * @brief Sets a long value to a variable.
1923      *
1924      * This function assigns a long integer value to the specified variable.
1925      *
1926      * @param[in] env A pointer to the environment structure.
1927      * @param[in] variable The variable to modify.
1928      * @param[in] value The long integer value to assign to the variable.
1929      * @return Returns a status code of type `ani_status` indicating success or failure.
1930      */
1931     ani_status (*Variable_SetValue_Long)(ani_env *env, ani_variable variable, ani_long value);
1932 
1933     /**
1934      * @brief Sets a float value to a variable.
1935      *
1936      * This function assigns a float value to the specified variable.
1937      *
1938      * @param[in] env A pointer to the environment structure.
1939      * @param[in] variable The variable to modify.
1940      * @param[in] value The float value to assign to the variable.
1941      * @return Returns a status code of type `ani_status` indicating success or failure.
1942      */
1943     ani_status (*Variable_SetValue_Float)(ani_env *env, ani_variable variable, ani_float value);
1944 
1945     /**
1946      * @brief Sets a double value to a variable.
1947      *
1948      * This function assigns a double value to the specified variable.
1949      *
1950      * @param[in] env A pointer to the environment structure.
1951      * @param[in] variable The variable to modify.
1952      * @param[in] value The double value to assign to the variable.
1953      * @return Returns a status code of type `ani_status` indicating success or failure.
1954      */
1955     ani_status (*Variable_SetValue_Double)(ani_env *env, ani_variable variable, ani_double value);
1956 
1957     /**
1958      * @brief Sets a reference value to a variable.
1959      *
1960      * This function assigns a reference value to the specified variable.
1961      *
1962      * @param[in] env A pointer to the environment structure.
1963      * @param[in] variable The variable to modify.
1964      * @param[in] value The reference value to assign to the variable.
1965      * @return Returns a status code of type `ani_status` indicating success or failure.
1966      */
1967     ani_status (*Variable_SetValue_Ref)(ani_env *env, ani_variable variable, ani_ref value);
1968 
1969     /**
1970      * @brief Retrieves a boolean value from a variable.
1971      *
1972      * This function fetches a boolean value from the specified variable.
1973      *
1974      * @param[in] env A pointer to the environment structure.
1975      * @param[in] variable The variable to query.
1976      * @param[out] result A pointer to store the retrieved boolean value.
1977      * @return Returns a status code of type `ani_status` indicating success or failure.
1978      */
1979     ani_status (*Variable_GetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean *result);
1980 
1981     /**
1982      * @brief Retrieves a character value from a variable.
1983      *
1984      * This function fetches a character value from the specified variable.
1985      *
1986      * @param[in] env A pointer to the environment structure.
1987      * @param[in] variable The variable to query.
1988      * @param[out] result A pointer to store the retrieved character value.
1989      * @return Returns a status code of type `ani_status` indicating success or failure.
1990      */
1991     ani_status (*Variable_GetValue_Char)(ani_env *env, ani_variable variable, ani_char *result);
1992 
1993     /**
1994      * @brief Retrieves a byte value from a variable.
1995      *
1996      * This function fetches a byte value from the specified variable.
1997      *
1998      * @param[in] env A pointer to the environment structure.
1999      * @param[in] variable The variable to query.
2000      * @param[out] result A pointer to store the retrieved byte value.
2001      * @return Returns a status code of type `ani_status` indicating success or failure.
2002      */
2003     ani_status (*Variable_GetValue_Byte)(ani_env *env, ani_variable variable, ani_byte *result);
2004 
2005     /**
2006      * @brief Retrieves a short value from a variable.
2007      *
2008      * This function fetches a short integer value from the specified variable.
2009      *
2010      * @param[in] env A pointer to the environment structure.
2011      * @param[in] variable The variable to query.
2012      * @param[out] result A pointer to store the retrieved short integer value.
2013      * @return Returns a status code of type `ani_status` indicating success or failure.
2014      */
2015     ani_status (*Variable_GetValue_Short)(ani_env *env, ani_variable variable, ani_short *result);
2016 
2017     /**
2018      * @brief Retrieves an integer value from a variable.
2019      *
2020      * This function fetches an integer value from the specified variable.
2021      *
2022      * @param[in] env A pointer to the environment structure.
2023      * @param[in] variable The variable to query.
2024      * @param[out] result A pointer to store the retrieved integer value.
2025      * @return Returns a status code of type `ani_status` indicating success or failure.
2026      */
2027     ani_status (*Variable_GetValue_Int)(ani_env *env, ani_variable variable, ani_int *result);
2028 
2029     /**
2030      * @brief Retrieves a long value from a variable.
2031      *
2032      * This function fetches a long integer value from the specified variable.
2033      *
2034      * @param[in] env A pointer to the environment structure.
2035      * @param[in] variable The variable to query.
2036      * @param[out] result A pointer to store the retrieved long integer value.
2037      * @return Returns a status code of type `ani_status` indicating success or failure.
2038      */
2039     ani_status (*Variable_GetValue_Long)(ani_env *env, ani_variable variable, ani_long *result);
2040 
2041     /**
2042      * @brief Retrieves a float value from a variable.
2043      *
2044      * This function fetches a float value from the specified variable.
2045      *
2046      * @param[in] env A pointer to the environment structure.
2047      * @param[in] variable The variable to query.
2048      * @param[out] result A pointer to store the retrieved float value.
2049      * @return Returns a status code of type `ani_status` indicating success or failure.
2050      */
2051     ani_status (*Variable_GetValue_Float)(ani_env *env, ani_variable variable, ani_float *result);
2052 
2053     /**
2054      * @brief Retrieves a double value from a variable.
2055      *
2056      * This function fetches a double value from the specified variable.
2057      *
2058      * @param[in] env A pointer to the environment structure.
2059      * @param[in] variable The variable to query.
2060      * @param[out] result A pointer to store the retrieved double value.
2061      * @return Returns a status code of type `ani_status` indicating success or failure.
2062      */
2063     ani_status (*Variable_GetValue_Double)(ani_env *env, ani_variable variable, ani_double *result);
2064 
2065     /**
2066      * @brief Retrieves a reference value from a variable.
2067      *
2068      * This function fetches a reference value from the specified variable.
2069      *
2070      * @param[in] env A pointer to the environment structure.
2071      * @param[in] variable The variable to query.
2072      * @param[out] result A pointer to store the retrieved reference value.
2073      * @return Returns a status code of type `ani_status` indicating success or failure.
2074      */
2075     ani_status (*Variable_GetValue_Ref)(ani_env *env, ani_variable variable, ani_ref *result);
2076 
2077     /**
2078      * @brief Calls a function and retrieves a boolean result.
2079      *
2080      * This function calls the specified function with variadic arguments and retrieves a boolean result.
2081      *
2082      * @param[in] env A pointer to the environment structure.
2083      * @param[in] fn The function to call.
2084      * @param[out] result A pointer to store the boolean result.
2085      * @param[in] ... Variadic arguments to pass to the function.
2086      * @return Returns a status code of type `ani_status` indicating success or failure.
2087      */
2088     ani_status (*Function_Call_Boolean)(ani_env *env, ani_function fn, ani_boolean *result, ...);
2089 
2090     /**
2091      * @brief Calls a function and retrieves a boolean result (array-based).
2092      *
2093      * This function calls the specified function with arguments provided in an array and retrieves a boolean result.
2094      *
2095      * @param[in] env A pointer to the environment structure.
2096      * @param[in] fn The function to call.
2097      * @param[out] result A pointer to store the boolean result.
2098      * @param[in] args A pointer to an array of arguments to pass to the function.
2099      * @return Returns a status code of type `ani_status` indicating success or failure.
2100      */
2101     ani_status (*Function_Call_Boolean_A)(ani_env *env, ani_function fn, ani_boolean *result, const ani_value *args);
2102 
2103     /**
2104      * @brief Calls a function and retrieves a boolean result (variadic arguments).
2105      *
2106      * This function calls the specified function with arguments provided in a `va_list` and retrieves a boolean result.
2107      *
2108      * @param[in] env A pointer to the environment structure.
2109      * @param[in] fn The function to call.
2110      * @param[out] result A pointer to store the boolean result.
2111      * @param[in] args A `va_list` containing the arguments to pass to the function.
2112      * @return Returns a status code of type `ani_status` indicating success or failure.
2113      */
2114     ani_status (*Function_Call_Boolean_V)(ani_env *env, ani_function fn, ani_boolean *result, va_list args);
2115 
2116     /**
2117      * @brief Calls a function and retrieves a character result.
2118      *
2119      * This function calls the specified function with variadic arguments and retrieves a character result.
2120      *
2121      * @param[in] env A pointer to the environment structure.
2122      * @param[in] fn The function to call.
2123      * @param[out] result A pointer to store the character result.
2124      * @param[in] ... Variadic arguments to pass to the function.
2125      * @return Returns a status code of type `ani_status` indicating success or failure.
2126      */
2127     ani_status (*Function_Call_Char)(ani_env *env, ani_function fn, ani_char *result, ...);
2128 
2129     /**
2130      * @brief Calls a function and retrieves a character result (array-based).
2131      *
2132      * This function calls the specified function with arguments provided in an array and retrieves a character result.
2133      *
2134      * @param[in] env A pointer to the environment structure.
2135      * @param[in] fn The function to call.
2136      * @param[out] result A pointer to store the character result.
2137      * @param[in] args A pointer to an array of arguments to pass to the function.
2138      * @return Returns a status code of type `ani_status` indicating success or failure.
2139      */
2140     ani_status (*Function_Call_Char_A)(ani_env *env, ani_function fn, ani_char *result, const ani_value *args);
2141 
2142     /**
2143      * @brief Calls a function and retrieves a character result (variadic arguments).
2144      *
2145      * This function calls the specified function with arguments provided in a `va_list` and retrieves a character
2146      * result.
2147      *
2148      * @param[in] env A pointer to the environment structure.
2149      * @param[in] fn The function to call.
2150      * @param[out] result A pointer to store the character result.
2151      * @param[in] args A `va_list` containing the arguments to pass to the function.
2152      * @return Returns a status code of type `ani_status` indicating success or failure.
2153      */
2154     ani_status (*Function_Call_Char_V)(ani_env *env, ani_function fn, ani_char *result, va_list args);
2155 
2156     /**
2157      * @brief Calls a function and retrieves a byte result.
2158      *
2159      * This function calls the specified function with variadic arguments and retrieves a byte result.
2160      *
2161      * @param[in] env A pointer to the environment structure.
2162      * @param[in] fn The function to call.
2163      * @param[out] result A pointer to store the byte result.
2164      * @param[in] ... Variadic arguments to pass to the function.
2165      * @return Returns a status code of type `ani_status` indicating success or failure.
2166      */
2167     ani_status (*Function_Call_Byte)(ani_env *env, ani_function fn, ani_byte *result, ...);
2168 
2169     /**
2170      * @brief Calls a function and retrieves a byte result (array-based).
2171      *
2172      * This function calls the specified function with arguments provided in an array and retrieves a byte result.
2173      *
2174      * @param[in] env A pointer to the environment structure.
2175      * @param[in] fn The function to call.
2176      * @param[out] result A pointer to store the byte result.
2177      * @param[in] args A pointer to an array of arguments to pass to the function.
2178      * @return Returns a status code of type `ani_status` indicating success or failure.
2179      */
2180     ani_status (*Function_Call_Byte_A)(ani_env *env, ani_function fn, ani_byte *result, const ani_value *args);
2181 
2182     /**
2183      * @brief Calls a function and retrieves a byte result (variadic arguments).
2184      *
2185      * This function calls the specified function with arguments provided in a `va_list` and retrieves a byte result.
2186      *
2187      * @param[in] env A pointer to the environment structure.
2188      * @param[in] fn The function to call.
2189      * @param[out] result A pointer to store the byte result.
2190      * @param[in] args A `va_list` containing the arguments to pass to the function.
2191      * @return Returns a status code of type `ani_status` indicating success or failure.
2192      */
2193     ani_status (*Function_Call_Byte_V)(ani_env *env, ani_function fn, ani_byte *result, va_list args);
2194 
2195     /**
2196      * @brief Calls a function and retrieves a short result.
2197      *
2198      * This function calls the specified function with variadic arguments and retrieves a short result.
2199      *
2200      * @param[in] env A pointer to the environment structure.
2201      * @param[in] fn The function to call.
2202      * @param[out] result A pointer to store the short result.
2203      * @param[in] ... Variadic arguments to pass to the function.
2204      * @return Returns a status code of type `ani_status` indicating success or failure.
2205      */
2206     ani_status (*Function_Call_Short)(ani_env *env, ani_function fn, ani_short *result, ...);
2207 
2208     /**
2209      * @brief Calls a function and retrieves a short result (array-based).
2210      *
2211      * This function calls the specified function with arguments provided in an array and retrieves a short result.
2212      *
2213      * @param[in] env A pointer to the environment structure.
2214      * @param[in] fn The function to call.
2215      * @param[out] result A pointer to store the short result.
2216      * @param[in] args A pointer to an array of arguments to pass to the function.
2217      * @return Returns a status code of type `ani_status` indicating success or failure.
2218      */
2219     ani_status (*Function_Call_Short_A)(ani_env *env, ani_function fn, ani_short *result, const ani_value *args);
2220 
2221     /**
2222      * @brief Calls a function and retrieves a short result (variadic arguments).
2223      *
2224      * This function calls the specified function with arguments provided in a `va_list` and retrieves a short result.
2225      *
2226      * @param[in] env A pointer to the environment structure.
2227      * @param[in] fn The function to call.
2228      * @param[out] result A pointer to store the short result.
2229      * @param[in] args A `va_list` containing the arguments to pass to the function.
2230      * @return Returns a status code of type `ani_status` indicating success or failure.
2231      */
2232     ani_status (*Function_Call_Short_V)(ani_env *env, ani_function fn, ani_short *result, va_list args);
2233 
2234     /**
2235      * @brief Calls a function and retrieves an integer result.
2236      *
2237      * This function calls the specified function with variadic arguments and retrieves an integer result.
2238      *
2239      * @param[in] env A pointer to the environment structure.
2240      * @param[in] fn The function to call.
2241      * @param[out] result A pointer to store the integer result.
2242      * @param[in] ... Variadic arguments to pass to the function.
2243      * @return Returns a status code of type `ani_status` indicating success or failure.
2244      */
2245     ani_status (*Function_Call_Int)(ani_env *env, ani_function fn, ani_int *result, ...);
2246 
2247     /**
2248      * @brief Calls a function and retrieves an integer result (array-based).
2249      *
2250      * This function calls the specified function with arguments provided in an array and retrieves an integer result.
2251      *
2252      * @param[in] env A pointer to the environment structure.
2253      * @param[in] fn The function to call.
2254      * @param[out] result A pointer to store the integer result.
2255      * @param[in] args A pointer to an array of arguments to pass to the function.
2256      * @return Returns a status code of type `ani_status` indicating success or failure.
2257      */
2258     ani_status (*Function_Call_Int_A)(ani_env *env, ani_function fn, ani_int *result, const ani_value *args);
2259 
2260     /**
2261      * @brief Calls a function and retrieves an integer result (variadic arguments).
2262      *
2263      * This function calls the specified function with arguments provided in a `va_list` and retrieves an integer
2264      * result.
2265      *
2266      * @param[in] env A pointer to the environment structure.
2267      * @param[in] fn The function to call.
2268      * @param[out] result A pointer to store the integer result.
2269      * @param[in] args A `va_list` containing the arguments to pass to the function.
2270      * @return Returns a status code of type `ani_status` indicating success or failure.
2271      */
2272     ani_status (*Function_Call_Int_V)(ani_env *env, ani_function fn, ani_int *result, va_list args);
2273 
2274     /**
2275      * @brief Calls a function and retrieves a long result.
2276      *
2277      * This function calls the specified function with variadic arguments and retrieves a long result.
2278      *
2279      * @param[in] env A pointer to the environment structure.
2280      * @param[in] fn The function to call.
2281      * @param[out] result A pointer to store the long result.
2282      * @param[in] ... Variadic arguments to pass to the function.
2283      * @return Returns a status code of type `ani_status` indicating success or failure.
2284      */
2285     ani_status (*Function_Call_Long)(ani_env *env, ani_function fn, ani_long *result, ...);
2286 
2287     /**
2288      * @brief Calls a function and retrieves a long result (array-based).
2289      *
2290      * This function calls the specified function with arguments provided in an array and retrieves a long result.
2291      *
2292      * @param[in] env A pointer to the environment structure.
2293      * @param[in] fn The function to call.
2294      * @param[out] result A pointer to store the long result.
2295      * @param[in] args A pointer to an array of arguments to pass to the function.
2296      * @return Returns a status code of type `ani_status` indicating success or failure.
2297      */
2298     ani_status (*Function_Call_Long_A)(ani_env *env, ani_function fn, ani_long *result, const ani_value *args);
2299 
2300     /**
2301      * @brief Calls a function and retrieves a long result (variadic arguments).
2302      *
2303      * This function calls the specified function with arguments provided in a `va_list` and retrieves a long result.
2304      *
2305      * @param[in] env A pointer to the environment structure.
2306      * @param[in] fn The function to call.
2307      * @param[out] result A pointer to store the long result.
2308      * @param[in] args A `va_list` containing the arguments to pass to the function.
2309      * @return Returns a status code of type `ani_status` indicating success or failure.
2310      */
2311     ani_status (*Function_Call_Long_V)(ani_env *env, ani_function fn, ani_long *result, va_list args);
2312 
2313     /**
2314      * @brief Calls a function and retrieves a float result.
2315      *
2316      * This function calls the specified function with variadic arguments and retrieves a float result.
2317      *
2318      * @param[in] env A pointer to the environment structure.
2319      * @param[in] fn The function to call.
2320      * @param[out] result A pointer to store the float result.
2321      * @param[in] ... Variadic arguments to pass to the function.
2322      * @return Returns a status code of type `ani_status` indicating success or failure.
2323      */
2324     ani_status (*Function_Call_Float)(ani_env *env, ani_function fn, ani_float *result, ...);
2325 
2326     /**
2327      * @brief Calls a function and retrieves a float result (array-based).
2328      *
2329      * This function calls the specified function with arguments provided in an array and retrieves a float result.
2330      *
2331      * @param[in] env A pointer to the environment structure.
2332      * @param[in] fn The function to call.
2333      * @param[out] result A pointer to store the float result.
2334      * @param[in] args A pointer to an array of arguments to pass to the function.
2335      * @return Returns a status code of type `ani_status` indicating success or failure.
2336      */
2337     ani_status (*Function_Call_Float_A)(ani_env *env, ani_function fn, ani_float *result, const ani_value *args);
2338 
2339     /**
2340      * @brief Calls a function and retrieves a float result (variadic arguments).
2341      *
2342      * This function calls the specified function with arguments provided in a `va_list` and retrieves a float result.
2343      *
2344      * @param[in] env A pointer to the environment structure.
2345      * @param[in] fn The function to call.
2346      * @param[out] result A pointer to store the float result.
2347      * @param[in] args A `va_list` containing the arguments to pass to the function.
2348      * @return Returns a status code of type `ani_status` indicating success or failure.
2349      */
2350     ani_status (*Function_Call_Float_V)(ani_env *env, ani_function fn, ani_float *result, va_list args);
2351 
2352     /**
2353      * @brief Calls a function and retrieves a double result.
2354      *
2355      * This function calls the specified function with variadic arguments and retrieves a double result.
2356      *
2357      * @param[in] env A pointer to the environment structure.
2358      * @param[in] fn The function to call.
2359      * @param[out] result A pointer to store the double result.
2360      * @param[in] ... Variadic arguments to pass to the function.
2361      * @return Returns a status code of type `ani_status` indicating success or failure.
2362      */
2363     ani_status (*Function_Call_Double)(ani_env *env, ani_function fn, ani_double *result, ...);
2364 
2365     /**
2366      * @brief Calls a function and retrieves a double result (array-based).
2367      *
2368      * This function calls the specified function with arguments provided in an array and retrieves a double result.
2369      *
2370      * @param[in] env A pointer to the environment structure.
2371      * @param[in] fn The function to call.
2372      * @param[out] result A pointer to store the double result.
2373      * @param[in] args A pointer to an array of arguments to pass to the function.
2374      * @return Returns a status code of type `ani_status` indicating success or failure.
2375      */
2376     ani_status (*Function_Call_Double_A)(ani_env *env, ani_function fn, ani_double *result, const ani_value *args);
2377 
2378     /**
2379      * @brief Calls a function and retrieves a double result (variadic arguments).
2380      *
2381      * This function calls the specified function with arguments provided in a `va_list` and retrieves a double result.
2382      *
2383      * @param[in] env A pointer to the environment structure.
2384      * @param[in] fn The function to call.
2385      * @param[out] result A pointer to store the double result.
2386      * @param[in] args A `va_list` containing the arguments to pass to the function.
2387      * @return Returns a status code of type `ani_status` indicating success or failure.
2388      */
2389     ani_status (*Function_Call_Double_V)(ani_env *env, ani_function fn, ani_double *result, va_list args);
2390 
2391     /**
2392      * @brief Calls a function and retrieves a reference result.
2393      *
2394      * This function calls the specified function with variadic arguments and retrieves a reference result.
2395      *
2396      * @param[in] env A pointer to the environment structure.
2397      * @param[in] fn The function to call.
2398      * @param[out] result A pointer to store the reference result.
2399      * @param[in] ... Variadic arguments to pass to the function.
2400      * @return Returns a status code of type `ani_status` indicating success or failure.
2401      */
2402     ani_status (*Function_Call_Ref)(ani_env *env, ani_function fn, ani_ref *result, ...);
2403 
2404     /**
2405      * @brief Calls a function and retrieves a reference result (array-based).
2406      *
2407      * This function calls the specified function with arguments provided in an array and retrieves a reference result.
2408      *
2409      * @param[in] env A pointer to the environment structure.
2410      * @param[in] fn The function to call.
2411      * @param[out] result A pointer to store the reference result.
2412      * @param[in] args A pointer to an array of arguments to pass to the function.
2413      * @return Returns a status code of type `ani_status` indicating success or failure.
2414      */
2415     ani_status (*Function_Call_Ref_A)(ani_env *env, ani_function fn, ani_ref *result, const ani_value *args);
2416 
2417     /**
2418      * @brief Calls a function and retrieves a reference result (variadic arguments).
2419      *
2420      * This function calls the specified function with arguments provided in a `va_list` and retrieves a reference
2421      * result.
2422      *
2423      * @param[in] env A pointer to the environment structure.
2424      * @param[in] fn The function to call.
2425      * @param[out] result A pointer to store the reference result.
2426      * @param[in] args A `va_list` containing the arguments to pass to the function.
2427      * @return Returns a status code of type `ani_status` indicating success or failure.
2428      */
2429     ani_status (*Function_Call_Ref_V)(ani_env *env, ani_function fn, ani_ref *result, va_list args);
2430 
2431     /**
2432      * @brief Calls a function without returning a result.
2433      *
2434      * This function calls the specified function with variadic arguments and does not return a result.
2435      *
2436      * @param[in] env A pointer to the environment structure.
2437      * @param[in] fn The function to call.
2438      * @param[in] ... Variadic arguments to pass to the function.
2439      * @return Returns a status code of type `ani_status` indicating success or failure.
2440      */
2441     ani_status (*Function_Call_Void)(ani_env *env, ani_function fn, ...);
2442 
2443     /**
2444      * @brief Calls a function without returning a result (array-based).
2445      *
2446      * This function calls the specified function with arguments provided in an array and does not return a result.
2447      *
2448      * @param[in] env A pointer to the environment structure.
2449      * @param[in] fn The function to call.
2450      * @param[in] args A pointer to an array of arguments to pass to the function.
2451      * @return Returns a status code of type `ani_status` indicating success or failure.
2452      */
2453     ani_status (*Function_Call_Void_A)(ani_env *env, ani_function fn, const ani_value *args);
2454 
2455     /**
2456      * @brief Calls a function without returning a result (variadic arguments).
2457      *
2458      * This function calls the specified function with arguments provided in a `va_list` and does not return a result.
2459      *
2460      * @param[in] env A pointer to the environment structure.
2461      * @param[in] fn The function to call.
2462      * @param[in] args A `va_list` containing the arguments to pass to the function.
2463      * @return Returns a status code of type `ani_status` indicating success or failure.
2464      */
2465     ani_status (*Function_Call_Void_V)(ani_env *env, ani_function fn, va_list args);
2466 
2467     /**
2468      * @brief Retrieves the partial class representation.
2469      *
2470      * This function retrieves the partial class representation of the specified class.
2471      *
2472      * @param[in] env A pointer to the environment structure.
2473      * @param[in] cls The class to query.
2474      * @param[out] result A pointer to store the partial class representation.
2475      * @return Returns a status code of type `ani_status` indicating success or failure.
2476      */
2477     ani_status (*Class_GetPartial)(ani_env *env, ani_class cls, ani_class *result);
2478 
2479     /**
2480      * @brief Retrieves the required class representation.
2481      *
2482      * This function retrieves the required class representation of the specified class.
2483      *
2484      * @param[in] env A pointer to the environment structure.
2485      * @param[in] cls The class to query.
2486      * @param[out] result A pointer to store the required class representation.
2487      * @return Returns a status code of type `ani_status` indicating success or failure.
2488      */
2489     ani_status (*Class_GetRequired)(ani_env *env, ani_class cls, ani_class *result);
2490 
2491     /**
2492      * @brief Retrieves a field from the class.
2493      *
2494      * This function retrieves the specified field by name from the given class.
2495      *
2496      * @param[in] env A pointer to the environment structure.
2497      * @param[in] cls The class to query.
2498      * @param[in] name The name of the field to retrieve.
2499      * @param[out] result A pointer to store the retrieved field.
2500      * @return Returns a status code of type `ani_status` indicating success or failure.
2501      */
2502     ani_status (*Class_GetField)(ani_env *env, ani_class cls, const char *name, ani_field *result);
2503 
2504     /**
2505      * @brief Retrieves a static field from the class.
2506      *
2507      * This function retrieves the specified static field by name from the given class.
2508      *
2509      * @param[in] env A pointer to the environment structure.
2510      * @param[in] cls The class to query.
2511      * @param[in] name The name of the static field to retrieve.
2512      * @param[out] result A pointer to store the retrieved static field.
2513      * @return Returns a status code of type `ani_status` indicating success or failure.
2514      */
2515     ani_status (*Class_GetStaticField)(ani_env *env, ani_class cls, const char *name, ani_static_field *result);
2516 
2517     /**
2518      * @brief Retrieves a method from the class.
2519      *
2520      * This function retrieves the specified method by name and signature from the given class.
2521      *
2522      * @param[in] env A pointer to the environment structure.
2523      * @param[in] cls The class to query.
2524      * @param[in] name The name of the method to retrieve.
2525      * @param[in] signature The signature of the method to retrieve.
2526      * @param[out] result A pointer to store the retrieved method.
2527      * @return Returns a status code of type `ani_status` indicating success or failure.
2528      */
2529     ani_status (*Class_GetMethod)(ani_env *env, ani_class cls, const char *name, const char *signature,
2530                                   ani_method *result);
2531 
2532     /**
2533      * @brief Retrieves a static method from the class.
2534      *
2535      * This function retrieves the specified static method by name and signature from the given class.
2536      *
2537      * @param[in] env A pointer to the environment structure.
2538      * @param[in] cls The class to query.
2539      * @param[in] name The name of the static method to retrieve.
2540      * @param[in] signature The signature of the static method to retrieve.
2541      * @param[out] result A pointer to store the retrieved static method.
2542      * @return Returns a status code of type `ani_status` indicating success or failure.
2543      */
2544     ani_status (*Class_GetStaticMethod)(ani_env *env, ani_class cls, const char *name, const char *signature,
2545                                         ani_static_method *result);
2546 
2547     /**
2548      * @brief Retrieves a property from the class.
2549      *
2550      * This function retrieves the specified property by name from the given class.
2551      *
2552      * @param[in] env A pointer to the environment structure.
2553      * @param[in] cls The class to query.
2554      * @param[in] name The name of the property to retrieve.
2555      * @param[out] result A pointer to store the retrieved property.
2556      * @return Returns a status code of type `ani_status` indicating success or failure.
2557      */
2558     ani_status (*Class_GetProperty)(ani_env *env, ani_class cls, const char *name, ani_property *result);
2559 
2560     /**
2561      * @brief Retrieves the setter method of a property from the class.
2562      *
2563      * This function retrieves the setter method for the specified property by name from the given class.
2564      *
2565      * @param[in] env A pointer to the environment structure.
2566      * @param[in] cls The class to query.
2567      * @param[in] name The name of the property whose setter is to be retrieved.
2568      * @param[out] result A pointer to store the retrieved setter method.
2569      * @return Returns a status code of type `ani_status` indicating success or failure.
2570      */
2571     ani_status (*Class_GetSetter)(ani_env *env, ani_class cls, const char *name, ani_method *result);
2572 
2573     /**
2574      * @brief Retrieves the getter method of a property from the class.
2575      *
2576      * This function retrieves the getter method for the specified property by name from the given class.
2577      *
2578      * @param[in] env A pointer to the environment structure.
2579      * @param[in] cls The class to query.
2580      * @param[in] name The name of the property whose getter is to be retrieved.
2581      * @param[out] result A pointer to store the retrieved getter method.
2582      * @return Returns a status code of type `ani_status` indicating success or failure.
2583      */
2584     ani_status (*Class_GetGetter)(ani_env *env, ani_class cls, const char *name, ani_method *result);
2585 
2586     /**
2587      * @brief Retrieves the indexable getter method from the class.
2588      *
2589      * This function retrieves the indexable getter method for the specified signature from the given class.
2590      *
2591      * @param[in] env A pointer to the environment structure.
2592      * @param[in] cls The class to query.
2593      * @param[in] signature The signature of the indexable getter to retrieve.
2594      * @param[out] result A pointer to store the retrieved indexable getter method.
2595      * @return Returns a status code of type `ani_status` indicating success or failure.
2596      */
2597     ani_status (*Class_GetIndexableGetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result);
2598 
2599     /**
2600      * @brief Retrieves the indexable setter method from the class.
2601      *
2602      * This function retrieves the indexable setter method for the specified signature from the given class.
2603      *
2604      * @param[in] env A pointer to the environment structure.
2605      * @param[in] cls The class to query.
2606      * @param[in] signature The signature of the indexable setter to retrieve.
2607      * @param[out] result A pointer to store the retrieved indexable setter method.
2608      * @return Returns a status code of type `ani_status` indicating success or failure.
2609      */
2610     ani_status (*Class_GetIndexableSetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result);
2611 
2612     /**
2613      * @brief Retrieves the iterator method from the class.
2614      *
2615      * This function retrieves the iterator method from the specified class.
2616      *
2617      * @param[in] env A pointer to the environment structure.
2618      * @param[in] cls The class to query.
2619      * @param[out] result A pointer to store the retrieved iterator method.
2620      * @return Returns a status code of type `ani_status` indicating success or failure.
2621      */
2622     ani_status (*Class_GetIterator)(ani_env *env, ani_class cls, ani_method *result);
2623 
2624     /**
2625      * @brief Retrieves a boolean value from a static field of a class.
2626      *
2627      * This function retrieves the boolean value of the specified static field from the given class.
2628      *
2629      * @param[in] env A pointer to the environment structure.
2630      * @param[in] cls The class containing the static field.
2631      * @param[in] field The static field to retrieve.
2632      * @param[out] result A pointer to store the retrieved boolean value.
2633      * @return Returns a status code of type `ani_status` indicating success or failure.
2634      */
2635     ani_status (*Class_GetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field,
2636                                                ani_boolean *result);
2637 
2638     /**
2639      * @brief Retrieves a character value from a static field of a class.
2640      *
2641      * This function retrieves the character value of the specified static field from the given class.
2642      *
2643      * @param[in] env A pointer to the environment structure.
2644      * @param[in] cls The class containing the static field.
2645      * @param[in] field The static field to retrieve.
2646      * @param[out] result A pointer to store the retrieved character value.
2647      * @return Returns a status code of type `ani_status` indicating success or failure.
2648      */
2649     ani_status (*Class_GetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char *result);
2650 
2651     /**
2652      * @brief Retrieves a byte value from a static field of a class.
2653      *
2654      * This function retrieves the byte value of the specified static field from the given class.
2655      *
2656      * @param[in] env A pointer to the environment structure.
2657      * @param[in] cls The class containing the static field.
2658      * @param[in] field The static field to retrieve.
2659      * @param[out] result A pointer to store the retrieved byte value.
2660      * @return Returns a status code of type `ani_status` indicating success or failure.
2661      */
2662     ani_status (*Class_GetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte *result);
2663 
2664     /**
2665      * @brief Retrieves a short value from a static field of a class.
2666      *
2667      * This function retrieves the short value of the specified static field from the given class.
2668      *
2669      * @param[in] env A pointer to the environment structure.
2670      * @param[in] cls The class containing the static field.
2671      * @param[in] field The static field to retrieve.
2672      * @param[out] result A pointer to store the retrieved short value.
2673      * @return Returns a status code of type `ani_status` indicating success or failure.
2674      */
2675     ani_status (*Class_GetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short *result);
2676 
2677     /**
2678      * @brief Retrieves an integer value from a static field of a class.
2679      *
2680      * This function retrieves the integer value of the specified static field from the given class.
2681      *
2682      * @param[in] env A pointer to the environment structure.
2683      * @param[in] cls The class containing the static field.
2684      * @param[in] field The static field to retrieve.
2685      * @param[out] result A pointer to store the retrieved integer value.
2686      * @return Returns a status code of type `ani_status` indicating success or failure.
2687      */
2688     ani_status (*Class_GetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int *result);
2689 
2690     /**
2691      * @brief Retrieves a long value from a static field of a class.
2692      *
2693      * This function retrieves the long value of the specified static field from the given class.
2694      *
2695      * @param[in] env A pointer to the environment structure.
2696      * @param[in] cls The class containing the static field.
2697      * @param[in] field The static field to retrieve.
2698      * @param[out] result A pointer to store the retrieved long value.
2699      * @return Returns a status code of type `ani_status` indicating success or failure.
2700      */
2701     ani_status (*Class_GetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long *result);
2702 
2703     /**
2704      * @brief Retrieves a float value from a static field of a class.
2705      *
2706      * This function retrieves the float value of the specified static field from the given class.
2707      *
2708      * @param[in] env A pointer to the environment structure.
2709      * @param[in] cls The class containing the static field.
2710      * @param[in] field The static field to retrieve.
2711      * @param[out] result A pointer to store the retrieved float value.
2712      * @return Returns a status code of type `ani_status` indicating success or failure.
2713      */
2714     ani_status (*Class_GetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float *result);
2715 
2716     /**
2717      * @brief Retrieves a double value from a static field of a class.
2718      *
2719      * This function retrieves the double value of the specified static field from the given class.
2720      *
2721      * @param[in] env A pointer to the environment structure.
2722      * @param[in] cls The class containing the static field.
2723      * @param[in] field The static field to retrieve.
2724      * @param[out] result A pointer to store the retrieved double value.
2725      * @return Returns a status code of type `ani_status` indicating success or failure.
2726      */
2727     ani_status (*Class_GetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double *result);
2728 
2729     /**
2730      * @brief Retrieves a reference value from a static field of a class.
2731      *
2732      * This function retrieves the reference value of the specified static field from the given class.
2733      *
2734      * @param[in] env A pointer to the environment structure.
2735      * @param[in] cls The class containing the static field.
2736      * @param[in] field The static field to retrieve.
2737      * @param[out] result A pointer to store the retrieved reference value.
2738      * @return Returns a status code of type `ani_status` indicating success or failure.
2739      */
2740     ani_status (*Class_GetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref *result);
2741 
2742     /**
2743      * @brief Sets a boolean value to a static field of a class.
2744      *
2745      * This function assigns a boolean value to the specified static field of the given class.
2746      *
2747      * @param[in] env A pointer to the environment structure.
2748      * @param[in] cls The class containing the static field.
2749      * @param[in] field The static field to modify.
2750      * @param[in] value The boolean value to assign.
2751      * @return Returns a status code of type `ani_status` indicating success or failure.
2752      */
2753     ani_status (*Class_SetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, ani_boolean value);
2754 
2755     /**
2756      * @brief Sets a character value to a static field of a class.
2757      *
2758      * This function assigns a character value to the specified static field of the given class.
2759      *
2760      * @param[in] env A pointer to the environment structure.
2761      * @param[in] cls The class containing the static field.
2762      * @param[in] field The static field to modify.
2763      * @param[in] value The character value to assign.
2764      * @return Returns a status code of type `ani_status` indicating success or failure.
2765      */
2766     ani_status (*Class_SetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char value);
2767 
2768     /**
2769      * @brief Sets a byte value to a static field of a class.
2770      *
2771      * This function assigns a byte value to the specified static field of the given class.
2772      *
2773      * @param[in] env A pointer to the environment structure.
2774      * @param[in] cls The class containing the static field.
2775      * @param[in] field The static field to modify.
2776      * @param[in] value The byte value to assign.
2777      * @return Returns a status code of type `ani_status` indicating success or failure.
2778      */
2779     ani_status (*Class_SetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte value);
2780 
2781     /**
2782      * @brief Sets a short value to a static field of a class.
2783      *
2784      * This function assigns a short value to the specified static field of the given class.
2785      *
2786      * @param[in] env A pointer to the environment structure.
2787      * @param[in] cls The class containing the static field.
2788      * @param[in] field The static field to modify.
2789      * @param[in] value The short value to assign.
2790      * @return Returns a status code of type `ani_status` indicating success or failure.
2791      */
2792     ani_status (*Class_SetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short value);
2793 
2794     /**
2795      * @brief Sets an integer value to a static field of a class.
2796      *
2797      * This function assigns an integer value to the specified static field of the given class.
2798      *
2799      * @param[in] env A pointer to the environment structure.
2800      * @param[in] cls The class containing the static field.
2801      * @param[in] field The static field to modify.
2802      * @param[in] value The integer value to assign.
2803      * @return Returns a status code of type `ani_status` indicating success or failure.
2804      */
2805     ani_status (*Class_SetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int value);
2806 
2807     /**
2808      * @brief Sets a long value to a static field of a class.
2809      *
2810      * This function assigns a long value to the specified static field of the given class.
2811      *
2812      * @param[in] env A pointer to the environment structure.
2813      * @param[in] cls The class containing the static field.
2814      * @param[in] field The static field to modify.
2815      * @param[in] value The long value to assign.
2816      * @return Returns a status code of type `ani_status` indicating success or failure.
2817      */
2818     ani_status (*Class_SetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long value);
2819 
2820     /**
2821      * @brief Sets a float value to a static field of a class.
2822      *
2823      * This function assigns a float value to the specified static field of the given class.
2824      *
2825      * @param[in] env A pointer to the environment structure.
2826      * @param[in] cls The class containing the static field.
2827      * @param[in] field The static field to modify.
2828      * @param[in] value The float value to assign.
2829      * @return Returns a status code of type `ani_status` indicating success or failure.
2830      */
2831     ani_status (*Class_SetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float value);
2832 
2833     /**
2834      * @brief Sets a double value to a static field of a class.
2835      *
2836      * This function assigns a double value to the specified static field of the given class.
2837      *
2838      * @param[in] env A pointer to the environment structure.
2839      * @param[in] cls The class containing the static field.
2840      * @param[in] field The static field to modify.
2841      * @param[in] value The double value to assign.
2842      * @return Returns a status code of type `ani_status` indicating success or failure.
2843      */
2844     ani_status (*Class_SetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double value);
2845 
2846     /**
2847      * @brief Sets a reference value to a static field of a class.
2848      *
2849      * This function assigns a reference value to the specified static field of the given class.
2850      *
2851      * @param[in] env A pointer to the environment structure.
2852      * @param[in] cls The class containing the static field.
2853      * @param[in] field The static field to modify.
2854      * @param[in] value The reference value to assign.
2855      * @return Returns a status code of type `ani_status` indicating success or failure.
2856      */
2857     ani_status (*Class_SetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref value);
2858 
2859     /**
2860      * @brief Retrieves a boolean value from a static field of a class by its name.
2861      *
2862      * This function retrieves the boolean value of the specified static field from the given class by its name.
2863      *
2864      * @param[in] env A pointer to the environment structure.
2865      * @param[in] cls The class containing the static field.
2866      * @param[in] name The name of the static field to retrieve.
2867      * @param[out] result A pointer to store the retrieved boolean value.
2868      * @return Returns a status code of type `ani_status` indicating success or failure.
2869      */
2870     ani_status (*Class_GetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name,
2871                                                      ani_boolean *result);
2872 
2873     /**
2874      * @brief Retrieves a character value from a static field of a class by its name.
2875      *
2876      * This function retrieves the character value of the specified static field from the given class by its name.
2877      *
2878      * @param[in] env A pointer to the environment structure.
2879      * @param[in] cls The class containing the static field.
2880      * @param[in] name The name of the static field to retrieve.
2881      * @param[out] result A pointer to store the retrieved character value.
2882      * @return Returns a status code of type `ani_status` indicating success or failure.
2883      */
2884     ani_status (*Class_GetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result);
2885 
2886     /**
2887      * @brief Retrieves a byte value from a static field of a class by its name.
2888      *
2889      * This function retrieves the byte value of the specified static field from the given class by its name.
2890      *
2891      * @param[in] env A pointer to the environment structure.
2892      * @param[in] cls The class containing the static field.
2893      * @param[in] name The name of the static field to retrieve.
2894      * @param[out] result A pointer to store the retrieved byte value.
2895      * @return Returns a status code of type `ani_status` indicating success or failure.
2896      */
2897     ani_status (*Class_GetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result);
2898 
2899     /**
2900      * @brief Retrieves a short value from a static field of a class by its name.
2901      *
2902      * This function retrieves the short value of the specified static field from the given class by its name.
2903      *
2904      * @param[in] env A pointer to the environment structure.
2905      * @param[in] cls The class containing the static field.
2906      * @param[in] name The name of the static field to retrieve.
2907      * @param[out] result A pointer to store the retrieved short value.
2908      * @return Returns a status code of type `ani_status` indicating success or failure.
2909      */
2910     ani_status (*Class_GetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result);
2911 
2912     /**
2913      * @brief Retrieves an integer value from a static field of a class by its name.
2914      *
2915      * This function retrieves the integer value of the specified static field from the given class by its name.
2916      *
2917      * @param[in] env A pointer to the environment structure.
2918      * @param[in] cls The class containing the static field.
2919      * @param[in] name The name of the static field to retrieve.
2920      * @param[out] result A pointer to store the retrieved integer value.
2921      * @return Returns a status code of type `ani_status` indicating success or failure.
2922      */
2923     ani_status (*Class_GetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result);
2924 
2925     /**
2926      * @brief Retrieves a long value from a static field of a class by its name.
2927      *
2928      * This function retrieves the long value of the specified static field from the given class by its name.
2929      *
2930      * @param[in] env A pointer to the environment structure.
2931      * @param[in] cls The class containing the static field.
2932      * @param[in] name The name of the static field to retrieve.
2933      * @param[out] result A pointer to store the retrieved long value.
2934      * @return Returns a status code of type `ani_status` indicating success or failure.
2935      */
2936     ani_status (*Class_GetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result);
2937 
2938     /**
2939      * @brief Retrieves a float value from a static field of a class by its name.
2940      *
2941      * This function retrieves the float value of the specified static field from the given class by its name.
2942      *
2943      * @param[in] env A pointer to the environment structure.
2944      * @param[in] cls The class containing the static field.
2945      * @param[in] name The name of the static field to retrieve.
2946      * @param[out] result A pointer to store the retrieved float value.
2947      * @return Returns a status code of type `ani_status` indicating success or failure.
2948      */
2949     ani_status (*Class_GetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result);
2950 
2951     /**
2952      * @brief Retrieves a double value from a static field of a class by its name.
2953      *
2954      * This function retrieves the double value of the specified static field from the given class by its name.
2955      *
2956      * @param[in] env A pointer to the environment structure.
2957      * @param[in] cls The class containing the static field.
2958      * @param[in] name The name of the static field to retrieve.
2959      * @param[out] result A pointer to store the retrieved double value.
2960      * @return Returns a status code of type `ani_status` indicating success or failure.
2961      */
2962     ani_status (*Class_GetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result);
2963 
2964     /**
2965      * @brief Retrieves a reference value from a static field of a class by its name.
2966      *
2967      * This function retrieves the reference value of the specified static field from the given class by its name.
2968      *
2969      * @param[in] env A pointer to the environment structure.
2970      * @param[in] cls The class containing the static field.
2971      * @param[in] name The name of the static field to retrieve.
2972      * @param[out] result A pointer to store the retrieved reference value.
2973      * @return Returns a status code of type `ani_status` indicating success or failure.
2974      */
2975     ani_status (*Class_GetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result);
2976 
2977     /**
2978      * @brief Sets a boolean value to a static field of a class by its name.
2979      *
2980      * This function assigns a boolean value to the specified static field of the given class by its name.
2981      *
2982      * @param[in] env A pointer to the environment structure.
2983      * @param[in] cls The class containing the static field.
2984      * @param[in] name The name of the static field to modify.
2985      * @param[in] value The boolean value to assign.
2986      * @return Returns a status code of type `ani_status` indicating success or failure.
2987      */
2988     ani_status (*Class_SetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, ani_boolean value);
2989 
2990     /**
2991      * @brief Sets a character value to a static field of a class by its name.
2992      *
2993      * This function assigns a character value to the specified static field of the given class by its name.
2994      *
2995      * @param[in] env A pointer to the environment structure.
2996      * @param[in] cls The class containing the static field.
2997      * @param[in] name The name of the static field to modify.
2998      * @param[in] value The character value to assign.
2999      * @return Returns a status code of type `ani_status` indicating success or failure.
3000      */
3001     ani_status (*Class_SetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char value);
3002 
3003     /**
3004      * @brief Sets a byte value to a static field of a class by its name.
3005      *
3006      * This function assigns a byte value to the specified static field of the given class by its name.
3007      *
3008      * @param[in] env A pointer to the environment structure.
3009      * @param[in] cls The class containing the static field.
3010      * @param[in] name The name of the static field to modify.
3011      * @param[in] value The byte value to assign.
3012      * @return Returns a status code of type `ani_status` indicating success or failure.
3013      */
3014     ani_status (*Class_SetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte value);
3015 
3016     /**
3017      * @brief Sets a short value to a static field of a class by its name.
3018      *
3019      * This function assigns a short value to the specified static field of the given class by its name.
3020      *
3021      * @param[in] env A pointer to the environment structure.
3022      * @param[in] cls The class containing the static field.
3023      * @param[in] name The name of the static field to modify.
3024      * @param[in] value The short value to assign.
3025      * @return Returns a status code of type `ani_status` indicating success or failure.
3026      */
3027     ani_status (*Class_SetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short value);
3028 
3029     /**
3030      * @brief Sets an integer value to a static field of a class by its name.
3031      *
3032      * This function assigns an integer value to the specified static field of the given class by its name.
3033      *
3034      * @param[in] env A pointer to the environment structure.
3035      * @param[in] cls The class containing the static field.
3036      * @param[in] name The name of the static field to modify.
3037      * @param[in] value The integer value to assign.
3038      * @return Returns a status code of type `ani_status` indicating success or failure.
3039      */
3040     ani_status (*Class_SetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int value);
3041 
3042     /**
3043      * @brief Sets a long value to a static field of a class by its name.
3044      *
3045      * This function assigns a long value to the specified static field of the given class by its name.
3046      *
3047      * @param[in] env A pointer to the environment structure.
3048      * @param[in] cls The class containing the static field.
3049      * @param[in] name The name of the static field to modify.
3050      * @param[in] value The long value to assign.
3051      * @return Returns a status code of type `ani_status` indicating success or failure.
3052      */
3053     ani_status (*Class_SetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long value);
3054 
3055     /**
3056      * @brief Sets a float value to a static field of a class by its name.
3057      *
3058      * This function assigns a float value to the specified static field of the given class by its name.
3059      *
3060      * @param[in] env A pointer to the environment structure.
3061      * @param[in] cls The class containing the static field.
3062      * @param[in] name The name of the static field to modify.
3063      * @param[in] value The float value to assign.
3064      * @return Returns a status code of type `ani_status` indicating success or failure.
3065      */
3066     ani_status (*Class_SetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float value);
3067 
3068     /**
3069      * @brief Sets a double value to a static field of a class by its name.
3070      *
3071      * This function assigns a double value to the specified static field of the given class by its name.
3072      *
3073      * @param[in] env A pointer to the environment structure.
3074      * @param[in] cls The class containing the static field.
3075      * @param[in] name The name of the static field to modify.
3076      * @param[in] value The double value to assign.
3077      * @return Returns a status code of type `ani_status` indicating success or failure.
3078      */
3079     ani_status (*Class_SetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double value);
3080 
3081     /**
3082      * @brief Sets a reference value to a static field of a class by its name.
3083      *
3084      * This function assigns a reference value to the specified static field of the given class by its name.
3085      *
3086      * @param[in] env A pointer to the environment structure.
3087      * @param[in] cls The class containing the static field.
3088      * @param[in] name The name of the static field to modify.
3089      * @param[in] value The reference value to assign.
3090      * @return Returns a status code of type `ani_status` indicating success or failure.
3091      */
3092     ani_status (*Class_SetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref value);
3093 
3094     /**
3095      * @brief Calls a static method with a boolean return type.
3096      *
3097      * This function calls the specified static method of a class and retrieves a boolean result using variadic
3098      * arguments.
3099      *
3100      * @param[in] env A pointer to the environment structure.
3101      * @param[in] cls The class containing the static method.
3102      * @param[in] method The static method to call.
3103      * @param[out] result A pointer to store the boolean result.
3104      * @param[in] ... Variadic arguments to pass to the method.
3105      * @return Returns a status code of type `ani_status` indicating success or failure.
3106      */
3107     ani_status (*Class_CallStaticMethod_Boolean)(ani_env *env, ani_class cls, ani_static_method method,
3108                                                  ani_boolean *result, ...);
3109 
3110     /**
3111      * @brief Calls a static method with a boolean return type (array-based).
3112      *
3113      * This function calls the specified static method of a class and retrieves a boolean result using arguments from an
3114      * array.
3115      *
3116      * @param[in] env A pointer to the environment structure.
3117      * @param[in] cls The class containing the static method.
3118      * @param[in] method The static method to call.
3119      * @param[out] result A pointer to store the boolean result.
3120      * @param[in] args An array of arguments to pass to the method.
3121      * @return Returns a status code of type `ani_status` indicating success or failure.
3122      */
3123     ani_status (*Class_CallStaticMethod_Boolean_A)(ani_env *env, ani_class cls, ani_static_method method,
3124                                                    ani_boolean *result, const ani_value *args);
3125 
3126     /**
3127      * @brief Calls a static method with a boolean return type (variadic arguments).
3128      *
3129      * This function calls the specified static method of a class and retrieves a boolean result using a `va_list`.
3130      *
3131      * @param[in] env A pointer to the environment structure.
3132      * @param[in] cls The class containing the static method.
3133      * @param[in] method The static method to call.
3134      * @param[out] result A pointer to store the boolean result.
3135      * @param[in] args A `va_list` of arguments to pass to the method.
3136      * @return Returns a status code of type `ani_status` indicating success or failure.
3137      */
3138     ani_status (*Class_CallStaticMethod_Boolean_V)(ani_env *env, ani_class cls, ani_static_method method,
3139                                                    ani_boolean *result, va_list args);
3140 
3141     /**
3142      * @brief Calls a static method with a character return type.
3143      *
3144      * This function calls the specified static method of a class and retrieves a character result using variadic
3145      * arguments.
3146      *
3147      * @param[in] env A pointer to the environment structure.
3148      * @param[in] cls The class containing the static method.
3149      * @param[in] method The static method to call.
3150      * @param[out] result A pointer to store the character result.
3151      * @param[in] ... Variadic arguments to pass to the method.
3152      * @return Returns a status code of type `ani_status` indicating success or failure.
3153      */
3154     ani_status (*Class_CallStaticMethod_Char)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
3155                                               ...);
3156 
3157     /**
3158      * @brief Calls a static method with a character return type (array-based).
3159      *
3160      * This function calls the specified static method of a class and retrieves a character result using arguments from
3161      * an array.
3162      *
3163      * @param[in] env A pointer to the environment structure.
3164      * @param[in] cls The class containing the static method.
3165      * @param[in] method The static method to call.
3166      * @param[out] result A pointer to store the character result.
3167      * @param[in] args An array of arguments to pass to the method.
3168      * @return Returns a status code of type `ani_status` indicating success or failure.
3169      */
3170     ani_status (*Class_CallStaticMethod_Char_A)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
3171                                                 const ani_value *args);
3172 
3173     /**
3174      * @brief Calls a static method with a character return type (variadic arguments).
3175      *
3176      * This function calls the specified static method of a class and retrieves a character result using a `va_list`.
3177      *
3178      * @param[in] env A pointer to the environment structure.
3179      * @param[in] cls The class containing the static method.
3180      * @param[in] method The static method to call.
3181      * @param[out] result A pointer to store the character result.
3182      * @param[in] args A `va_list` of arguments to pass to the method.
3183      * @return Returns a status code of type `ani_status` indicating success or failure.
3184      */
3185     ani_status (*Class_CallStaticMethod_Char_V)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
3186                                                 va_list args);
3187 
3188     /**
3189      * @brief Calls a static method with a byte return type.
3190      *
3191      * This function calls the specified static method of a class and retrieves a byte result using variadic arguments.
3192      *
3193      * @param[in] env A pointer to the environment structure.
3194      * @param[in] cls The class containing the static method.
3195      * @param[in] method The static method to call.
3196      * @param[out] result A pointer to store the byte result.
3197      * @param[in] ... Variadic arguments to pass to the method.
3198      * @return Returns a status code of type `ani_status` indicating success or failure.
3199      */
3200     ani_status (*Class_CallStaticMethod_Byte)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
3201                                               ...);
3202 
3203     /**
3204      * @brief Calls a static method with a byte return type (array-based).
3205      *
3206      * This function calls the specified static method of a class and retrieves a byte result using arguments from an
3207      * array.
3208      *
3209      * @param[in] env A pointer to the environment structure.
3210      * @param[in] cls The class containing the static method.
3211      * @param[in] method The static method to call.
3212      * @param[out] result A pointer to store the byte result.
3213      * @param[in] args An array of arguments to pass to the method.
3214      * @return Returns a status code of type `ani_status` indicating success or failure.
3215      */
3216     ani_status (*Class_CallStaticMethod_Byte_A)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
3217                                                 const ani_value *args);
3218 
3219     /**
3220      * @brief Calls a static method with a byte return type (variadic arguments).
3221      *
3222      * This function calls the specified static method of a class and retrieves a byte result using a `va_list`.
3223      *
3224      * @param[in] env A pointer to the environment structure.
3225      * @param[in] cls The class containing the static method.
3226      * @param[in] method The static method to call.
3227      * @param[out] result A pointer to store the byte result.
3228      * @param[in] args A `va_list` of arguments to pass to the method.
3229      * @return Returns a status code of type `ani_status` indicating success or failure.
3230      */
3231     ani_status (*Class_CallStaticMethod_Byte_V)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
3232                                                 va_list args);
3233 
3234     /**
3235      * @brief Calls a static method with a short return type.
3236      *
3237      * This function calls the specified static method of a class and retrieves a short result using variadic arguments.
3238      *
3239      * @param[in] env A pointer to the environment structure.
3240      * @param[in] cls The class containing the static method.
3241      * @param[in] method The static method to call.
3242      * @param[out] result A pointer to store the short result.
3243      * @param[in] ... Variadic arguments to pass to the method.
3244      * @return Returns a status code of type `ani_status` indicating success or failure.
3245      */
3246     ani_status (*Class_CallStaticMethod_Short)(ani_env *env, ani_class cls, ani_static_method method, ani_short *result,
3247                                                ...);
3248 
3249     /**
3250      * @brief Calls a static method with a short return type (array-based).
3251      *
3252      * This function calls the specified static method of a class and retrieves a short result using arguments from an
3253      * array.
3254      *
3255      * @param[in] env A pointer to the environment structure.
3256      * @param[in] cls The class containing the static method.
3257      * @param[in] method The static method to call.
3258      * @param[out] result A pointer to store the short result.
3259      * @param[in] args An array of arguments to pass to the method.
3260      * @return Returns a status code of type `ani_status` indicating success or failure.
3261      */
3262     ani_status (*Class_CallStaticMethod_Short_A)(ani_env *env, ani_class cls, ani_static_method method,
3263                                                  ani_short *result, const ani_value *args);
3264 
3265     /**
3266      * @brief Calls a static method with a short return type (variadic arguments).
3267      *
3268      * This function calls the specified static method of a class and retrieves a short result using a `va_list`.
3269      *
3270      * @param[in] env A pointer to the environment structure.
3271      * @param[in] cls The class containing the static method.
3272      * @param[in] method The static method to call.
3273      * @param[out] result A pointer to store the short result.
3274      * @param[in] args A `va_list` of arguments to pass to the method.
3275      * @return Returns a status code of type `ani_status` indicating success or failure.
3276      */
3277     ani_status (*Class_CallStaticMethod_Short_V)(ani_env *env, ani_class cls, ani_static_method method,
3278                                                  ani_short *result, va_list args);
3279 
3280     /**
3281      * @brief Calls a static method with an integer return type.
3282      *
3283      * This function calls the specified static method of a class and retrieves an integer result using variadic
3284      * arguments.
3285      *
3286      * @param[in] env A pointer to the environment structure.
3287      * @param[in] cls The class containing the static method.
3288      * @param[in] method The static method to call.
3289      * @param[out] result A pointer to store the integer result.
3290      * @param[in] ... Variadic arguments to pass to the method.
3291      * @return Returns a status code of type `ani_status` indicating success or failure.
3292      */
3293     ani_status (*Class_CallStaticMethod_Int)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
3294                                              ...);
3295 
3296     /**
3297      * @brief Calls a static method with an integer return type (array-based).
3298      *
3299      * This function calls the specified static method of a class and retrieves an integer result using arguments from
3300      * an array.
3301      *
3302      * @param[in] env A pointer to the environment structure.
3303      * @param[in] cls The class containing the static method.
3304      * @param[in] method The static method to call.
3305      * @param[out] result A pointer to store the integer result.
3306      * @param[in] args An array of arguments to pass to the method.
3307      * @return Returns a status code of type `ani_status` indicating success or failure.
3308      */
3309     ani_status (*Class_CallStaticMethod_Int_A)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
3310                                                const ani_value *args);
3311 
3312     /**
3313      * @brief Calls a static method with an integer return type (variadic arguments).
3314      *
3315      * This function calls the specified static method of a class and retrieves an integer result using a `va_list`.
3316      *
3317      * @param[in] env A pointer to the environment structure.
3318      * @param[in] cls The class containing the static method.
3319      * @param[in] method The static method to call.
3320      * @param[out] result A pointer to store the integer result.
3321      * @param[in] args A `va_list` of arguments to pass to the method.
3322      * @return Returns a status code of type `ani_status` indicating success or failure.
3323      */
3324     ani_status (*Class_CallStaticMethod_Int_V)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
3325                                                va_list args);
3326 
3327     /**
3328      * @brief Calls a static method with a long return type.
3329      *
3330      * This function calls the specified static method of a class and retrieves a long result using variadic arguments.
3331      *
3332      * @param[in] env A pointer to the environment structure.
3333      * @param[in] cls The class containing the static method.
3334      * @param[in] method The static method to call.
3335      * @param[out] result A pointer to store the long result.
3336      * @param[in] ... Variadic arguments to pass to the method.
3337      * @return Returns a status code of type `ani_status` indicating success or failure.
3338      */
3339     ani_status (*Class_CallStaticMethod_Long)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
3340                                               ...);
3341 
3342     /**
3343      * @brief Calls a static method with a long return type (array-based).
3344      *
3345      * This function calls the specified static method of a class and retrieves a long result using arguments from an
3346      * array.
3347      *
3348      * @param[in] env A pointer to the environment structure.
3349      * @param[in] cls The class containing the static method.
3350      * @param[in] method The static method to call.
3351      * @param[out] result A pointer to store the long result.
3352      * @param[in] args An array of arguments to pass to the method.
3353      * @return Returns a status code of type `ani_status` indicating success or failure.
3354      */
3355     ani_status (*Class_CallStaticMethod_Long_A)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
3356                                                 const ani_value *args);
3357 
3358     /**
3359      * @brief Calls a static method with a long return type (variadic arguments).
3360      *
3361      * This function calls the specified static method of a class and retrieves a long result using a `va_list`.
3362      *
3363      * @param[in] env A pointer to the environment structure.
3364      * @param[in] cls The class containing the static method.
3365      * @param[in] method The static method to call.
3366      * @param[out] result A pointer to store the long result.
3367      * @param[in] args A `va_list` of arguments to pass to the method.
3368      * @return Returns a status code of type `ani_status` indicating success or failure.
3369      */
3370     ani_status (*Class_CallStaticMethod_Long_V)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
3371                                                 va_list args);
3372 
3373     /**
3374      * @brief Calls a static method with a float return type.
3375      *
3376      * This function calls the specified static method of a class and retrieves a float result using variadic arguments.
3377      *
3378      * @param[in] env A pointer to the environment structure.
3379      * @param[in] cls The class containing the static method.
3380      * @param[in] method The static method to call.
3381      * @param[out] result A pointer to store the float result.
3382      * @param[in] ... Variadic arguments to pass to the method.
3383      * @return Returns a status code of type `ani_status` indicating success or failure.
3384      */
3385     ani_status (*Class_CallStaticMethod_Float)(ani_env *env, ani_class cls, ani_static_method method, ani_float *result,
3386                                                ...);
3387 
3388     /**
3389      * @brief Calls a static method with a float return type (array-based).
3390      *
3391      * This function calls the specified static method of a class and retrieves a float result using arguments from an
3392      * array.
3393      *
3394      * @param[in] env A pointer to the environment structure.
3395      * @param[in] cls The class containing the static method.
3396      * @param[in] method The static method to call.
3397      * @param[out] result A pointer to store the float result.
3398      * @param[in] args An array of arguments to pass to the method.
3399      * @return Returns a status code of type `ani_status` indicating success or failure.
3400      */
3401     ani_status (*Class_CallStaticMethod_Float_A)(ani_env *env, ani_class cls, ani_static_method method,
3402                                                  ani_float *result, const ani_value *args);
3403 
3404     /**
3405      * @brief Calls a static method with a float return type (variadic arguments).
3406      *
3407      * This function calls the specified static method of a class and retrieves a float result using a `va_list`.
3408      *
3409      * @param[in] env A pointer to the environment structure.
3410      * @param[in] cls The class containing the static method.
3411      * @param[in] method The static method to call.
3412      * @param[out] result A pointer to store the float result.
3413      * @param[in] args A `va_list` of arguments to pass to the method.
3414      * @return Returns a status code of type `ani_status` indicating success or failure.
3415      */
3416     ani_status (*Class_CallStaticMethod_Float_V)(ani_env *env, ani_class cls, ani_static_method method,
3417                                                  ani_float *result, va_list args);
3418 
3419     /**
3420      * @brief Calls a static method with a double return type.
3421      *
3422      * This function calls the specified static method of a class and retrieves a double result using variadic
3423      * arguments.
3424      *
3425      * @param[in] env A pointer to the environment structure.
3426      * @param[in] cls The class containing the static method.
3427      * @param[in] method The static method to call.
3428      * @param[out] result A pointer to store the double result.
3429      * @param[in] ... Variadic arguments to pass to the method.
3430      * @return Returns a status code of type `ani_status` indicating success or failure.
3431      */
3432     ani_status (*Class_CallStaticMethod_Double)(ani_env *env, ani_class cls, ani_static_method method,
3433                                                 ani_double *result, ...);
3434 
3435     /**
3436      * @brief Calls a static method with a double return type (array-based).
3437      *
3438      * This function calls the specified static method of a class and retrieves a double result using arguments from an
3439      * array.
3440      *
3441      * @param[in] env A pointer to the environment structure.
3442      * @param[in] cls The class containing the static method.
3443      * @param[in] method The static method to call.
3444      * @param[out] result A pointer to store the double result.
3445      * @param[in] args An array of arguments to pass to the method.
3446      * @return Returns a status code of type `ani_status` indicating success or failure.
3447      */
3448     ani_status (*Class_CallStaticMethod_Double_A)(ani_env *env, ani_class cls, ani_static_method method,
3449                                                   ani_double *result, const ani_value *args);
3450 
3451     /**
3452      * @brief Calls a static method with a double return type (variadic arguments).
3453      *
3454      * This function calls the specified static method of a class and retrieves a double result using a `va_list`.
3455      *
3456      * @param[in] env A pointer to the environment structure.
3457      * @param[in] cls The class containing the static method.
3458      * @param[in] method The static method to call.
3459      * @param[out] result A pointer to store the double result.
3460      * @param[in] args A `va_list` of arguments to pass to the method.
3461      * @return Returns a status code of type `ani_status` indicating success or failure.
3462      */
3463     ani_status (*Class_CallStaticMethod_Double_V)(ani_env *env, ani_class cls, ani_static_method method,
3464                                                   ani_double *result, va_list args);
3465 
3466     /**
3467      * @brief Calls a static method with a reference return type.
3468      *
3469      * This function calls the specified static method of a class and retrieves a reference result using variadic
3470      * arguments.
3471      *
3472      * @param[in] env A pointer to the environment structure.
3473      * @param[in] cls The class containing the static method.
3474      * @param[in] method The static method to call.
3475      * @param[out] result A pointer to store the reference result.
3476      * @param[in] ... Variadic arguments to pass to the method.
3477      * @return Returns a status code of type `ani_status` indicating success or failure.
3478      */
3479     ani_status (*Class_CallStaticMethod_Ref)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3480                                              ...);
3481 
3482     /**
3483      * @brief Calls a static method with a reference return type (array-based).
3484      *
3485      * This function calls the specified static method of a class and retrieves a reference result using arguments from
3486      * an array.
3487      *
3488      * @param[in] env A pointer to the environment structure.
3489      * @param[in] cls The class containing the static method.
3490      * @param[in] method The static method to call.
3491      * @param[out] result A pointer to store the reference result.
3492      * @param[in] args An array of arguments to pass to the method.
3493      * @return Returns a status code of type `ani_status` indicating success or failure.
3494      */
3495     ani_status (*Class_CallStaticMethod_Ref_A)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3496                                                const ani_value *args);
3497 
3498     /**
3499      * @brief Calls a static method with a reference return type (variadic arguments).
3500      *
3501      * This function calls the specified static method of a class and retrieves a reference result using a `va_list`.
3502      *
3503      * @param[in] env A pointer to the environment structure.
3504      * @param[in] cls The class containing the static method.
3505      * @param[in] method The static method to call.
3506      * @param[out] result A pointer to store the reference result.
3507      * @param[in] args A `va_list` of arguments to pass to the method.
3508      * @return Returns a status code of type `ani_status` indicating success or failure.
3509      */
3510     ani_status (*Class_CallStaticMethod_Ref_V)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3511                                                va_list args);
3512 
3513     /**
3514      * @brief Calls a static method with no return value.
3515      *
3516      * This function calls the specified static method of a class using variadic arguments. The method does not return a
3517      * value.
3518      *
3519      * @param[in] env A pointer to the environment structure.
3520      * @param[in] cls The class containing the static method.
3521      * @param[in] method The static method to call.
3522      * @param[in] ... Variadic arguments to pass to the method.
3523      * @return Returns a status code of type `ani_status` indicating success or failure.
3524      */
3525     ani_status (*Class_CallStaticMethod_Void)(ani_env *env, ani_class cls, ani_static_method method, ...);
3526 
3527     /**
3528      * @brief Calls a static method with no return value (array-based).
3529      *
3530      * This function calls the specified static method of a class using arguments from an array. The method does not
3531      * return a value.
3532      *
3533      * @param[in] env A pointer to the environment structure.
3534      * @param[in] cls The class containing the static method.
3535      * @param[in] method The static method to call.
3536      * @param[in] args An array of arguments to pass to the method.
3537      * @return Returns a status code of type `ani_status` indicating success or failure.
3538      */
3539     ani_status (*Class_CallStaticMethod_Void_A)(ani_env *env, ani_class cls, ani_static_method method,
3540                                                 const ani_value *args);
3541 
3542     /**
3543      * @brief Calls a static method with no return value (variadic arguments).
3544      *
3545      * This function calls the specified static method of a class using a `va_list`. The method does not return a value.
3546      *
3547      * @param[in] env A pointer to the environment structure.
3548      * @param[in] cls The class containing the static method.
3549      * @param[in] method The static method to call.
3550      * @param[in] args A `va_list` of arguments to pass to the method.
3551      * @return Returns a status code of type `ani_status` indicating success or failure.
3552      */
3553     ani_status (*Class_CallStaticMethod_Void_V)(ani_env *env, ani_class cls, ani_static_method method, va_list args);
3554 
3555     /**
3556      * @brief Calls a static method by name with a boolean return type.
3557      *
3558      * This function calls the specified static method of a class by its name and retrieves a boolean result using
3559      * variadic arguments.
3560      *
3561      * @param[in] env A pointer to the environment structure.
3562      * @param[in] cls The class containing the static method.
3563      * @param[in] name The name of the static method to call.
3564      * @param[out] result A pointer to store the boolean result.
3565      * @param[in] ... Variadic arguments to pass to the method.
3566      * @return Returns a status code of type `ani_status` indicating success or failure.
3567      */
3568     ani_status (*Class_CallStaticMethodByName_Boolean)(ani_env *env, ani_class cls, const char *name,
3569                                                        ani_boolean *result, ...);
3570 
3571     /**
3572      * @brief Calls a static method by name with a boolean return type (array-based).
3573      *
3574      * This function calls the specified static method of a class by its name and retrieves a boolean result using
3575      * arguments from an array.
3576      *
3577      * @param[in] env A pointer to the environment structure.
3578      * @param[in] cls The class containing the static method.
3579      * @param[in] name The name of the static method to call.
3580      * @param[out] result A pointer to store the boolean result.
3581      * @param[in] args An array of arguments to pass to the method.
3582      * @return Returns a status code of type `ani_status` indicating success or failure.
3583      */
3584     ani_status (*Class_CallStaticMethodByName_Boolean_A)(ani_env *env, ani_class cls, const char *name,
3585                                                          ani_boolean *result, const ani_value *args);
3586 
3587     /**
3588      * @brief Calls a static method by name with a boolean return type (variadic arguments).
3589      *
3590      * This function calls the specified static method of a class by its name and retrieves a boolean result using a
3591      * `va_list`.
3592      *
3593      * @param[in] env A pointer to the environment structure.
3594      * @param[in] cls The class containing the static method.
3595      * @param[in] name The name of the static method to call.
3596      * @param[out] result A pointer to store the boolean result.
3597      * @param[in] args A `va_list` of arguments to pass to the method.
3598      * @return Returns a status code of type `ani_status` indicating success or failure.
3599      */
3600     ani_status (*Class_CallStaticMethodByName_Boolean_V)(ani_env *env, ani_class cls, const char *name,
3601                                                          ani_boolean *result, va_list args);
3602 
3603     /**
3604      * @brief Calls a static method by name with a char return type.
3605      *
3606      * This function calls the specified static method of a class by its name and retrieves a char result using variadic
3607      * arguments.
3608      *
3609      * @param[in] env A pointer to the environment structure.
3610      * @param[in] cls The class containing the static method.
3611      * @param[in] name The name of the static method to call.
3612      * @param[out] result A pointer to store the char result.
3613      * @param[in] ... Variadic arguments to pass to the method.
3614      * @return Returns a status code of type `ani_status` indicating success or failure.
3615      */
3616     ani_status (*Class_CallStaticMethodByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result,
3617                                                     ...);
3618 
3619     /**
3620      * @brief Calls a static method by name with a char return type (array-based).
3621      *
3622      * This function calls the specified static method of a class by its name and retrieves a char result using
3623      * arguments from an array.
3624      *
3625      * @param[in] env A pointer to the environment structure.
3626      * @param[in] cls The class containing the static method.
3627      * @param[in] name The name of the static method to call.
3628      * @param[out] result A pointer to store the char result.
3629      * @param[in] args An array of arguments to pass to the method.
3630      * @return Returns a status code of type `ani_status` indicating success or failure.
3631      */
3632     ani_status (*Class_CallStaticMethodByName_Char_A)(ani_env *env, ani_class cls, const char *name, ani_char *result,
3633                                                       const ani_value *args);
3634 
3635     /**
3636      * @brief Calls a static method by name with a char return type (variadic arguments).
3637      *
3638      * This function calls the specified static method of a class by its name and retrieves a char result using a
3639      * `va_list`.
3640      *
3641      * @param[in] env A pointer to the environment structure.
3642      * @param[in] cls The class containing the static method.
3643      * @param[in] name The name of the static method to call.
3644      * @param[out] result A pointer to store the char result.
3645      * @param[in] args A `va_list` of arguments to pass to the method.
3646      * @return Returns a status code of type `ani_status` indicating success or failure.
3647      */
3648     ani_status (*Class_CallStaticMethodByName_Char_V)(ani_env *env, ani_class cls, const char *name, ani_char *result,
3649                                                       va_list args);
3650 
3651     /**
3652      * @brief Calls a static method by name with a byte return type.
3653      *
3654      * This function calls the specified static method of a class by its name and retrieves a byte result using variadic
3655      * arguments.
3656      *
3657      * @param[in] env A pointer to the environment structure.
3658      * @param[in] cls The class containing the static method.
3659      * @param[in] name The name of the static method to call.
3660      * @param[out] result A pointer to store the byte result.
3661      * @param[in] ... Variadic arguments to pass to the method.
3662      * @return Returns a status code of type `ani_status` indicating success or failure.
3663      */
3664     ani_status (*Class_CallStaticMethodByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result,
3665                                                     ...);
3666 
3667     /**
3668      * @brief Calls a static method by name with a byte return type (array-based).
3669      *
3670      * This function calls the specified static method of a class by its name and retrieves a byte result using
3671      * arguments from an array.
3672      *
3673      * @param[in] env A pointer to the environment structure.
3674      * @param[in] cls The class containing the static method.
3675      * @param[in] name The name of the static method to call.
3676      * @param[out] result A pointer to store the byte result.
3677      * @param[in] args An array of arguments to pass to the method.
3678      * @return Returns a status code of type `ani_status` indicating success or failure.
3679      */
3680     ani_status (*Class_CallStaticMethodByName_Byte_A)(ani_env *env, ani_class cls, const char *name, ani_byte *result,
3681                                                       const ani_value *args);
3682 
3683     /**
3684      * @brief Calls a static method by name with a byte return type (variadic arguments).
3685      *
3686      * This function calls the specified static method of a class by its name and retrieves a byte result using a
3687      * `va_list`.
3688      *
3689      * @param[in] env A pointer to the environment structure.
3690      * @param[in] cls The class containing the static method.
3691      * @param[in] name The name of the static method to call.
3692      * @param[out] result A pointer to store the byte result.
3693      * @param[in] args A `va_list` of arguments to pass to the method.
3694      * @return Returns a status code of type `ani_status` indicating success or failure.
3695      */
3696     ani_status (*Class_CallStaticMethodByName_Byte_V)(ani_env *env, ani_class cls, const char *name, ani_byte *result,
3697                                                       va_list args);
3698 
3699     /**
3700      * @brief Calls a static method by name with a short return type.
3701      *
3702      * This function calls the specified static method of a class by its name and retrieves a short result using
3703      * variadic arguments.
3704      *
3705      * @param[in] env A pointer to the environment structure.
3706      * @param[in] cls The class containing the static method.
3707      * @param[in] name The name of the static method to call.
3708      * @param[out] result A pointer to store the short result.
3709      * @param[in] ... Variadic arguments to pass to the method.
3710      * @return Returns a status code of type `ani_status` indicating success or failure.
3711      */
3712     ani_status (*Class_CallStaticMethodByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result,
3713                                                      ...);
3714 
3715     /**
3716      * @brief Calls a static method by name with a short return type (array-based).
3717      *
3718      * This function calls the specified static method of a class by its name and retrieves a short result using
3719      * arguments from an array.
3720      *
3721      * @param[in] env A pointer to the environment structure.
3722      * @param[in] cls The class containing the static method.
3723      * @param[in] name The name of the static method to call.
3724      * @param[out] result A pointer to store the short result.
3725      * @param[in] args An array of arguments to pass to the method.
3726      * @return Returns a status code of type `ani_status` indicating success or failure.
3727      */
3728     ani_status (*Class_CallStaticMethodByName_Short_A)(ani_env *env, ani_class cls, const char *name, ani_short *result,
3729                                                        const ani_value *args);
3730 
3731     /**
3732      * @brief Calls a static method by name with a short return type (variadic arguments).
3733      *
3734      * This function calls the specified static method of a class by its name and retrieves a short result using a
3735      * `va_list`.
3736      *
3737      * @param[in] env A pointer to the environment structure.
3738      * @param[in] cls The class containing the static method.
3739      * @param[in] name The name of the static method to call.
3740      * @param[out] result A pointer to store the short result.
3741      * @param[in] args A `va_list` of arguments to pass to the method.
3742      * @return Returns a status code of type `ani_status` indicating success or failure.
3743      */
3744     ani_status (*Class_CallStaticMethodByName_Short_V)(ani_env *env, ani_class cls, const char *name, ani_short *result,
3745                                                        va_list args);
3746 
3747     /**
3748      * @brief Calls a static method by name with a integer return type.
3749      *
3750      * This function calls the specified static method of a class by its name and retrieves a integer result using
3751      * variadic arguments.
3752      *
3753      * @param[in] env A pointer to the environment structure.
3754      * @param[in] cls The class containing the static method.
3755      * @param[in] name The name of the static method to call.
3756      * @param[out] result A pointer to store the integer result.
3757      * @param[in] ... Variadic arguments to pass to the method.
3758      * @return Returns a status code of type `ani_status` indicating success or failure.
3759      */
3760     ani_status (*Class_CallStaticMethodByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result, ...);
3761 
3762     /**
3763      * @brief Calls a static method by name with a integer return type (array-based).
3764      *
3765      * This function calls the specified static method of a class by its name and retrieves a integer result using
3766      * arguments from an array.
3767      *
3768      * @param[in] env A pointer to the environment structure.
3769      * @param[in] cls The class containing the static method.
3770      * @param[in] name The name of the static method to call.
3771      * @param[out] result A pointer to store the integer result.
3772      * @param[in] args An array of arguments to pass to the method.
3773      * @return Returns a status code of type `ani_status` indicating success or failure.
3774      */
3775     ani_status (*Class_CallStaticMethodByName_Int_A)(ani_env *env, ani_class cls, const char *name, ani_int *result,
3776                                                      const ani_value *args);
3777 
3778     /**
3779      * @brief Calls a static method by name with a integer return type (variadic arguments).
3780      *
3781      * This function calls the specified static method of a class by its name and retrieves a integer result using a
3782      * `va_list`.
3783      *
3784      * @param[in] env A pointer to the environment structure.
3785      * @param[in] cls The class containing the static method.
3786      * @param[in] name The name of the static method to call.
3787      * @param[out] result A pointer to store the integer result.
3788      * @param[in] args A `va_list` of arguments to pass to the method.
3789      * @return Returns a status code of type `ani_status` indicating success or failure.
3790      */
3791     ani_status (*Class_CallStaticMethodByName_Int_V)(ani_env *env, ani_class cls, const char *name, ani_int *result,
3792                                                      va_list args);
3793 
3794     /**
3795      * @brief Calls a static method by name with a long return type.
3796      *
3797      * This function calls the specified static method of a class by its name and retrieves a long result using variadic
3798      * arguments.
3799      *
3800      * @param[in] env A pointer to the environment structure.
3801      * @param[in] cls The class containing the static method.
3802      * @param[in] name The name of the static method to call.
3803      * @param[out] result A pointer to store the long result.
3804      * @param[in] ... Variadic arguments to pass to the method.
3805      * @return Returns a status code of type `ani_status` indicating success or failure.
3806      */
3807     ani_status (*Class_CallStaticMethodByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result,
3808                                                     ...);
3809 
3810     /**
3811      * @brief Calls a static method by name with a long return type (array-based).
3812      *
3813      * This function calls the specified static method of a class by its name and retrieves a long result using
3814      * arguments from an array.
3815      *
3816      * @param[in] env A pointer to the environment structure.
3817      * @param[in] cls The class containing the static method.
3818      * @param[in] name The name of the static method to call.
3819      * @param[out] result A pointer to store the long result.
3820      * @param[in] args An array of arguments to pass to the method.
3821      * @return Returns a status code of type `ani_status` indicating success or failure.
3822      */
3823     ani_status (*Class_CallStaticMethodByName_Long_A)(ani_env *env, ani_class cls, const char *name, ani_long *result,
3824                                                       const ani_value *args);
3825 
3826     /**
3827      * @brief Calls a static method by name with a long return type (variadic arguments).
3828      *
3829      * This function calls the specified static method of a class by its name and retrieves a long result using a
3830      * `va_list`.
3831      *
3832      * @param[in] env A pointer to the environment structure.
3833      * @param[in] cls The class containing the static method.
3834      * @param[in] name The name of the static method to call.
3835      * @param[out] result A pointer to store the long result.
3836      * @param[in] args A `va_list` of arguments to pass to the method.
3837      * @return Returns a status code of type `ani_status` indicating success or failure.
3838      */
3839     ani_status (*Class_CallStaticMethodByName_Long_V)(ani_env *env, ani_class cls, const char *name, ani_long *result,
3840                                                       va_list args);
3841 
3842     /**
3843      * @brief Calls a static method by name with a float return type.
3844      *
3845      * This function calls the specified static method of a class by its name and retrieves a float result using
3846      * variadic arguments.
3847      *
3848      * @param[in] env A pointer to the environment structure.
3849      * @param[in] cls The class containing the static method.
3850      * @param[in] name The name of the static method to call.
3851      * @param[out] result A pointer to store the float result.
3852      * @param[in] ... Variadic arguments to pass to the method.
3853      * @return Returns a status code of type `ani_status` indicating success or failure.
3854      */
3855     ani_status (*Class_CallStaticMethodByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result,
3856                                                      ...);
3857 
3858     /**
3859      * @brief Calls a static method by name with a float return type (array-based).
3860      *
3861      * This function calls the specified static method of a class by its name and retrieves a float result using
3862      * arguments from an array.
3863      *
3864      * @param[in] env A pointer to the environment structure.
3865      * @param[in] cls The class containing the static method.
3866      * @param[in] name The name of the static method to call.
3867      * @param[out] result A pointer to store the float result.
3868      * @param[in] args An array of arguments to pass to the method.
3869      * @return Returns a status code of type `ani_status` indicating success or failure.
3870      */
3871     ani_status (*Class_CallStaticMethodByName_Float_A)(ani_env *env, ani_class cls, const char *name, ani_float *result,
3872                                                        const ani_value *args);
3873 
3874     /**
3875      * @brief Calls a static method by name with a float return type (variadic arguments).
3876      *
3877      * This function calls the specified static method of a class by its name and retrieves a float result using a
3878      * `va_list`.
3879      *
3880      * @param[in] env A pointer to the environment structure.
3881      * @param[in] cls The class containing the static method.
3882      * @param[in] name The name of the static method to call.
3883      * @param[out] result A pointer to store the float result.
3884      * @param[in] args A `va_list` of arguments to pass to the method.
3885      * @return Returns a status code of type `ani_status` indicating success or failure.
3886      */
3887     ani_status (*Class_CallStaticMethodByName_Float_V)(ani_env *env, ani_class cls, const char *name, ani_float *result,
3888                                                        va_list args);
3889 
3890     /**
3891      * @brief Calls a static method by name with a double return type.
3892      *
3893      * This function calls the specified static method of a class by its name and retrieves a double result using
3894      * variadic arguments.
3895      *
3896      * @param[in] env A pointer to the environment structure.
3897      * @param[in] cls The class containing the static method.
3898      * @param[in] name The name of the static method to call.
3899      * @param[out] result A pointer to store the double result.
3900      * @param[in] ... Variadic arguments to pass to the method.
3901      * @return Returns a status code of type `ani_status` indicating success or failure.
3902      */
3903     ani_status (*Class_CallStaticMethodByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result,
3904                                                       ...);
3905 
3906     /**
3907      * @brief Calls a static method by name with a double return type (array-based).
3908      *
3909      * This function calls the specified static method of a class by its name and retrieves a double result using
3910      * arguments from an array.
3911      *
3912      * @param[in] env A pointer to the environment structure.
3913      * @param[in] cls The class containing the static method.
3914      * @param[in] name The name of the static method to call.
3915      * @param[out] result A pointer to store the double result.
3916      * @param[in] args An array of arguments to pass to the method.
3917      * @return Returns a status code of type `ani_status` indicating success or failure.
3918      */
3919     ani_status (*Class_CallStaticMethodByName_Double_A)(ani_env *env, ani_class cls, const char *name,
3920                                                         ani_double *result, const ani_value *args);
3921 
3922     /**
3923      * @brief Calls a static method by name with a double return type (variadic arguments).
3924      *
3925      * This function calls the specified static method of a class by its name and retrieves a double result using a
3926      * `va_list`.
3927      *
3928      * @param[in] env A pointer to the environment structure.
3929      * @param[in] cls The class containing the static method.
3930      * @param[in] name The name of the static method to call.
3931      * @param[out] result A pointer to store the double result.
3932      * @param[in] args A `va_list` of arguments to pass to the method.
3933      * @return Returns a status code of type `ani_status` indicating success or failure.
3934      */
3935     ani_status (*Class_CallStaticMethodByName_Double_V)(ani_env *env, ani_class cls, const char *name,
3936                                                         ani_double *result, va_list args);
3937 
3938     /**
3939      * @brief Calls a static method by name with a reference return type.
3940      *
3941      * This function calls the specified static method of a class by its name and retrieves a reference result using
3942      * variadic arguments.
3943      *
3944      * @param[in] env A pointer to the environment structure.
3945      * @param[in] cls The class containing the static method.
3946      * @param[in] name The name of the static method to call.
3947      * @param[out] result A pointer to store the reference result.
3948      * @param[in] ... Variadic arguments to pass to the method.
3949      * @return Returns a status code of type `ani_status` indicating success or failure.
3950      */
3951     ani_status (*Class_CallStaticMethodByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result, ...);
3952 
3953     /**
3954      * @brief Calls a static method by name with a reference return type (array-based).
3955      *
3956      * This function calls the specified static method of a class by its name and retrieves a reference result using
3957      * arguments from an array.
3958      *
3959      * @param[in] env A pointer to the environment structure.
3960      * @param[in] cls The class containing the static method.
3961      * @param[in] name The name of the static method to call.
3962      * @param[out] result A pointer to store the reference result.
3963      * @param[in] args An array of arguments to pass to the method.
3964      * @return Returns a status code of type `ani_status` indicating success or failure.
3965      */
3966     ani_status (*Class_CallStaticMethodByName_Ref_A)(ani_env *env, ani_class cls, const char *name, ani_ref *result,
3967                                                      const ani_value *args);
3968 
3969     /**
3970      * @brief Calls a static method by name with a reference return type (variadic arguments).
3971      *
3972      * This function calls the specified static method of a class by its name and retrieves a reference result using a
3973      * `va_list`.
3974      *
3975      * @param[in] env A pointer to the environment structure.
3976      * @param[in] cls The class containing the static method.
3977      * @param[in] name The name of the static method to call.
3978      * @param[out] result A pointer to store the reference result.
3979      * @param[in] args A `va_list` of arguments to pass to the method.
3980      * @return Returns a status code of type `ani_status` indicating success or failure.
3981      */
3982     ani_status (*Class_CallStaticMethodByName_Ref_V)(ani_env *env, ani_class cls, const char *name, ani_ref *result,
3983                                                      va_list args);
3984 
3985     /**
3986      * @brief Calls a static method by name with no return value.
3987      *
3988      * This function calls the specified static method of a class by its name using variadic arguments. The method does
3989      * not return a value.
3990      *
3991      * @param[in] env A pointer to the environment structure.
3992      * @param[in] cls The class containing the static method.
3993      * @param[in] name The name of the static method to call.
3994      * @param[in] ... Variadic arguments to pass to the method.
3995      * @return Returns a status code of type `ani_status` indicating success or failure.
3996      */
3997     ani_status (*Class_CallStaticMethodByName_Void)(ani_env *env, ani_class cls, const char *name, ...);
3998 
3999     /**
4000      * @brief Calls a static method by name with no return value (array-based).
4001      *
4002      * This function calls the specified static method of a class by its name using arguments from an array. The method
4003      * does not return a value.
4004      *
4005      * @param[in] env A pointer to the environment structure.
4006      * @param[in] cls The class containing the static method.
4007      * @param[in] name The name of the static method to call.
4008      * @param[in] args An array of arguments to pass to the method.
4009      * @return Returns a status code of type `ani_status` indicating success or failure.
4010      */
4011     ani_status (*Class_CallStaticMethodByName_Void_A)(ani_env *env, ani_class cls, const char *name,
4012                                                       const ani_value *args);
4013 
4014     /**
4015      * @brief Calls a static method by name with no return value (variadic arguments).
4016      *
4017      * This function calls the specified static method of a class by its name using a `va_list`. The method does not
4018      * return a value.
4019      *
4020      * @param[in] env A pointer to the environment structure.
4021      * @param[in] cls The class containing the static method.
4022      * @param[in] name The name of the static method to call.
4023      * @param[in] args A `va_list` of arguments to pass to the method.
4024      * @return Returns a status code of type `ani_status` indicating success or failure.
4025      */
4026     ani_status (*Class_CallStaticMethodByName_Void_V)(ani_env *env, ani_class cls, const char *name, va_list args);
4027 
4028     /**
4029      * @brief Retrieves a boolean value from a field of an object.
4030      *
4031      * This function retrieves the boolean value of the specified field from the given object.
4032      *
4033      * @param[in] env A pointer to the environment structure.
4034      * @param[in] object The object containing the field.
4035      * @param[in] field The field to retrieve the boolean value from.
4036      * @param[out] result A pointer to store the retrieved boolean value.
4037      * @return Returns a status code of type `ani_status` indicating success or failure.
4038      */
4039     ani_status (*Object_GetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean *result);
4040 
4041     /**
4042      * @brief Retrieves a char value from a field of an object.
4043      *
4044      * This function retrieves the char value of the specified field from the given object.
4045      *
4046      * @param[in] env A pointer to the environment structure.
4047      * @param[in] object The object containing the field.
4048      * @param[in] field The field to retrieve the char value from.
4049      * @param[out] result A pointer to store the retrieved char value.
4050      * @return Returns a status code of type `ani_status` indicating success or failure.
4051      */
4052     ani_status (*Object_GetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char *result);
4053 
4054     /**
4055      * @brief Retrieves a byte value from a field of an object.
4056      *
4057      * This function retrieves the byte value of the specified field from the given object.
4058      *
4059      * @param[in] env A pointer to the environment structure.
4060      * @param[in] object The object containing the field.
4061      * @param[in] field The field to retrieve the byte value from.
4062      * @param[out] result A pointer to store the retrieved byte value.
4063      * @return Returns a status code of type `ani_status` indicating success or failure.
4064      */
4065     ani_status (*Object_GetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte *result);
4066 
4067     /**
4068      * @brief Retrieves a short value from a field of an object.
4069      *
4070      * This function retrieves the short value of the specified field from the given object.
4071      *
4072      * @param[in] env A pointer to the environment structure.
4073      * @param[in] object The object containing the field.
4074      * @param[in] field The field to retrieve the short value from.
4075      * @param[out] result A pointer to store the retrieved short value.
4076      * @return Returns a status code of type `ani_status` indicating success or failure.
4077      */
4078     ani_status (*Object_GetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short *result);
4079 
4080     /**
4081      * @brief Retrieves a integer value from a field of an object.
4082      *
4083      * This function retrieves the integer value of the specified field from the given object.
4084      *
4085      * @param[in] env A pointer to the environment structure.
4086      * @param[in] object The object containing the field.
4087      * @param[in] field The field to retrieve the integer value from.
4088      * @param[out] result A pointer to store the retrieved integer value.
4089      * @return Returns a status code of type `ani_status` indicating success or failure.
4090      */
4091     ani_status (*Object_GetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int *result);
4092 
4093     /**
4094      * @brief Retrieves a long value from a field of an object.
4095      *
4096      * This function retrieves the long value of the specified field from the given object.
4097      *
4098      * @param[in] env A pointer to the environment structure.
4099      * @param[in] object The object containing the field.
4100      * @param[in] field The field to retrieve the long value from.
4101      * @param[out] result A pointer to store the retrieved long value.
4102      * @return Returns a status code of type `ani_status` indicating success or failure.
4103      */
4104     ani_status (*Object_GetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long *result);
4105 
4106     /**
4107      * @brief Retrieves a float value from a field of an object.
4108      *
4109      * This function retrieves the float value of the specified field from the given object.
4110      *
4111      * @param[in] env A pointer to the environment structure.
4112      * @param[in] object The object containing the field.
4113      * @param[in] field The field to retrieve the float value from.
4114      * @param[out] result A pointer to store the retrieved float value.
4115      * @return Returns a status code of type `ani_status` indicating success or failure.
4116      */
4117     ani_status (*Object_GetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float *result);
4118 
4119     /**
4120      * @brief Retrieves a double value from a field of an object.
4121      *
4122      * This function retrieves the double value of the specified field from the given object.
4123      *
4124      * @param[in] env A pointer to the environment structure.
4125      * @param[in] object The object containing the field.
4126      * @param[in] field The field to retrieve the double value from.
4127      * @param[out] result A pointer to store the retrieved double value.
4128      * @return Returns a status code of type `ani_status` indicating success or failure.
4129      */
4130     ani_status (*Object_GetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double *result);
4131 
4132     /**
4133      * @brief Retrieves a reference value from a field of an object.
4134      *
4135      * This function retrieves the reference value of the specified field from the given object.
4136      *
4137      * @param[in] env A pointer to the environment structure.
4138      * @param[in] object The object containing the field.
4139      * @param[in] field The field to retrieve the reference value from.
4140      * @param[out] result A pointer to store the retrieved reference value.
4141      * @return Returns a status code of type `ani_status` indicating success or failure.
4142      */
4143     ani_status (*Object_GetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref *result);
4144 
4145     /**
4146      * @brief Sets a boolean value to a field of an object.
4147      *
4148      * This function assigns a boolean value to the specified field of the given object.
4149      *
4150      * @param[in] env A pointer to the environment structure.
4151      * @param[in] object The object containing the field.
4152      * @param[in] field The field to set the boolean value to.
4153      * @param[in] value The boolean value to assign to the field.
4154      * @return Returns a status code of type `ani_status` indicating success or failure.
4155      */
4156     ani_status (*Object_SetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean value);
4157 
4158     /**
4159      * @brief Sets a char value to a field of an object.
4160      *
4161      * This function assigns a char value to the specified field of the given object.
4162      *
4163      * @param[in] env A pointer to the environment structure.
4164      * @param[in] object The object containing the field.
4165      * @param[in] field The field to set the char value to.
4166      * @param[in] value The char value to assign to the field.
4167      * @return Returns a status code of type `ani_status` indicating success or failure.
4168      */
4169     ani_status (*Object_SetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char value);
4170 
4171     /**
4172      * @brief Sets a byte value to a field of an object.
4173      *
4174      * This function assigns a byte value to the specified field of the given object.
4175      *
4176      * @param[in] env A pointer to the environment structure.
4177      * @param[in] object The object containing the field.
4178      * @param[in] field The field to set the byte value to.
4179      * @param[in] value The byte value to assign to the field.
4180      * @return Returns a status code of type `ani_status` indicating success or failure.
4181      */
4182     ani_status (*Object_SetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte value);
4183 
4184     /**
4185      * @brief Sets a short value to a field of an object.
4186      *
4187      * This function assigns a short value to the specified field of the given object.
4188      *
4189      * @param[in] env A pointer to the environment structure.
4190      * @param[in] object The object containing the field.
4191      * @param[in] field The field to set the short value to.
4192      * @param[in] value The short value to assign to the field.
4193      * @return Returns a status code of type `ani_status` indicating success or failure.
4194      */
4195     ani_status (*Object_SetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short value);
4196 
4197     /**
4198      * @brief Sets a integer value to a field of an object.
4199      *
4200      * This function assigns a integer value to the specified field of the given object.
4201      *
4202      * @param[in] env A pointer to the environment structure.
4203      * @param[in] object The object containing the field.
4204      * @param[in] field The field to set the integer value to.
4205      * @param[in] value The integer value to assign to the field.
4206      * @return Returns a status code of type `ani_status` indicating success or failure.
4207      */
4208     ani_status (*Object_SetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int value);
4209 
4210     /**
4211      * @brief Sets a long value to a field of an object.
4212      *
4213      * This function assigns a long value to the specified field of the given object.
4214      *
4215      * @param[in] env A pointer to the environment structure.
4216      * @param[in] object The object containing the field.
4217      * @param[in] field The field to set the long value to.
4218      * @param[in] value The long value to assign to the field.
4219      * @return Returns a status code of type `ani_status` indicating success or failure.
4220      */
4221     ani_status (*Object_SetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long value);
4222 
4223     /**
4224      * @brief Sets a float value to a field of an object.
4225      *
4226      * This function assigns a float value to the specified field of the given object.
4227      *
4228      * @param[in] env A pointer to the environment structure.
4229      * @param[in] object The object containing the field.
4230      * @param[in] field The field to set the float value to.
4231      * @param[in] value The float value to assign to the field.
4232      * @return Returns a status code of type `ani_status` indicating success or failure.
4233      */
4234     ani_status (*Object_SetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float value);
4235 
4236     /**
4237      * @brief Sets a double value to a field of an object.
4238      *
4239      * This function assigns a double value to the specified field of the given object.
4240      *
4241      * @param[in] env A pointer to the environment structure.
4242      * @param[in] object The object containing the field.
4243      * @param[in] field The field to set the double value to.
4244      * @param[in] value The double value to assign to the field.
4245      * @return Returns a status code of type `ani_status` indicating success or failure.
4246      */
4247     ani_status (*Object_SetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double value);
4248 
4249     /**
4250      * @brief Sets a reference value to a field of an object.
4251      *
4252      * This function assigns a reference value to the specified field of the given object.
4253      *
4254      * @param[in] env A pointer to the environment structure.
4255      * @param[in] object The object containing the field.
4256      * @param[in] field The field to set the reference value to.
4257      * @param[in] value The reference value to assign to the field.
4258      * @return Returns a status code of type `ani_status` indicating success or failure.
4259      */
4260     ani_status (*Object_SetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref value);
4261 
4262     /**
4263      * @brief Retrieves a boolean value from a field of an object by its name.
4264      *
4265      * This function retrieves the boolean value of the specified field from the given object by its name.
4266      *
4267      * @param[in] env A pointer to the environment structure.
4268      * @param[in] object The object containing the field.
4269      * @param[in] name The name of the field to retrieve the boolean value from.
4270      * @param[out] result A pointer to store the retrieved boolean value.
4271      * @return Returns a status code of type `ani_status` indicating success or failure.
4272      */
4273     ani_status (*Object_GetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean *result);
4274 
4275     /**
4276      * @brief Retrieves a char value from a field of an object by its name.
4277      *
4278      * This function retrieves the char value of the specified field from the given object by its name.
4279      *
4280      * @param[in] env A pointer to the environment structure.
4281      * @param[in] object The object containing the field.
4282      * @param[in] name The name of the field to retrieve the char value from.
4283      * @param[out] result A pointer to store the retrieved char value.
4284      * @return Returns a status code of type `ani_status` indicating success or failure.
4285      */
4286     ani_status (*Object_GetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result);
4287 
4288     /**
4289      * @brief Retrieves a byte value from a field of an object by its name.
4290      *
4291      * This function retrieves the byte value of the specified field from the given object by its name.
4292      *
4293      * @param[in] env A pointer to the environment structure.
4294      * @param[in] object The object containing the field.
4295      * @param[in] name The name of the field to retrieve the byte value from.
4296      * @param[out] result A pointer to store the retrieved byte value.
4297      * @return Returns a status code of type `ani_status` indicating success or failure.
4298      */
4299     ani_status (*Object_GetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result);
4300 
4301     /**
4302      * @brief Retrieves a short value from a field of an object by its name.
4303      *
4304      * This function retrieves the short value of the specified field from the given object by its name.
4305      *
4306      * @param[in] env A pointer to the environment structure.
4307      * @param[in] object The object containing the field.
4308      * @param[in] name The name of the field to retrieve the short value from.
4309      * @param[out] result A pointer to store the retrieved short value.
4310      * @return Returns a status code of type `ani_status` indicating success or failure.
4311      */
4312     ani_status (*Object_GetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result);
4313 
4314     /**
4315      * @brief Retrieves a integer value from a field of an object by its name.
4316      *
4317      * This function retrieves the integer value of the specified field from the given object by its name.
4318      *
4319      * @param[in] env A pointer to the environment structure.
4320      * @param[in] object The object containing the field.
4321      * @param[in] name The name of the field to retrieve the integer value from.
4322      * @param[out] result A pointer to store the retrieved integer value.
4323      * @return Returns a status code of type `ani_status` indicating success or failure.
4324      */
4325     ani_status (*Object_GetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result);
4326 
4327     /**
4328      * @brief Retrieves a long value from a field of an object by its name.
4329      *
4330      * This function retrieves the long value of the specified field from the given object by its name.
4331      *
4332      * @param[in] env A pointer to the environment structure.
4333      * @param[in] object The object containing the field.
4334      * @param[in] name The name of the field to retrieve the long value from.
4335      * @param[out] result A pointer to store the retrieved long value.
4336      * @return Returns a status code of type `ani_status` indicating success or failure.
4337      */
4338     ani_status (*Object_GetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result);
4339 
4340     /**
4341      * @brief Retrieves a float value from a field of an object by its name.
4342      *
4343      * This function retrieves the float value of the specified field from the given object by its name.
4344      *
4345      * @param[in] env A pointer to the environment structure.
4346      * @param[in] object The object containing the field.
4347      * @param[in] name The name of the field to retrieve the float value from.
4348      * @param[out] result A pointer to store the retrieved float value.
4349      * @return Returns a status code of type `ani_status` indicating success or failure.
4350      */
4351     ani_status (*Object_GetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result);
4352 
4353     /**
4354      * @brief Retrieves a double value from a field of an object by its name.
4355      *
4356      * This function retrieves the double value of the specified field from the given object by its name.
4357      *
4358      * @param[in] env A pointer to the environment structure.
4359      * @param[in] object The object containing the field.
4360      * @param[in] name The name of the field to retrieve the double value from.
4361      * @param[out] result A pointer to store the retrieved double value.
4362      * @return Returns a status code of type `ani_status` indicating success or failure.
4363      */
4364     ani_status (*Object_GetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double *result);
4365 
4366     /**
4367      * @brief Retrieves a reference value from a field of an object by its name.
4368      *
4369      * This function retrieves the reference value of the specified field from the given object by its name.
4370      *
4371      * @param[in] env A pointer to the environment structure.
4372      * @param[in] object The object containing the field.
4373      * @param[in] name The name of the field to retrieve the reference value from.
4374      * @param[out] result A pointer to store the retrieved reference value.
4375      * @return Returns a status code of type `ani_status` indicating success or failure.
4376      */
4377     ani_status (*Object_GetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result);
4378 
4379     /**
4380      * @brief Sets a boolean value to a field of an object by its name.
4381      *
4382      * This function assigns a boolean value to the specified field of the given object by its name.
4383      *
4384      * @param[in] env A pointer to the environment structure.
4385      * @param[in] object The object containing the field.
4386      * @param[in] name The name of the field to set the boolean value to.
4387      * @param[in] value The boolean value to assign to the field.
4388      * @return Returns a status code of type `ani_status` indicating success or failure.
4389      */
4390     ani_status (*Object_SetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean value);
4391 
4392     /**
4393      * @brief Sets a char value to a field of an object by its name.
4394      *
4395      * This function assigns a char value to the specified field of the given object by its name.
4396      *
4397      * @param[in] env A pointer to the environment structure.
4398      * @param[in] object The object containing the field.
4399      * @param[in] name The name of the field to set the char value to.
4400      * @param[in] value The char value to assign to the field.
4401      * @return Returns a status code of type `ani_status` indicating success or failure.
4402      */
4403     ani_status (*Object_SetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value);
4404 
4405     /**
4406      * @brief Sets a byte value to a field of an object by its name.
4407      *
4408      * This function assigns a byte value to the specified field of the given object by its name.
4409      *
4410      * @param[in] env A pointer to the environment structure.
4411      * @param[in] object The object containing the field.
4412      * @param[in] name The name of the field to set the byte value to.
4413      * @param[in] value The byte value to assign to the field.
4414      * @return Returns a status code of type `ani_status` indicating success or failure.
4415      */
4416     ani_status (*Object_SetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value);
4417 
4418     /**
4419      * @brief Sets a short value to a field of an object by its name.
4420      *
4421      * This function assigns a short value to the specified field of the given object by its name.
4422      *
4423      * @param[in] env A pointer to the environment structure.
4424      * @param[in] object The object containing the field.
4425      * @param[in] name The name of the field to set the short value to.
4426      * @param[in] value The short value to assign to the field.
4427      * @return Returns a status code of type `ani_status` indicating success or failure.
4428      */
4429     ani_status (*Object_SetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value);
4430 
4431     /**
4432      * @brief Sets a integer value to a field of an object by its name.
4433      *
4434      * This function assigns a integer value to the specified field of the given object by its name.
4435      *
4436      * @param[in] env A pointer to the environment structure.
4437      * @param[in] object The object containing the field.
4438      * @param[in] name The name of the field to set the integer value to.
4439      * @param[in] value The integer value to assign to the field.
4440      * @return Returns a status code of type `ani_status` indicating success or failure.
4441      */
4442     ani_status (*Object_SetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value);
4443 
4444     /**
4445      * @brief Sets a long value to a field of an object by its name.
4446      *
4447      * This function assigns a long value to the specified field of the given object by its name.
4448      *
4449      * @param[in] env A pointer to the environment structure.
4450      * @param[in] object The object containing the field.
4451      * @param[in] name The name of the field to set the long value to.
4452      * @param[in] value The long value to assign to the field.
4453      * @return Returns a status code of type `ani_status` indicating success or failure.
4454      */
4455     ani_status (*Object_SetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value);
4456 
4457     /**
4458      * @brief Sets a float value to a field of an object by its name.
4459      *
4460      * This function assigns a float value to the specified field of the given object by its name.
4461      *
4462      * @param[in] env A pointer to the environment structure.
4463      * @param[in] object The object containing the field.
4464      * @param[in] name The name of the field to set the float value to.
4465      * @param[in] value The float value to assign to the field.
4466      * @return Returns a status code of type `ani_status` indicating success or failure.
4467      */
4468     ani_status (*Object_SetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value);
4469 
4470     /**
4471      * @brief Sets a double value to a field of an object by its name.
4472      *
4473      * This function assigns a double value to the specified field of the given object by its name.
4474      *
4475      * @param[in] env A pointer to the environment structure.
4476      * @param[in] object The object containing the field.
4477      * @param[in] name The name of the field to set the double value to.
4478      * @param[in] value The double value to assign to the field.
4479      * @return Returns a status code of type `ani_status` indicating success or failure.
4480      */
4481     ani_status (*Object_SetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value);
4482 
4483     /**
4484      * @brief Sets a reference value to a field of an object by its name.
4485      *
4486      * This function assigns a reference value to the specified field of the given object by its name.
4487      *
4488      * @param[in] env A pointer to the environment structure.
4489      * @param[in] object The object containing the field.
4490      * @param[in] name The name of the field to set the reference value to.
4491      * @param[in] value The reference value to assign to the field.
4492      * @return Returns a status code of type `ani_status` indicating success or failure.
4493      */
4494     ani_status (*Object_SetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value);
4495 
4496     /**
4497      * @brief Retrieves a boolean value from a property of an object.
4498      *
4499      * This function retrieves the boolean value of the specified property from the given object.
4500      *
4501      * @param[in] env A pointer to the environment structure.
4502      * @param[in] object The object containing the property.
4503      * @param[in] property The property to retrieve the boolean value from.
4504      * @param[out] result A pointer to store the retrieved boolean value.
4505      * @return Returns a status code of type `ani_status` indicating success or failure.
4506      */
4507     ani_status (*Object_GetProperty_Boolean)(ani_env *env, ani_object object, ani_property property,
4508                                              ani_boolean *result);
4509 
4510     /**
4511      * @brief Retrieves a char value from a property of an object.
4512      *
4513      * This function retrieves the char value of the specified property from the given object.
4514      *
4515      * @param[in] env A pointer to the environment structure.
4516      * @param[in] object The object containing the property.
4517      * @param[in] property The property to retrieve the char value from.
4518      * @param[out] result A pointer to store the retrieved char value.
4519      * @return Returns a status code of type `ani_status` indicating success or failure.
4520      */
4521     ani_status (*Object_GetProperty_Char)(ani_env *env, ani_object object, ani_property property, ani_char *result);
4522 
4523     /**
4524      * @brief Retrieves a byte value from a property of an object.
4525      *
4526      * This function retrieves the byte value of the specified property from the given object.
4527      *
4528      * @param[in] env A pointer to the environment structure.
4529      * @param[in] object The object containing the property.
4530      * @param[in] property The property to retrieve the byte value from.
4531      * @param[out] result A pointer to store the retrieved byte value.
4532      * @return Returns a status code of type `ani_status` indicating success or failure.
4533      */
4534     ani_status (*Object_GetProperty_Byte)(ani_env *env, ani_object object, ani_property property, ani_byte *result);
4535 
4536     /**
4537      * @brief Retrieves a short value from a property of an object.
4538      *
4539      * This function retrieves the short value of the specified property from the given object.
4540      *
4541      * @param[in] env A pointer to the environment structure.
4542      * @param[in] object The object containing the property.
4543      * @param[in] property The property to retrieve the short value from.
4544      * @param[out] result A pointer to store the retrieved short value.
4545      * @return Returns a status code of type `ani_status` indicating success or failure.
4546      */
4547     ani_status (*Object_GetProperty_Short)(ani_env *env, ani_object object, ani_property property, ani_short *result);
4548 
4549     /**
4550      * @brief Retrieves a integer value from a property of an object.
4551      *
4552      * This function retrieves the integer value of the specified property from the given object.
4553      *
4554      * @param[in] env A pointer to the environment structure.
4555      * @param[in] object The object containing the property.
4556      * @param[in] property The property to retrieve the integer value from.
4557      * @param[out] result A pointer to store the retrieved integer value.
4558      * @return Returns a status code of type `ani_status` indicating success or failure.
4559      */
4560     ani_status (*Object_GetProperty_Int)(ani_env *env, ani_object object, ani_property property, ani_int *result);
4561 
4562     /**
4563      * @brief Retrieves a long value from a property of an object.
4564      *
4565      * This function retrieves the long value of the specified property from the given object.
4566      *
4567      * @param[in] env A pointer to the environment structure.
4568      * @param[in] object The object containing the property.
4569      * @param[in] property The property to retrieve the long value from.
4570      * @param[out] result A pointer to store the retrieved long value.
4571      * @return Returns a status code of type `ani_status` indicating success or failure.
4572      */
4573     ani_status (*Object_GetProperty_Long)(ani_env *env, ani_object object, ani_property property, ani_long *result);
4574 
4575     /**
4576      * @brief Retrieves a float value from a property of an object.
4577      *
4578      * This function retrieves the float value of the specified property from the given object.
4579      *
4580      * @param[in] env A pointer to the environment structure.
4581      * @param[in] object The object containing the property.
4582      * @param[in] property The property to retrieve the float value from.
4583      * @param[out] result A pointer to store the retrieved float value.
4584      * @return Returns a status code of type `ani_status` indicating success or failure.
4585      */
4586     ani_status (*Object_GetProperty_Float)(ani_env *env, ani_object object, ani_property property, ani_float *result);
4587 
4588     /**
4589      * @brief Retrieves a double value from a property of an object.
4590      *
4591      * This function retrieves the double value of the specified property from the given object.
4592      *
4593      * @param[in] env A pointer to the environment structure.
4594      * @param[in] object The object containing the property.
4595      * @param[in] property The property to retrieve the double value from.
4596      * @param[out] result A pointer to store the retrieved double value.
4597      * @return Returns a status code of type `ani_status` indicating success or failure.
4598      */
4599     ani_status (*Object_GetProperty_Double)(ani_env *env, ani_object object, ani_property property, ani_double *result);
4600 
4601     /**
4602      * @brief Retrieves a reference value from a property of an object.
4603      *
4604      * This function retrieves the reference value of the specified property from the given object.
4605      *
4606      * @param[in] env A pointer to the environment structure.
4607      * @param[in] object The object containing the property.
4608      * @param[in] property The property to retrieve the reference value from.
4609      * @param[out] result A pointer to store the retrieved reference value.
4610      * @return Returns a status code of type `ani_status` indicating success or failure.
4611      */
4612     ani_status (*Object_GetProperty_Ref)(ani_env *env, ani_object object, ani_property property, ani_ref *result);
4613 
4614     /**
4615      * @brief Sets a boolean value to a property of an object.
4616      *
4617      * This function assigns a boolean value to the specified property of the given object.
4618      *
4619      * @param[in] env A pointer to the environment structure.
4620      * @param[in] object The object containing the property.
4621      * @param[in] property The property to set the boolean value to.
4622      * @param[in] value The boolean value to assign to the property.
4623      * @return Returns a status code of type `ani_status` indicating success or failure.
4624      */
4625     ani_status (*Object_SetProperty_Boolean)(ani_env *env, ani_object object, ani_property property, ani_boolean value);
4626 
4627     /**
4628      * @brief Sets a char value to a property of an object.
4629      *
4630      * This function assigns a char value to the specified property of the given object.
4631      *
4632      * @param[in] env A pointer to the environment structure.
4633      * @param[in] object The object containing the property.
4634      * @param[in] property The property to set the char value to.
4635      * @param[in] value The char value to assign to the property.
4636      * @return Returns a status code of type `ani_status` indicating success or failure.
4637      */
4638     ani_status (*Object_SetProperty_Char)(ani_env *env, ani_object object, ani_property property, ani_char value);
4639 
4640     /**
4641      * @brief Sets a byte value to a property of an object.
4642      *
4643      * This function assigns a byte value to the specified property of the given object.
4644      *
4645      * @param[in] env A pointer to the environment structure.
4646      * @param[in] object The object containing the property.
4647      * @param[in] property The property to set the byte value to.
4648      * @param[in] value The byte value to assign to the property.
4649      * @return Returns a status code of type `ani_status` indicating success or failure.
4650      */
4651     ani_status (*Object_SetProperty_Byte)(ani_env *env, ani_object object, ani_property property, ani_byte value);
4652 
4653     /**
4654      * @brief Sets a short value to a property of an object.
4655      *
4656      * This function assigns a short value to the specified property of the given object.
4657      *
4658      * @param[in] env A pointer to the environment structure.
4659      * @param[in] object The object containing the property.
4660      * @param[in] property The property to set the short value to.
4661      * @param[in] value The short value to assign to the property.
4662      * @return Returns a status code of type `ani_status` indicating success or failure.
4663      */
4664     ani_status (*Object_SetProperty_Short)(ani_env *env, ani_object object, ani_property property, ani_short value);
4665 
4666     /**
4667      * @brief Sets a integer value to a property of an object.
4668      *
4669      * This function assigns a integer value to the specified property of the given object.
4670      *
4671      * @param[in] env A pointer to the environment structure.
4672      * @param[in] object The object containing the property.
4673      * @param[in] property The property to set the integer value to.
4674      * @param[in] value The integer value to assign to the property.
4675      * @return Returns a status code of type `ani_status` indicating success or failure.
4676      */
4677     ani_status (*Object_SetProperty_Int)(ani_env *env, ani_object object, ani_property property, ani_int value);
4678 
4679     /**
4680      * @brief Sets a long value to a property of an object.
4681      *
4682      * This function assigns a long value to the specified property of the given object.
4683      *
4684      * @param[in] env A pointer to the environment structure.
4685      * @param[in] object The object containing the property.
4686      * @param[in] property The property to set the long value to.
4687      * @param[in] value The long value to assign to the property.
4688      * @return Returns a status code of type `ani_status` indicating success or failure.
4689      */
4690     ani_status (*Object_SetProperty_Long)(ani_env *env, ani_object object, ani_property property, ani_long value);
4691 
4692     /**
4693      * @brief Sets a float value to a property of an object.
4694      *
4695      * This function assigns a float value to the specified property of the given object.
4696      *
4697      * @param[in] env A pointer to the environment structure.
4698      * @param[in] object The object containing the property.
4699      * @param[in] property The property to set the float value to.
4700      * @param[in] value The float value to assign to the property.
4701      * @return Returns a status code of type `ani_status` indicating success or failure.
4702      */
4703     ani_status (*Object_SetProperty_Float)(ani_env *env, ani_object object, ani_property property, ani_float value);
4704 
4705     /**
4706      * @brief Sets a double value to a property of an object.
4707      *
4708      * This function assigns a double value to the specified property of the given object.
4709      *
4710      * @param[in] env A pointer to the environment structure.
4711      * @param[in] object The object containing the property.
4712      * @param[in] property The property to set the double value to.
4713      * @param[in] value The double value to assign to the property.
4714      * @return Returns a status code of type `ani_status` indicating success or failure.
4715      */
4716     ani_status (*Object_SetProperty_Double)(ani_env *env, ani_object object, ani_property property, ani_double value);
4717 
4718     /**
4719      * @brief Sets a reference value to a property of an object.
4720      *
4721      * This function assigns a reference value to the specified property of the given object.
4722      *
4723      * @param[in] env A pointer to the environment structure.
4724      * @param[in] object The object containing the property.
4725      * @param[in] property The property to set the reference value to.
4726      * @param[in] value The reference value to assign to the property.
4727      * @return Returns a status code of type `ani_status` indicating success or failure.
4728      */
4729     ani_status (*Object_SetProperty_Ref)(ani_env *env, ani_object object, ani_property property, ani_ref value);
4730 
4731     /**
4732      * @brief Retrieves a boolean value from a property of an object by its name.
4733      *
4734      * This function retrieves the boolean value of the specified property from the given object by its name.
4735      *
4736      * @param[in] env A pointer to the environment structure.
4737      * @param[in] object The object containing the property.
4738      * @param[in] name The name of the property to retrieve the boolean value from.
4739      * @param[out] result A pointer to store the retrieved boolean value.
4740      * @return Returns a status code of type `ani_status` indicating success or failure.
4741      */
4742     ani_status (*Object_GetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name,
4743                                                    ani_boolean *result);
4744 
4745     /**
4746      * @brief Retrieves a char value from a property of an object by its name.
4747      *
4748      * This function retrieves the char value of the specified property from the given object by its name.
4749      *
4750      * @param[in] env A pointer to the environment structure.
4751      * @param[in] object The object containing the property.
4752      * @param[in] name The name of the property to retrieve the char value from.
4753      * @param[out] result A pointer to store the retrieved char value.
4754      * @return Returns a status code of type `ani_status` indicating success or failure.
4755      */
4756     ani_status (*Object_GetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result);
4757 
4758     /**
4759      * @brief Retrieves a byte value from a property of an object by its name.
4760      *
4761      * This function retrieves the byte value of the specified property from the given object by its name.
4762      *
4763      * @param[in] env A pointer to the environment structure.
4764      * @param[in] object The object containing the property.
4765      * @param[in] name The name of the property to retrieve the byte value from.
4766      * @param[out] result A pointer to store the retrieved byte value.
4767      * @return Returns a status code of type `ani_status` indicating success or failure.
4768      */
4769     ani_status (*Object_GetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result);
4770 
4771     /**
4772      * @brief Retrieves a short value from a property of an object by its name.
4773      *
4774      * This function retrieves the short value of the specified property from the given object by its name.
4775      *
4776      * @param[in] env A pointer to the environment structure.
4777      * @param[in] object The object containing the property.
4778      * @param[in] name The name of the property to retrieve the short value from.
4779      * @param[out] result A pointer to store the retrieved short value.
4780      * @return Returns a status code of type `ani_status` indicating success or failure.
4781      */
4782     ani_status (*Object_GetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result);
4783 
4784     /**
4785      * @brief Retrieves a integer value from a property of an object by its name.
4786      *
4787      * This function retrieves the integer value of the specified property from the given object by its name.
4788      *
4789      * @param[in] env A pointer to the environment structure.
4790      * @param[in] object The object containing the property.
4791      * @param[in] name The name of the property to retrieve the integer value from.
4792      * @param[out] result A pointer to store the retrieved integer value.
4793      * @return Returns a status code of type `ani_status` indicating success or failure.
4794      */
4795     ani_status (*Object_GetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result);
4796 
4797     /**
4798      * @brief Retrieves a long value from a property of an object by its name.
4799      *
4800      * This function retrieves the long value of the specified property from the given object by its name.
4801      *
4802      * @param[in] env A pointer to the environment structure.
4803      * @param[in] object The object containing the property.
4804      * @param[in] name The name of the property to retrieve the long value from.
4805      * @param[out] result A pointer to store the retrieved long value.
4806      * @return Returns a status code of type `ani_status` indicating success or failure.
4807      */
4808     ani_status (*Object_GetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result);
4809 
4810     /**
4811      * @brief Retrieves a float value from a property of an object by its name.
4812      *
4813      * This function retrieves the float value of the specified property from the given object by its name.
4814      *
4815      * @param[in] env A pointer to the environment structure.
4816      * @param[in] object The object containing the property.
4817      * @param[in] name The name of the property to retrieve the float value from.
4818      * @param[out] result A pointer to store the retrieved float value.
4819      * @return Returns a status code of type `ani_status` indicating success or failure.
4820      */
4821     ani_status (*Object_GetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result);
4822 
4823     /**
4824      * @brief Retrieves a double value from a property of an object by its name.
4825      *
4826      * This function retrieves the double value of the specified property from the given object by its name.
4827      *
4828      * @param[in] env A pointer to the environment structure.
4829      * @param[in] object The object containing the property.
4830      * @param[in] name The name of the property to retrieve the double value from.
4831      * @param[out] result A pointer to store the retrieved double value.
4832      * @return Returns a status code of type `ani_status` indicating success or failure.
4833      */
4834     ani_status (*Object_GetPropertyByName_Double)(ani_env *env, ani_object object, const char *name,
4835                                                   ani_double *result);
4836 
4837     /**
4838      * @brief Retrieves a reference value from a property of an object by its name.
4839      *
4840      * This function retrieves the reference value of the specified property from the given object by its name.
4841      *
4842      * @param[in] env A pointer to the environment structure.
4843      * @param[in] object The object containing the property.
4844      * @param[in] name The name of the property to retrieve the reference value from.
4845      * @param[out] result A pointer to store the retrieved reference value.
4846      * @return Returns a status code of type `ani_status` indicating success or failure.
4847      */
4848     ani_status (*Object_GetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result);
4849 
4850     /**
4851      * @brief Sets a boolean value to a property of an object by its name.
4852      *
4853      * This function assigns a boolean value to the specified property of the given object by its name.
4854      *
4855      * @param[in] env A pointer to the environment structure.
4856      * @param[in] object The object containing the property.
4857      * @param[in] name The name of the property to set the boolean value to.
4858      * @param[in] value The boolean value to assign to the property.
4859      * @return Returns a status code of type `ani_status` indicating success or failure.
4860      */
4861     ani_status (*Object_SetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name,
4862                                                    ani_boolean value);
4863 
4864     /**
4865      * @brief Sets a char value to a property of an object by its name.
4866      *
4867      * This function assigns a char value to the specified property of the given object by its name.
4868      *
4869      * @param[in] env A pointer to the environment structure.
4870      * @param[in] object The object containing the property.
4871      * @param[in] name The name of the property to set the char value to.
4872      * @param[in] value The char value to assign to the property.
4873      * @return Returns a status code of type `ani_status` indicating success or failure.
4874      */
4875     ani_status (*Object_SetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value);
4876 
4877     /**
4878      * @brief Sets a byte value to a property of an object by its name.
4879      *
4880      * This function assigns a byte value to the specified property of the given object by its name.
4881      *
4882      * @param[in] env A pointer to the environment structure.
4883      * @param[in] object The object containing the property.
4884      * @param[in] name The name of the property to set the byte value to.
4885      * @param[in] value The byte value to assign to the property.
4886      * @return Returns a status code of type `ani_status` indicating success or failure.
4887      */
4888     ani_status (*Object_SetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value);
4889 
4890     /**
4891      * @brief Sets a short value to a property of an object by its name.
4892      *
4893      * This function assigns a short value to the specified property of the given object by its name.
4894      *
4895      * @param[in] env A pointer to the environment structure.
4896      * @param[in] object The object containing the property.
4897      * @param[in] name The name of the property to set the short value to.
4898      * @param[in] value The short value to assign to the property.
4899      * @return Returns a status code of type `ani_status` indicating success or failure.
4900      */
4901     ani_status (*Object_SetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value);
4902 
4903     /**
4904      * @brief Sets a integer value to a property of an object by its name.
4905      *
4906      * This function assigns a integer value to the specified property of the given object by its name.
4907      *
4908      * @param[in] env A pointer to the environment structure.
4909      * @param[in] object The object containing the property.
4910      * @param[in] name The name of the property to set the integer value to.
4911      * @param[in] value The integer value to assign to the property.
4912      * @return Returns a status code of type `ani_status` indicating success or failure.
4913      */
4914     ani_status (*Object_SetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value);
4915 
4916     /**
4917      * @brief Sets a long value to a property of an object by its name.
4918      *
4919      * This function assigns a long value to the specified property of the given object by its name.
4920      *
4921      * @param[in] env A pointer to the environment structure.
4922      * @param[in] object The object containing the property.
4923      * @param[in] name The name of the property to set the long value to.
4924      * @param[in] value The long value to assign to the property.
4925      * @return Returns a status code of type `ani_status` indicating success or failure.
4926      */
4927     ani_status (*Object_SetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value);
4928 
4929     /**
4930      * @brief Sets a float value to a property of an object by its name.
4931      *
4932      * This function assigns a float value to the specified property of the given object by its name.
4933      *
4934      * @param[in] env A pointer to the environment structure.
4935      * @param[in] object The object containing the property.
4936      * @param[in] name The name of the property to set the float value to.
4937      * @param[in] value The float value to assign to the property.
4938      * @return Returns a status code of type `ani_status` indicating success or failure.
4939      */
4940     ani_status (*Object_SetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value);
4941 
4942     /**
4943      * @brief Sets a double value to a property of an object by its name.
4944      *
4945      * This function assigns a double value to the specified property of the given object by its name.
4946      *
4947      * @param[in] env A pointer to the environment structure.
4948      * @param[in] object The object containing the property.
4949      * @param[in] name The name of the property to set the double value to.
4950      * @param[in] value The double value to assign to the property.
4951      * @return Returns a status code of type `ani_status` indicating success or failure.
4952      */
4953     ani_status (*Object_SetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value);
4954 
4955     /**
4956      * @brief Sets a reference value to a property of an object by its name.
4957      *
4958      * This function assigns a reference value to the specified property of the given object by its name.
4959      *
4960      * @param[in] env A pointer to the environment structure.
4961      * @param[in] object The object containing the property.
4962      * @param[in] name The name of the property to set the reference value to.
4963      * @param[in] value The reference value to assign to the property.
4964      * @return Returns a status code of type `ani_status` indicating success or failure.
4965      */
4966     ani_status (*Object_SetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value);
4967 
4968     /**
4969      * @brief Calls a method on an object and retrieves a boolean return value.
4970      *
4971      * This function calls the specified method of an object using variadic arguments and retrieves a boolean result.
4972      *
4973      * @param[in] env A pointer to the environment structure.
4974      * @param[in] object The object on which the method is to be called.
4975      * @param[in] method The method to call.
4976      * @param[out] result A pointer to store the boolean return value.
4977      * @param[in] ... Variadic arguments to pass to the method.
4978      * @return Returns a status code of type `ani_status` indicating success or failure.
4979      */
4980     ani_status (*Object_CallMethod_Boolean)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4981                                             ...);
4982 
4983     /**
4984      * @brief Calls a method on an object and retrieves a boolean return value (array-based).
4985      *
4986      * This function calls the specified method of an object using arguments provided in an array and retrieves a
4987      * boolean result.
4988      *
4989      * @param[in] env A pointer to the environment structure.
4990      * @param[in] object The object on which the method is to be called.
4991      * @param[in] method The method to call.
4992      * @param[out] result A pointer to store the boolean return value.
4993      * @param[in] args An array of arguments to pass to the method.
4994      * @return Returns a status code of type `ani_status` indicating success or failure.
4995      */
4996     ani_status (*Object_CallMethod_Boolean_A)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4997                                               const ani_value *args);
4998 
4999     /**
5000      * @brief Calls a method on an object and retrieves a boolean return value (variadic arguments).
5001      *
5002      * This function calls the specified method of an object using a `va_list` and retrieves a boolean result.
5003      *
5004      * @param[in] env A pointer to the environment structure.
5005      * @param[in] object The object on which the method is to be called.
5006      * @param[in] method The method to call.
5007      * @param[out] result A pointer to store the boolean return value.
5008      * @param[in] args A `va_list` of arguments to pass to the method.
5009      * @return Returns a status code of type `ani_status` indicating success or failure.
5010      */
5011     ani_status (*Object_CallMethod_Boolean_V)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
5012                                               va_list args);
5013 
5014     /**
5015      * @brief Calls a method on an object and retrieves a char return value.
5016      *
5017      * This function calls the specified method of an object using variadic arguments and retrieves a char result.
5018      *
5019      * @param[in] env A pointer to the environment structure.
5020      * @param[in] object The object on which the method is to be called.
5021      * @param[in] method The method to call.
5022      * @param[out] result A pointer to store the char return value.
5023      * @param[in] ... Variadic arguments to pass to the method.
5024      * @return Returns a status code of type `ani_status` indicating success or failure.
5025      */
5026     ani_status (*Object_CallMethod_Char)(ani_env *env, ani_object object, ani_method method, ani_char *result, ...);
5027 
5028     /**
5029      * @brief Calls a method on an object and retrieves a char return value (array-based).
5030      *
5031      * This function calls the specified method of an object using arguments provided in an array and retrieves a char
5032      * result.
5033      *
5034      * @param[in] env A pointer to the environment structure.
5035      * @param[in] object The object on which the method is to be called.
5036      * @param[in] method The method to call.
5037      * @param[out] result A pointer to store the char return value.
5038      * @param[in] args An array of arguments to pass to the method.
5039      * @return Returns a status code of type `ani_status` indicating success or failure.
5040      */
5041     ani_status (*Object_CallMethod_Char_A)(ani_env *env, ani_object object, ani_method method, ani_char *result,
5042                                            const ani_value *args);
5043 
5044     /**
5045      * @brief Calls a method on an object and retrieves a char return value (variadic arguments).
5046      *
5047      * This function calls the specified method of an object using a `va_list` and retrieves a char result.
5048      *
5049      * @param[in] env A pointer to the environment structure.
5050      * @param[in] object The object on which the method is to be called.
5051      * @param[in] method The method to call.
5052      * @param[out] result A pointer to store the char return value.
5053      * @param[in] args A `va_list` of arguments to pass to the method.
5054      * @return Returns a status code of type `ani_status` indicating success or failure.
5055      */
5056     ani_status (*Object_CallMethod_Char_V)(ani_env *env, ani_object object, ani_method method, ani_char *result,
5057                                            va_list args);
5058 
5059     /**
5060      * @brief Calls a method on an object and retrieves a byte return value.
5061      *
5062      * This function calls the specified method of an object using variadic arguments and retrieves a byte result.
5063      *
5064      * @param[in] env A pointer to the environment structure.
5065      * @param[in] object The object on which the method is to be called.
5066      * @param[in] method The method to call.
5067      * @param[out] result A pointer to store the byte return value.
5068      * @param[in] ... Variadic arguments to pass to the method.
5069      * @return Returns a status code of type `ani_status` indicating success or failure.
5070      */
5071     ani_status (*Object_CallMethod_Byte)(ani_env *env, ani_object object, ani_method method, ani_byte *result, ...);
5072 
5073     /**
5074      * @brief Calls a method on an object and retrieves a byte return value (array-based).
5075      *
5076      * This function calls the specified method of an object using arguments provided in an array and retrieves a byte
5077      * result.
5078      *
5079      * @param[in] env A pointer to the environment structure.
5080      * @param[in] object The object on which the method is to be called.
5081      * @param[in] method The method to call.
5082      * @param[out] result A pointer to store the byte return value.
5083      * @param[in] args An array of arguments to pass to the method.
5084      * @return Returns a status code of type `ani_status` indicating success or failure.
5085      */
5086     ani_status (*Object_CallMethod_Byte_A)(ani_env *env, ani_object object, ani_method method, ani_byte *result,
5087                                            const ani_value *args);
5088 
5089     /**
5090      * @brief Calls a method on an object and retrieves a byte return value (variadic arguments).
5091      *
5092      * This function calls the specified method of an object using a `va_list` and retrieves a byte result.
5093      *
5094      * @param[in] env A pointer to the environment structure.
5095      * @param[in] object The object on which the method is to be called.
5096      * @param[in] method The method to call.
5097      * @param[out] result A pointer to store the byte return value.
5098      * @param[in] args A `va_list` of arguments to pass to the method.
5099      * @return Returns a status code of type `ani_status` indicating success or failure.
5100      */
5101     ani_status (*Object_CallMethod_Byte_V)(ani_env *env, ani_object object, ani_method method, ani_byte *result,
5102                                            va_list args);
5103 
5104     /**
5105      * @brief Calls a method on an object and retrieves a short return value.
5106      *
5107      * This function calls the specified method of an object using variadic arguments and retrieves a short result.
5108      *
5109      * @param[in] env A pointer to the environment structure.
5110      * @param[in] object The object on which the method is to be called.
5111      * @param[in] method The method to call.
5112      * @param[out] result A pointer to store the short return value.
5113      * @param[in] ... Variadic arguments to pass to the method.
5114      * @return Returns a status code of type `ani_status` indicating success or failure.
5115      */
5116     ani_status (*Object_CallMethod_Short)(ani_env *env, ani_object object, ani_method method, ani_short *result, ...);
5117 
5118     /**
5119      * @brief Calls a method on an object and retrieves a short return value (array-based).
5120      *
5121      * This function calls the specified method of an object using arguments provided in an array and retrieves a short
5122      * result.
5123      *
5124      * @param[in] env A pointer to the environment structure.
5125      * @param[in] object The object on which the method is to be called.
5126      * @param[in] method The method to call.
5127      * @param[out] result A pointer to store the short return value.
5128      * @param[in] args An array of arguments to pass to the method.
5129      * @return Returns a status code of type `ani_status` indicating success or failure.
5130      */
5131     ani_status (*Object_CallMethod_Short_A)(ani_env *env, ani_object object, ani_method method, ani_short *result,
5132                                             const ani_value *args);
5133 
5134     /**
5135      * @brief Calls a method on an object and retrieves a short return value (variadic arguments).
5136      *
5137      * This function calls the specified method of an object using a `va_list` and retrieves a short result.
5138      *
5139      * @param[in] env A pointer to the environment structure.
5140      * @param[in] object The object on which the method is to be called.
5141      * @param[in] method The method to call.
5142      * @param[out] result A pointer to store the short return value.
5143      * @param[in] args A `va_list` of arguments to pass to the method.
5144      * @return Returns a status code of type `ani_status` indicating success or failure.
5145      */
5146     ani_status (*Object_CallMethod_Short_V)(ani_env *env, ani_object object, ani_method method, ani_short *result,
5147                                             va_list args);
5148 
5149     /**
5150      * @brief Calls a method on an object and retrieves a integer return value.
5151      *
5152      * This function calls the specified method of an object using variadic arguments and retrieves a integer result.
5153      *
5154      * @param[in] env A pointer to the environment structure.
5155      * @param[in] object The object on which the method is to be called.
5156      * @param[in] method The method to call.
5157      * @param[out] result A pointer to store the integer return value.
5158      * @param[in] ... Variadic arguments to pass to the method.
5159      * @return Returns a status code of type `ani_status` indicating success or failure.
5160      */
5161     ani_status (*Object_CallMethod_Int)(ani_env *env, ani_object object, ani_method method, ani_int *result, ...);
5162 
5163     /**
5164      * @brief Calls a method on an object and retrieves a integer return value (array-based).
5165      *
5166      * This function calls the specified method of an object using arguments provided in an array and retrieves a
5167      * integer result.
5168      *
5169      * @param[in] env A pointer to the environment structure.
5170      * @param[in] object The object on which the method is to be called.
5171      * @param[in] method The method to call.
5172      * @param[out] result A pointer to store the integer return value.
5173      * @param[in] args An array of arguments to pass to the method.
5174      * @return Returns a status code of type `ani_status` indicating success or failure.
5175      */
5176     ani_status (*Object_CallMethod_Int_A)(ani_env *env, ani_object object, ani_method method, ani_int *result,
5177                                           const ani_value *args);
5178 
5179     /**
5180      * @brief Calls a method on an object and retrieves a integer return value (variadic arguments).
5181      *
5182      * This function calls the specified method of an object using a `va_list` and retrieves a integer result.
5183      *
5184      * @param[in] env A pointer to the environment structure.
5185      * @param[in] object The object on which the method is to be called.
5186      * @param[in] method The method to call.
5187      * @param[out] result A pointer to store the integer return value.
5188      * @param[in] args A `va_list` of arguments to pass to the method.
5189      * @return Returns a status code of type `ani_status` indicating success or failure.
5190      */
5191     ani_status (*Object_CallMethod_Int_V)(ani_env *env, ani_object object, ani_method method, ani_int *result,
5192                                           va_list args);
5193 
5194     /**
5195      * @brief Calls a method on an object and retrieves a long return value.
5196      *
5197      * This function calls the specified method of an object using variadic arguments and retrieves a long result.
5198      *
5199      * @param[in] env A pointer to the environment structure.
5200      * @param[in] object The object on which the method is to be called.
5201      * @param[in] method The method to call.
5202      * @param[out] result A pointer to store the long return value.
5203      * @param[in] ... Variadic arguments to pass to the method.
5204      * @return Returns a status code of type `ani_status` indicating success or failure.
5205      */
5206     ani_status (*Object_CallMethod_Long)(ani_env *env, ani_object object, ani_method method, ani_long *result, ...);
5207 
5208     /**
5209      * @brief Calls a method on an object and retrieves a long return value (array-based).
5210      *
5211      * This function calls the specified method of an object using arguments provided in an array and retrieves a long
5212      * result.
5213      *
5214      * @param[in] env A pointer to the environment structure.
5215      * @param[in] object The object on which the method is to be called.
5216      * @param[in] method The method to call.
5217      * @param[out] result A pointer to store the long return value.
5218      * @param[in] args An array of arguments to pass to the method.
5219      * @return Returns a status code of type `ani_status` indicating success or failure.
5220      */
5221     ani_status (*Object_CallMethod_Long_A)(ani_env *env, ani_object object, ani_method method, ani_long *result,
5222                                            const ani_value *args);
5223 
5224     /**
5225      * @brief Calls a method on an object and retrieves a long return value (variadic arguments).
5226      *
5227      * This function calls the specified method of an object using a `va_list` and retrieves a long result.
5228      *
5229      * @param[in] env A pointer to the environment structure.
5230      * @param[in] object The object on which the method is to be called.
5231      * @param[in] method The method to call.
5232      * @param[out] result A pointer to store the long return value.
5233      * @param[in] args A `va_list` of arguments to pass to the method.
5234      * @return Returns a status code of type `ani_status` indicating success or failure.
5235      */
5236     ani_status (*Object_CallMethod_Long_V)(ani_env *env, ani_object object, ani_method method, ani_long *result,
5237                                            va_list args);
5238 
5239     /**
5240      * @brief Calls a method on an object and retrieves a float return value.
5241      *
5242      * This function calls the specified method of an object using variadic arguments and retrieves a float result.
5243      *
5244      * @param[in] env A pointer to the environment structure.
5245      * @param[in] object The object on which the method is to be called.
5246      * @param[in] method The method to call.
5247      * @param[out] result A pointer to store the float return value.
5248      * @param[in] ... Variadic arguments to pass to the method.
5249      * @return Returns a status code of type `ani_status` indicating success or failure.
5250      */
5251     ani_status (*Object_CallMethod_Float)(ani_env *env, ani_object object, ani_method method, ani_float *result, ...);
5252 
5253     /**
5254      * @brief Calls a method on an object and retrieves a float return value (array-based).
5255      *
5256      * This function calls the specified method of an object using arguments provided in an array and retrieves a float
5257      * result.
5258      *
5259      * @param[in] env A pointer to the environment structure.
5260      * @param[in] object The object on which the method is to be called.
5261      * @param[in] method The method to call.
5262      * @param[out] result A pointer to store the float return value.
5263      * @param[in] args An array of arguments to pass to the method.
5264      * @return Returns a status code of type `ani_status` indicating success or failure.
5265      */
5266     ani_status (*Object_CallMethod_Float_A)(ani_env *env, ani_object object, ani_method method, ani_float *result,
5267                                             const ani_value *args);
5268 
5269     /**
5270      * @brief Calls a method on an object and retrieves a float return value (variadic arguments).
5271      *
5272      * This function calls the specified method of an object using a `va_list` and retrieves a float result.
5273      *
5274      * @param[in] env A pointer to the environment structure.
5275      * @param[in] object The object on which the method is to be called.
5276      * @param[in] method The method to call.
5277      * @param[out] result A pointer to store the float return value.
5278      * @param[in] args A `va_list` of arguments to pass to the method.
5279      * @return Returns a status code of type `ani_status` indicating success or failure.
5280      */
5281     ani_status (*Object_CallMethod_Float_V)(ani_env *env, ani_object object, ani_method method, ani_float *result,
5282                                             va_list args);
5283 
5284     /**
5285      * @brief Calls a method on an object and retrieves a double return value.
5286      *
5287      * This function calls the specified method of an object using variadic arguments and retrieves a double result.
5288      *
5289      * @param[in] env A pointer to the environment structure.
5290      * @param[in] object The object on which the method is to be called.
5291      * @param[in] method The method to call.
5292      * @param[out] result A pointer to store the double return value.
5293      * @param[in] ... Variadic arguments to pass to the method.
5294      * @return Returns a status code of type `ani_status` indicating success or failure.
5295      */
5296     ani_status (*Object_CallMethod_Double)(ani_env *env, ani_object object, ani_method method, ani_double *result, ...);
5297 
5298     /**
5299      * @brief Calls a method on an object and retrieves a double return value (array-based).
5300      *
5301      * This function calls the specified method of an object using arguments provided in an array and retrieves a double
5302      * result.
5303      *
5304      * @param[in] env A pointer to the environment structure.
5305      * @param[in] object The object on which the method is to be called.
5306      * @param[in] method The method to call.
5307      * @param[out] result A pointer to store the double return value.
5308      * @param[in] args An array of arguments to pass to the method.
5309      * @return Returns a status code of type `ani_status` indicating success or failure.
5310      */
5311     ani_status (*Object_CallMethod_Double_A)(ani_env *env, ani_object object, ani_method method, ani_double *result,
5312                                              const ani_value *args);
5313 
5314     /**
5315      * @brief Calls a method on an object and retrieves a double return value (variadic arguments).
5316      *
5317      * This function calls the specified method of an object using a `va_list` and retrieves a double result.
5318      *
5319      * @param[in] env A pointer to the environment structure.
5320      * @param[in] object The object on which the method is to be called.
5321      * @param[in] method The method to call.
5322      * @param[out] result A pointer to store the double return value.
5323      * @param[in] args A `va_list` of arguments to pass to the method.
5324      * @return Returns a status code of type `ani_status` indicating success or failure.
5325      */
5326     ani_status (*Object_CallMethod_Double_V)(ani_env *env, ani_object object, ani_method method, ani_double *result,
5327                                              va_list args);
5328 
5329     /**
5330      * @brief Calls a method on an object and retrieves a reference return value.
5331      *
5332      * This function calls the specified method of an object using variadic arguments and retrieves a reference result.
5333      *
5334      * @param[in] env A pointer to the environment structure.
5335      * @param[in] object The object on which the method is to be called.
5336      * @param[in] method The method to call.
5337      * @param[out] result A pointer to store the reference return value.
5338      * @param[in] ... Variadic arguments to pass to the method.
5339      * @return Returns a status code of type `ani_status` indicating success or failure.
5340      */
5341     ani_status (*Object_CallMethod_Ref)(ani_env *env, ani_object object, ani_method method, ani_ref *result, ...);
5342 
5343     /**
5344      * @brief Calls a method on an object and retrieves a reference return value (array-based).
5345      *
5346      * This function calls the specified method of an object using arguments provided in an array and retrieves a
5347      * reference result.
5348      *
5349      * @param[in] env A pointer to the environment structure.
5350      * @param[in] object The object on which the method is to be called.
5351      * @param[in] method The method to call.
5352      * @param[out] result A pointer to store the reference return value.
5353      * @param[in] args An array of arguments to pass to the method.
5354      * @return Returns a status code of type `ani_status` indicating success or failure.
5355      */
5356     ani_status (*Object_CallMethod_Ref_A)(ani_env *env, ani_object object, ani_method method, ani_ref *result,
5357                                           const ani_value *args);
5358 
5359     /**
5360      * @brief Calls a method on an object and retrieves a reference return value (variadic arguments).
5361      *
5362      * This function calls the specified method of an object using a `va_list` and retrieves a reference result.
5363      *
5364      * @param[in] env A pointer to the environment structure.
5365      * @param[in] object The object on which the method is to be called.
5366      * @param[in] method The method to call.
5367      * @param[out] result A pointer to store the reference return value.
5368      * @param[in] args A `va_list` of arguments to pass to the method.
5369      * @return Returns a status code of type `ani_status` indicating success or failure.
5370      */
5371     ani_status (*Object_CallMethod_Ref_V)(ani_env *env, ani_object object, ani_method method, ani_ref *result,
5372                                           va_list args);
5373 
5374     /**
5375      * @brief Calls a method on an object with no return value.
5376      *
5377      * This function calls the specified method of an object using variadic arguments. The method does not return a
5378      * value.
5379      *
5380      * @param[in] env A pointer to the environment structure.
5381      * @param[in] object The object on which the method is to be called.
5382      * @param[in] method The method to call.
5383      * @param[in] ... Variadic arguments to pass to the method.
5384      * @return Returns a status code of type `ani_status` indicating success or failure.
5385      */
5386     ani_status (*Object_CallMethod_Void)(ani_env *env, ani_object object, ani_method method, ...);
5387 
5388     /**
5389      * @brief Calls a method on an object with no return value (array-based).
5390      *
5391      * This function calls the specified method of an object using arguments provided in an array. The method does not
5392      * return a value.
5393      *
5394      * @param[in] env A pointer to the environment structure.
5395      * @param[in] object The object on which the method is to be called.
5396      * @param[in] method The method to call.
5397      * @param[in] args An array of arguments to pass to the method.
5398      * @return Returns a status code of type `ani_status` indicating success or failure.
5399      */
5400     ani_status (*Object_CallMethod_Void_A)(ani_env *env, ani_object object, ani_method method, const ani_value *args);
5401 
5402     /**
5403      * @brief Calls a method on an object with no return value (variadic arguments).
5404      *
5405      * This function calls the specified method of an object using a `va_list`. The method does not return a value.
5406      *
5407      * @param[in] env A pointer to the environment structure.
5408      * @param[in] object The object on which the method is to be called.
5409      * @param[in] method The method to call.
5410      * @param[in] args A `va_list` of arguments to pass to the method.
5411      * @return Returns a status code of type `ani_status` indicating success or failure.
5412      */
5413     ani_status (*Object_CallMethod_Void_V)(ani_env *env, ani_object object, ani_method method, va_list args);
5414 
5415     /**
5416      * @brief Calls a method by name on an object and retrieves a boolean return value.
5417      *
5418      * This function calls the specified method by its name and signature on an object using variadic arguments and
5419      * retrieves a boolean result.
5420      *
5421      * @param[in] env A pointer to the environment structure.
5422      * @param[in] object The object on which the method is to be called.
5423      * @param[in] name The name of the method to call.
5424      * @param[in] signature The signature of the method to call.
5425      * @param[out] result A pointer to store the boolean return value.
5426      * @param[in] ... Variadic arguments to pass to the method.
5427      * @return Returns a status code of type `ani_status` indicating success or failure.
5428      */
5429     ani_status (*Object_CallMethodByName_Boolean)(ani_env *env, ani_object object, const char *name,
5430                                                   const char *signature, ani_boolean *result, ...);
5431 
5432     /**
5433      * @brief Calls a method by name on an object and retrieves a boolean return value (array-based).
5434      *
5435      * This function calls the specified method by its name and signature on an object using arguments provided in an
5436      * array and retrieves a boolean result.
5437      *
5438      * @param[in] env A pointer to the environment structure.
5439      * @param[in] object The object on which the method is to be called.
5440      * @param[in] name The name of the method to call.
5441      * @param[in] signature The signature of the method to call.
5442      * @param[out] result A pointer to store the boolean return value.
5443      * @param[in] args An array of arguments to pass to the method.
5444      * @return Returns a status code of type `ani_status` indicating success or failure.
5445      */
5446     ani_status (*Object_CallMethodByName_Boolean_A)(ani_env *env, ani_object object, const char *name,
5447                                                     const char *signature, ani_boolean *result, const ani_value *args);
5448 
5449     /**
5450      * @brief Calls a method by name on an object and retrieves a boolean return value (variadic arguments).
5451      *
5452      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5453      * boolean result.
5454      *
5455      * @param[in] env A pointer to the environment structure.
5456      * @param[in] object The object on which the method is to be called.
5457      * @param[in] name The name of the method to call.
5458      * @param[in] signature The signature of the method to call.
5459      * @param[out] result A pointer to store the boolean return value.
5460      * @param[in] args A `va_list` of arguments to pass to the method.
5461      * @return Returns a status code of type `ani_status` indicating success or failure.
5462      */
5463     ani_status (*Object_CallMethodByName_Boolean_V)(ani_env *env, ani_object object, const char *name,
5464                                                     const char *signature, ani_boolean *result, va_list args);
5465 
5466     /**
5467      * @brief Calls a method by name on an object and retrieves a char return value.
5468      *
5469      * This function calls the specified method by its name and signature on an object using variadic arguments and
5470      * retrieves a char result.
5471      *
5472      * @param[in] env A pointer to the environment structure.
5473      * @param[in] object The object on which the method is to be called.
5474      * @param[in] name The name of the method to call.
5475      * @param[in] signature The signature of the method to call.
5476      * @param[out] result A pointer to store the char return value.
5477      * @param[in] ... Variadic arguments to pass to the method.
5478      * @return Returns a status code of type `ani_status` indicating success or failure.
5479      */
5480     ani_status (*Object_CallMethodByName_Char)(ani_env *env, ani_object object, const char *name, const char *signature,
5481                                                ani_char *result, ...);
5482 
5483     /**
5484      * @brief Calls a method by name on an object and retrieves a char return value (array-based).
5485      *
5486      * This function calls the specified method by its name and signature on an object using arguments provided in an
5487      * array and retrieves a char result.
5488      *
5489      * @param[in] env A pointer to the environment structure.
5490      * @param[in] object The object on which the method is to be called.
5491      * @param[in] name The name of the method to call.
5492      * @param[in] signature The signature of the method to call.
5493      * @param[out] result A pointer to store the char return value.
5494      * @param[in] args An array of arguments to pass to the method.
5495      * @return Returns a status code of type `ani_status` indicating success or failure.
5496      */
5497     ani_status (*Object_CallMethodByName_Char_A)(ani_env *env, ani_object object, const char *name,
5498                                                  const char *signature, ani_char *result, const ani_value *args);
5499 
5500     /**
5501      * @brief Calls a method by name on an object and retrieves a char return value (variadic arguments).
5502      *
5503      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5504      * char result.
5505      *
5506      * @param[in] env A pointer to the environment structure.
5507      * @param[in] object The object on which the method is to be called.
5508      * @param[in] name The name of the method to call.
5509      * @param[in] signature The signature of the method to call.
5510      * @param[out] result A pointer to store the char return value.
5511      * @param[in] args A `va_list` of arguments to pass to the method.
5512      * @return Returns a status code of type `ani_status` indicating success or failure.
5513      */
5514     ani_status (*Object_CallMethodByName_Char_V)(ani_env *env, ani_object object, const char *name,
5515                                                  const char *signature, ani_char *result, va_list args);
5516 
5517     /**
5518      * @brief Calls a method by name on an object and retrieves a byte return value.
5519      *
5520      * This function calls the specified method by its name and signature on an object using variadic arguments and
5521      * retrieves a byte result.
5522      *
5523      * @param[in] env A pointer to the environment structure.
5524      * @param[in] object The object on which the method is to be called.
5525      * @param[in] name The name of the method to call.
5526      * @param[in] signature The signature of the method to call.
5527      * @param[out] result A pointer to store the byte return value.
5528      * @param[in] ... Variadic arguments to pass to the method.
5529      * @return Returns a status code of type `ani_status` indicating success or failure.
5530      */
5531     ani_status (*Object_CallMethodByName_Byte)(ani_env *env, ani_object object, const char *name, const char *signature,
5532                                                ani_byte *result, ...);
5533 
5534     /**
5535      * @brief Calls a method by name on an object and retrieves a byte return value (array-based).
5536      *
5537      * This function calls the specified method by its name and signature on an object using arguments provided in an
5538      * array and retrieves a byte result.
5539      *
5540      * @param[in] env A pointer to the environment structure.
5541      * @param[in] object The object on which the method is to be called.
5542      * @param[in] name The name of the method to call.
5543      * @param[in] signature The signature of the method to call.
5544      * @param[out] result A pointer to store the byte return value.
5545      * @param[in] args An array of arguments to pass to the method.
5546      * @return Returns a status code of type `ani_status` indicating success or failure.
5547      */
5548     ani_status (*Object_CallMethodByName_Byte_A)(ani_env *env, ani_object object, const char *name,
5549                                                  const char *signature, ani_byte *result, const ani_value *args);
5550 
5551     /**
5552      * @brief Calls a method by name on an object and retrieves a byte return value (variadic arguments).
5553      *
5554      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5555      * byte result.
5556      *
5557      * @param[in] env A pointer to the environment structure.
5558      * @param[in] object The object on which the method is to be called.
5559      * @param[in] name The name of the method to call.
5560      * @param[in] signature The signature of the method to call.
5561      * @param[out] result A pointer to store the byte return value.
5562      * @param[in] args A `va_list` of arguments to pass to the method.
5563      * @return Returns a status code of type `ani_status` indicating success or failure.
5564      */
5565     ani_status (*Object_CallMethodByName_Byte_V)(ani_env *env, ani_object object, const char *name,
5566                                                  const char *signature, ani_byte *result, va_list args);
5567 
5568     /**
5569      * @brief Calls a method by name on an object and retrieves a short return value.
5570      *
5571      * This function calls the specified method by its name and signature on an object using variadic arguments and
5572      * retrieves a short result.
5573      *
5574      * @param[in] env A pointer to the environment structure.
5575      * @param[in] object The object on which the method is to be called.
5576      * @param[in] name The name of the method to call.
5577      * @param[in] signature The signature of the method to call.
5578      * @param[out] result A pointer to store the short return value.
5579      * @param[in] ... Variadic arguments to pass to the method.
5580      * @return Returns a status code of type `ani_status` indicating success or failure.
5581      */
5582     ani_status (*Object_CallMethodByName_Short)(ani_env *env, ani_object object, const char *name,
5583                                                 const char *signature, ani_short *result, ...);
5584 
5585     /**
5586      * @brief Calls a method by name on an object and retrieves a short return value (array-based).
5587      *
5588      * This function calls the specified method by its name and signature on an object using arguments provided in an
5589      * array and retrieves a short result.
5590      *
5591      * @param[in] env A pointer to the environment structure.
5592      * @param[in] object The object on which the method is to be called.
5593      * @param[in] name The name of the method to call.
5594      * @param[in] signature The signature of the method to call.
5595      * @param[out] result A pointer to store the short return value.
5596      * @param[in] args An array of arguments to pass to the method.
5597      * @return Returns a status code of type `ani_status` indicating success or failure.
5598      */
5599     ani_status (*Object_CallMethodByName_Short_A)(ani_env *env, ani_object object, const char *name,
5600                                                   const char *signature, ani_short *result, const ani_value *args);
5601 
5602     /**
5603      * @brief Calls a method by name on an object and retrieves a short return value (variadic arguments).
5604      *
5605      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5606      * short result.
5607      *
5608      * @param[in] env A pointer to the environment structure.
5609      * @param[in] object The object on which the method is to be called.
5610      * @param[in] name The name of the method to call.
5611      * @param[in] signature The signature of the method to call.
5612      * @param[out] result A pointer to store the short return value.
5613      * @param[in] args A `va_list` of arguments to pass to the method.
5614      * @return Returns a status code of type `ani_status` indicating success or failure.
5615      */
5616     ani_status (*Object_CallMethodByName_Short_V)(ani_env *env, ani_object object, const char *name,
5617                                                   const char *signature, ani_short *result, va_list args);
5618 
5619     /**
5620      * @brief Calls a method by name on an object and retrieves a integer return value.
5621      *
5622      * This function calls the specified method by its name and signature on an object using variadic arguments and
5623      * retrieves a integer result.
5624      *
5625      * @param[in] env A pointer to the environment structure.
5626      * @param[in] object The object on which the method is to be called.
5627      * @param[in] name The name of the method to call.
5628      * @param[in] signature The signature of the method to call.
5629      * @param[out] result A pointer to store the integer return value.
5630      * @param[in] ... Variadic arguments to pass to the method.
5631      * @return Returns a status code of type `ani_status` indicating success or failure.
5632      */
5633     ani_status (*Object_CallMethodByName_Int)(ani_env *env, ani_object object, const char *name, const char *signature,
5634                                               ani_int *result, ...);
5635 
5636     /**
5637      * @brief Calls a method by name on an object and retrieves a integer return value (array-based).
5638      *
5639      * This function calls the specified method by its name and signature on an object using arguments provided in an
5640      * array and retrieves a integer result.
5641      *
5642      * @param[in] env A pointer to the environment structure.
5643      * @param[in] object The object on which the method is to be called.
5644      * @param[in] name The name of the method to call.
5645      * @param[in] signature The signature of the method to call.
5646      * @param[out] result A pointer to store the integer return value.
5647      * @param[in] args An array of arguments to pass to the method.
5648      * @return Returns a status code of type `ani_status` indicating success or failure.
5649      */
5650     ani_status (*Object_CallMethodByName_Int_A)(ani_env *env, ani_object object, const char *name,
5651                                                 const char *signature, ani_int *result, const ani_value *args);
5652 
5653     /**
5654      * @brief Calls a method by name on an object and retrieves a integer return value (variadic arguments).
5655      *
5656      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5657      * integer result.
5658      *
5659      * @param[in] env A pointer to the environment structure.
5660      * @param[in] object The object on which the method is to be called.
5661      * @param[in] name The name of the method to call.
5662      * @param[in] signature The signature of the method to call.
5663      * @param[out] result A pointer to store the integer return value.
5664      * @param[in] args A `va_list` of arguments to pass to the method.
5665      * @return Returns a status code of type `ani_status` indicating success or failure.
5666      */
5667     ani_status (*Object_CallMethodByName_Int_V)(ani_env *env, ani_object object, const char *name,
5668                                                 const char *signature, ani_int *result, va_list args);
5669 
5670     /**
5671      * @brief Calls a method by name on an object and retrieves a long return value.
5672      *
5673      * This function calls the specified method by its name and signature on an object using variadic arguments and
5674      * retrieves a long result.
5675      *
5676      * @param[in] env A pointer to the environment structure.
5677      * @param[in] object The object on which the method is to be called.
5678      * @param[in] name The name of the method to call.
5679      * @param[in] signature The signature of the method to call.
5680      * @param[out] result A pointer to store the long return value.
5681      * @param[in] ... Variadic arguments to pass to the method.
5682      * @return Returns a status code of type `ani_status` indicating success or failure.
5683      */
5684     ani_status (*Object_CallMethodByName_Long)(ani_env *env, ani_object object, const char *name, const char *signature,
5685                                                ani_long *result, ...);
5686 
5687     /**
5688      * @brief Calls a method by name on an object and retrieves a long return value (array-based).
5689      *
5690      * This function calls the specified method by its name and signature on an object using arguments provided in an
5691      * array and retrieves a long result.
5692      *
5693      * @param[in] env A pointer to the environment structure.
5694      * @param[in] object The object on which the method is to be called.
5695      * @param[in] name The name of the method to call.
5696      * @param[in] signature The signature of the method to call.
5697      * @param[out] result A pointer to store the long return value.
5698      * @param[in] args An array of arguments to pass to the method.
5699      * @return Returns a status code of type `ani_status` indicating success or failure.
5700      */
5701     ani_status (*Object_CallMethodByName_Long_A)(ani_env *env, ani_object object, const char *name,
5702                                                  const char *signature, ani_long *result, const ani_value *args);
5703 
5704     /**
5705      * @brief Calls a method by name on an object and retrieves a long return value (variadic arguments).
5706      *
5707      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5708      * long result.
5709      *
5710      * @param[in] env A pointer to the environment structure.
5711      * @param[in] object The object on which the method is to be called.
5712      * @param[in] name The name of the method to call.
5713      * @param[in] signature The signature of the method to call.
5714      * @param[out] result A pointer to store the long return value.
5715      * @param[in] args A `va_list` of arguments to pass to the method.
5716      * @return Returns a status code of type `ani_status` indicating success or failure.
5717      */
5718     ani_status (*Object_CallMethodByName_Long_V)(ani_env *env, ani_object object, const char *name,
5719                                                  const char *signature, ani_long *result, va_list args);
5720 
5721     /**
5722      * @brief Calls a method by name on an object and retrieves a float return value.
5723      *
5724      * This function calls the specified method by its name and signature on an object using variadic arguments and
5725      * retrieves a float result.
5726      *
5727      * @param[in] env A pointer to the environment structure.
5728      * @param[in] object The object on which the method is to be called.
5729      * @param[in] name The name of the method to call.
5730      * @param[in] signature The signature of the method to call.
5731      * @param[out] result A pointer to store the float return value.
5732      * @param[in] ... Variadic arguments to pass to the method.
5733      * @return Returns a status code of type `ani_status` indicating success or failure.
5734      */
5735     ani_status (*Object_CallMethodByName_Float)(ani_env *env, ani_object object, const char *name,
5736                                                 const char *signature, ani_float *result, ...);
5737 
5738     /**
5739      * @brief Calls a method by name on an object and retrieves a float return value (array-based).
5740      *
5741      * This function calls the specified method by its name and signature on an object using arguments provided in an
5742      * array and retrieves a float result.
5743      *
5744      * @param[in] env A pointer to the environment structure.
5745      * @param[in] object The object on which the method is to be called.
5746      * @param[in] name The name of the method to call.
5747      * @param[in] signature The signature of the method to call.
5748      * @param[out] result A pointer to store the float return value.
5749      * @param[in] args An array of arguments to pass to the method.
5750      * @return Returns a status code of type `ani_status` indicating success or failure.
5751      */
5752     ani_status (*Object_CallMethodByName_Float_A)(ani_env *env, ani_object object, const char *name,
5753                                                   const char *signature, ani_float *result, const ani_value *args);
5754 
5755     /**
5756      * @brief Calls a method by name on an object and retrieves a float return value (variadic arguments).
5757      *
5758      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5759      * float result.
5760      *
5761      * @param[in] env A pointer to the environment structure.
5762      * @param[in] object The object on which the method is to be called.
5763      * @param[in] name The name of the method to call.
5764      * @param[in] signature The signature of the method to call.
5765      * @param[out] result A pointer to store the float return value.
5766      * @param[in] args A `va_list` of arguments to pass to the method.
5767      * @return Returns a status code of type `ani_status` indicating success or failure.
5768      */
5769     ani_status (*Object_CallMethodByName_Float_V)(ani_env *env, ani_object object, const char *name,
5770                                                   const char *signature, ani_float *result, va_list args);
5771 
5772     /**
5773      * @brief Calls a method by name on an object and retrieves a double return value.
5774      *
5775      * This function calls the specified method by its name and signature on an object using variadic arguments and
5776      * retrieves a double result.
5777      *
5778      * @param[in] env A pointer to the environment structure.
5779      * @param[in] object The object on which the method is to be called.
5780      * @param[in] name The name of the method to call.
5781      * @param[in] signature The signature of the method to call.
5782      * @param[out] result A pointer to store the double return value.
5783      * @param[in] ... Variadic arguments to pass to the method.
5784      * @return Returns a status code of type `ani_status` indicating success or failure.
5785      */
5786     ani_status (*Object_CallMethodByName_Double)(ani_env *env, ani_object object, const char *name,
5787                                                  const char *signature, ani_double *result, ...);
5788 
5789     /**
5790      * @brief Calls a method by name on an object and retrieves a double return value (array-based).
5791      *
5792      * This function calls the specified method by its name and signature on an object using arguments provided in an
5793      * array and retrieves a double result.
5794      *
5795      * @param[in] env A pointer to the environment structure.
5796      * @param[in] object The object on which the method is to be called.
5797      * @param[in] name The name of the method to call.
5798      * @param[in] signature The signature of the method to call.
5799      * @param[out] result A pointer to store the double return value.
5800      * @param[in] args An array of arguments to pass to the method.
5801      * @return Returns a status code of type `ani_status` indicating success or failure.
5802      */
5803     ani_status (*Object_CallMethodByName_Double_A)(ani_env *env, ani_object object, const char *name,
5804                                                    const char *signature, ani_double *result, const ani_value *args);
5805 
5806     /**
5807      * @brief Calls a method by name on an object and retrieves a double return value (variadic arguments).
5808      *
5809      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5810      * double result.
5811      *
5812      * @param[in] env A pointer to the environment structure.
5813      * @param[in] object The object on which the method is to be called.
5814      * @param[in] name The name of the method to call.
5815      * @param[in] signature The signature of the method to call.
5816      * @param[out] result A pointer to store the double return value.
5817      * @param[in] args A `va_list` of arguments to pass to the method.
5818      * @return Returns a status code of type `ani_status` indicating success or failure.
5819      */
5820     ani_status (*Object_CallMethodByName_Double_V)(ani_env *env, ani_object object, const char *name,
5821                                                    const char *signature, ani_double *result, va_list args);
5822 
5823     /**
5824      * @brief Calls a method by name on an object and retrieves a reference return value.
5825      *
5826      * This function calls the specified method by its name and signature on an object using variadic arguments and
5827      * retrieves a reference result.
5828      *
5829      * @param[in] env A pointer to the environment structure.
5830      * @param[in] object The object on which the method is to be called.
5831      * @param[in] name The name of the method to call.
5832      * @param[in] signature The signature of the method to call.
5833      * @param[out] result A pointer to store the reference return value.
5834      * @param[in] ... Variadic arguments to pass to the method.
5835      * @return Returns a status code of type `ani_status` indicating success or failure.
5836      */
5837     ani_status (*Object_CallMethodByName_Ref)(ani_env *env, ani_object object, const char *name, const char *signature,
5838                                               ani_ref *result, ...);
5839 
5840     /**
5841      * @brief Calls a method by name on an object and retrieves a reference return value (array-based).
5842      *
5843      * This function calls the specified method by its name and signature on an object using arguments provided in an
5844      * array and retrieves a reference result.
5845      *
5846      * @param[in] env A pointer to the environment structure.
5847      * @param[in] object The object on which the method is to be called.
5848      * @param[in] name The name of the method to call.
5849      * @param[in] signature The signature of the method to call.
5850      * @param[out] result A pointer to store the reference return value.
5851      * @param[in] args An array of arguments to pass to the method.
5852      * @return Returns a status code of type `ani_status` indicating success or failure.
5853      */
5854     ani_status (*Object_CallMethodByName_Ref_A)(ani_env *env, ani_object object, const char *name,
5855                                                 const char *signature, ani_ref *result, const ani_value *args);
5856 
5857     /**
5858      * @brief Calls a method by name on an object and retrieves a reference return value (variadic arguments).
5859      *
5860      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5861      * reference result.
5862      *
5863      * @param[in] env A pointer to the environment structure.
5864      * @param[in] object The object on which the method is to be called.
5865      * @param[in] name The name of the method to call.
5866      * @param[in] signature The signature of the method to call.
5867      * @param[out] result A pointer to store the reference return value.
5868      * @param[in] args A `va_list` of arguments to pass to the method.
5869      * @return Returns a status code of type `ani_status` indicating success or failure.
5870      */
5871     ani_status (*Object_CallMethodByName_Ref_V)(ani_env *env, ani_object object, const char *name,
5872                                                 const char *signature, ani_ref *result, va_list args);
5873 
5874     /**
5875      * @brief Calls a method by name on an object with no return value.
5876      *
5877      * This function calls the specified method by its name and signature on an object using variadic arguments. The
5878      * method does not return a value.
5879      *
5880      * @param[in] env A pointer to the environment structure.
5881      * @param[in] object The object on which the method is to be called.
5882      * @param[in] name The name of the method to call.
5883      * @param[in] signature The signature of the method to call.
5884      * @param[in] ... Variadic arguments to pass to the method.
5885      * @return Returns a status code of type `ani_status` indicating success or failure.
5886      */
5887     ani_status (*Object_CallMethodByName_Void)(ani_env *env, ani_object object, const char *name, const char *signature,
5888                                                ...);
5889 
5890     /**
5891      * @brief Calls a method by name on an object with no return value (array-based).
5892      *
5893      * This function calls the specified method by its name and signature on an object using arguments provided in an
5894      * array. The method does not return a value.
5895      *
5896      * @param[in] env A pointer to the environment structure.
5897      * @param[in] object The object on which the method is to be called.
5898      * @param[in] name The name of the method to call.
5899      * @param[in] signature The signature of the method to call.
5900      * @param[in] args An array of arguments to pass to the method.
5901      * @return Returns a status code of type `ani_status` indicating success or failure.
5902      */
5903     ani_status (*Object_CallMethodByName_Void_A)(ani_env *env, ani_object object, const char *name,
5904                                                  const char *signature, const ani_value *args);
5905 
5906     /**
5907      * @brief Calls a method by name on an object with no return value (variadic arguments).
5908      *
5909      * This function calls the specified method by its name and signature on an object using a `va_list`. The method
5910      * does not return a value.
5911      *
5912      * @param[in] env A pointer to the environment structure.
5913      * @param[in] object The object on which the method is to be called.
5914      * @param[in] name The name of the method to call.
5915      * @param[in] signature The signature of the method to call.
5916      * @param[in] args A `va_list` of arguments to pass to the method.
5917      * @return Returns a status code of type `ani_status` indicating success or failure.
5918      */
5919     ani_status (*Object_CallMethodByName_Void_V)(ani_env *env, ani_object object, const char *name,
5920                                                  const char *signature, va_list args);
5921 
5922     /**
5923      * @brief Creates a new tuple value.
5924      *
5925      * This function creates a new value for the specified tuple using variadic arguments.
5926      *
5927      * @param[in] env A pointer to the environment structure.
5928      * @param[in] tuple The tuple for which to create a new value.
5929      * @param[out] result A pointer to store the new tuple value.
5930      * @param[in] ... Variadic arguments to initialize the tuple value.
5931      * @return Returns a status code of type `ani_status` indicating success or failure.
5932      */
5933     ani_status (*Tuple_NewTupleValue)(ani_env *env, ani_tuple tuple, ani_tuple_value *result, ...);
5934 
5935     /**
5936      * @brief Creates a new tuple value (array-based).
5937      *
5938      * This function creates a new value for the specified tuple using arguments provided in an array.
5939      *
5940      * @param[in] env A pointer to the environment structure.
5941      * @param[in] tuple The tuple for which to create a new value.
5942      * @param[out] result A pointer to store the new tuple value.
5943      * @param[in] args An array of arguments to initialize the tuple value.
5944      * @return Returns a status code of type `ani_status` indicating success or failure.
5945      */
5946     ani_status (*Tuple_NewTupleValue_A)(ani_env *env, ani_tuple tuple, ani_tuple_value *result, const ani_value *args);
5947 
5948     /**
5949      * @brief Creates a new tuple value (variadic arguments).
5950      *
5951      * This function creates a new value for the specified tuple using a `va_list`.
5952      *
5953      * @param[in] env A pointer to the environment structure.
5954      * @param[in] tuple The tuple for which to create a new value.
5955      * @param[out] result A pointer to store the new tuple value.
5956      * @param[in] args A `va_list` of arguments to initialize the tuple value.
5957      * @return Returns a status code of type `ani_status` indicating success or failure.
5958      */
5959     ani_status (*Tuple_NewTupleValue_V)(ani_env *env, ani_tuple tuple, ani_tuple_value *result, va_list args);
5960 
5961     /**
5962      * @brief Retrieves the number of items in a tuple.
5963      *
5964      * This function retrieves the total number of items in the specified tuple.
5965      *
5966      * @param[in] env A pointer to the environment structure.
5967      * @param[in] tuple The tuple whose number of items is to be retrieved.
5968      * @param[out] result A pointer to store the number of items.
5969      * @return Returns a status code of type `ani_status` indicating success or failure.
5970      */
5971     ani_status (*Tuple_GetNumberOfItems)(ani_env *env, ani_tuple tuple, ani_size *result);
5972 
5973     /**
5974      * @brief Retrieves the kind of an item in a tuple.
5975      *
5976      * This function retrieves the kind of the item at the specified index in the tuple.
5977      *
5978      * @param[in] env A pointer to the environment structure.
5979      * @param[in] tuple The tuple containing the item.
5980      * @param[in] index The index of the item.
5981      * @param[out] result A pointer to store the kind of the item.
5982      * @return Returns a status code of type `ani_status` indicating success or failure.
5983      */
5984     ani_status (*Tuple_GetItemKind)(ani_env *env, ani_tuple tuple, ani_size index, ani_kind *result);
5985 
5986     /**
5987      * @brief Retrieves the type of an item in a tuple.
5988      *
5989      * This function retrieves the type of the item at the specified index in the tuple.
5990      *
5991      * @param[in] env A pointer to the environment structure.
5992      * @param[in] tuple The tuple containing the item.
5993      * @param[in] index The index of the item.
5994      * @param[out] result A pointer to store the type of the item.
5995      * @return Returns a status code of type `ani_status` indicating success or failure.
5996      */
5997     ani_status (*Tuple_GetItemType)(ani_env *env, ani_tuple tuple, ani_size index, ani_type *result);
5998 
5999     /**
6000      * @brief Retrieves the tuple associated with a tuple value.
6001      *
6002      * This function retrieves the tuple that corresponds to the specified tuple value.
6003      *
6004      * @param[in] env A pointer to the environment structure.
6005      * @param[in] value The tuple value to query.
6006      * @param[out] result A pointer to store the associated tuple.
6007      * @return Returns a status code of type `ani_status` indicating success or failure.
6008      */
6009     ani_status (*TupleValue_GetTuple)(ani_env *env, ani_tuple_value value, ani_tuple *result);
6010 
6011     /**
6012      * @brief Retrieves a boolean item from a tuple value.
6013      *
6014      * This function retrieves the boolean value of the item at the specified index in the tuple value.
6015      *
6016      * @param[in] env A pointer to the environment structure.
6017      * @param[in] tuple_value The tuple value containing the item.
6018      * @param[in] index The index of the item.
6019      * @param[out] result A pointer to store the boolean value of the item.
6020      * @return Returns a status code of type `ani_status` indicating success or failure.
6021      */
6022     ani_status (*TupleValue_GetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
6023                                              ani_boolean *result);
6024 
6025     /**
6026      * @brief Retrieves a char item from a tuple value.
6027      *
6028      * This function retrieves the char value of the item at the specified index in the tuple value.
6029      *
6030      * @param[in] env A pointer to the environment structure.
6031      * @param[in] tuple_value The tuple value containing the item.
6032      * @param[in] index The index of the item.
6033      * @param[out] result A pointer to store the char value of the item.
6034      * @return Returns a status code of type `ani_status` indicating success or failure.
6035      */
6036     ani_status (*TupleValue_GetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char *result);
6037 
6038     /**
6039      * @brief Retrieves a byte item from a tuple value.
6040      *
6041      * This function retrieves the byte value of the item at the specified index in the tuple value.
6042      *
6043      * @param[in] env A pointer to the environment structure.
6044      * @param[in] tuple_value The tuple value containing the item.
6045      * @param[in] index The index of the item.
6046      * @param[out] result A pointer to store the byte value of the item.
6047      * @return Returns a status code of type `ani_status` indicating success or failure.
6048      */
6049     ani_status (*TupleValue_GetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte *result);
6050 
6051     /**
6052      * @brief Retrieves a short item from a tuple value.
6053      *
6054      * This function retrieves the short value of the item at the specified index in the tuple value.
6055      *
6056      * @param[in] env A pointer to the environment structure.
6057      * @param[in] tuple_value The tuple value containing the item.
6058      * @param[in] index The index of the item.
6059      * @param[out] result A pointer to store the short value of the item.
6060      * @return Returns a status code of type `ani_status` indicating success or failure.
6061      */
6062     ani_status (*TupleValue_GetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
6063                                            ani_short *result);
6064 
6065     /**
6066      * @brief Retrieves a integer item from a tuple value.
6067      *
6068      * This function retrieves the integer value of the item at the specified index in the tuple value.
6069      *
6070      * @param[in] env A pointer to the environment structure.
6071      * @param[in] tuple_value The tuple value containing the item.
6072      * @param[in] index The index of the item.
6073      * @param[out] result A pointer to store the integer value of the item.
6074      * @return Returns a status code of type `ani_status` indicating success or failure.
6075      */
6076     ani_status (*TupleValue_GetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int *result);
6077 
6078     /**
6079      * @brief Retrieves a long item from a tuple value.
6080      *
6081      * This function retrieves the long value of the item at the specified index in the tuple value.
6082      *
6083      * @param[in] env A pointer to the environment structure.
6084      * @param[in] tuple_value The tuple value containing the item.
6085      * @param[in] index The index of the item.
6086      * @param[out] result A pointer to store the long value of the item.
6087      * @return Returns a status code of type `ani_status` indicating success or failure.
6088      */
6089     ani_status (*TupleValue_GetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long *result);
6090 
6091     /**
6092      * @brief Retrieves a float item from a tuple value.
6093      *
6094      * This function retrieves the float value of the item at the specified index in the tuple value.
6095      *
6096      * @param[in] env A pointer to the environment structure.
6097      * @param[in] tuple_value The tuple value containing the item.
6098      * @param[in] index The index of the item.
6099      * @param[out] result A pointer to store the float value of the item.
6100      * @return Returns a status code of type `ani_status` indicating success or failure.
6101      */
6102     ani_status (*TupleValue_GetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
6103                                            ani_float *result);
6104 
6105     /**
6106      * @brief Retrieves a double item from a tuple value.
6107      *
6108      * This function retrieves the double value of the item at the specified index in the tuple value.
6109      *
6110      * @param[in] env A pointer to the environment structure.
6111      * @param[in] tuple_value The tuple value containing the item.
6112      * @param[in] index The index of the item.
6113      * @param[out] result A pointer to store the double value of the item.
6114      * @return Returns a status code of type `ani_status` indicating success or failure.
6115      */
6116     ani_status (*TupleValue_GetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
6117                                             ani_double *result);
6118 
6119     /**
6120      * @brief Retrieves a reference item from a tuple value.
6121      *
6122      * This function retrieves the reference value of the item at the specified index in the tuple value.
6123      *
6124      * @param[in] env A pointer to the environment structure.
6125      * @param[in] tuple_value The tuple value containing the item.
6126      * @param[in] index The index of the item.
6127      * @param[out] result A pointer to store the reference value of the item.
6128      * @return Returns a status code of type `ani_status` indicating success or failure.
6129      */
6130     ani_status (*TupleValue_GetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref *result);
6131 
6132     /**
6133      * @brief Sets a boolean value to an item in a tuple value.
6134      *
6135      * This function assigns a boolean value to the item at the specified index in the tuple value.
6136      *
6137      * @param[in] env A pointer to the environment structure.
6138      * @param[in] tuple_value The tuple value containing the item.
6139      * @param[in] index The index of the item.
6140      * @param[in] value The boolean value to assign to the item.
6141      * @return Returns a status code of type `ani_status` indicating success or failure.
6142      */
6143     ani_status (*TupleValue_SetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
6144                                              ani_boolean value);
6145 
6146     /**
6147      * @brief Sets a char value to an item in a tuple value.
6148      *
6149      * This function assigns a char value to the item at the specified index in the tuple value.
6150      *
6151      * @param[in] env A pointer to the environment structure.
6152      * @param[in] tuple_value The tuple value containing the item.
6153      * @param[in] index The index of the item.
6154      * @param[in] value The char value to assign to the item.
6155      * @return Returns a status code of type `ani_status` indicating success or failure.
6156      */
6157     ani_status (*TupleValue_SetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char value);
6158 
6159     /**
6160      * @brief Sets a byte value to an item in a tuple value.
6161      *
6162      * This function assigns a byte value to the item at the specified index in the tuple value.
6163      *
6164      * @param[in] env A pointer to the environment structure.
6165      * @param[in] tuple_value The tuple value containing the item.
6166      * @param[in] index The index of the item.
6167      * @param[in] value The byte value to assign to the item.
6168      * @return Returns a status code of type `ani_status` indicating success or failure.
6169      */
6170     ani_status (*TupleValue_SetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte value);
6171 
6172     /**
6173      * @brief Sets a short value to an item in a tuple value.
6174      *
6175      * This function assigns a short value to the item at the specified index in the tuple value.
6176      *
6177      * @param[in] env A pointer to the environment structure.
6178      * @param[in] tuple_value The tuple value containing the item.
6179      * @param[in] index The index of the item.
6180      * @param[in] value The short value to assign to the item.
6181      * @return Returns a status code of type `ani_status` indicating success or failure.
6182      */
6183     ani_status (*TupleValue_SetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_short value);
6184 
6185     /**
6186      * @brief Sets a integer value to an item in a tuple value.
6187      *
6188      * This function assigns a integer value to the item at the specified index in the tuple value.
6189      *
6190      * @param[in] env A pointer to the environment structure.
6191      * @param[in] tuple_value The tuple value containing the item.
6192      * @param[in] index The index of the item.
6193      * @param[in] value The integer value to assign to the item.
6194      * @return Returns a status code of type `ani_status` indicating success or failure.
6195      */
6196     ani_status (*TupleValue_SetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int value);
6197 
6198     /**
6199      * @brief Sets a long value to an item in a tuple value.
6200      *
6201      * This function assigns a long value to the item at the specified index in the tuple value.
6202      *
6203      * @param[in] env A pointer to the environment structure.
6204      * @param[in] tuple_value The tuple value containing the item.
6205      * @param[in] index The index of the item.
6206      * @param[in] value The long value to assign to the item.
6207      * @return Returns a status code of type `ani_status` indicating success or failure.
6208      */
6209     ani_status (*TupleValue_SetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long value);
6210 
6211     /**
6212      * @brief Sets a float value to an item in a tuple value.
6213      *
6214      * This function assigns a float value to the item at the specified index in the tuple value.
6215      *
6216      * @param[in] env A pointer to the environment structure.
6217      * @param[in] tuple_value The tuple value containing the item.
6218      * @param[in] index The index of the item.
6219      * @param[in] value The float value to assign to the item.
6220      * @return Returns a status code of type `ani_status` indicating success or failure.
6221      */
6222     ani_status (*TupleValue_SetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_float value);
6223 
6224     /**
6225      * @brief Sets a double value to an item in a tuple value.
6226      *
6227      * This function assigns a double value to the item at the specified index in the tuple value.
6228      *
6229      * @param[in] env A pointer to the environment structure.
6230      * @param[in] tuple_value The tuple value containing the item.
6231      * @param[in] index The index of the item.
6232      * @param[in] value The double value to assign to the item.
6233      * @return Returns a status code of type `ani_status` indicating success or failure.
6234      */
6235     ani_status (*TupleValue_SetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
6236                                             ani_double value);
6237 
6238     /**
6239      * @brief Sets a reference value to an item in a tuple value.
6240      *
6241      * This function assigns a reference value to the item at the specified index in the tuple value.
6242      *
6243      * @param[in] env A pointer to the environment structure.
6244      * @param[in] tuple_value The tuple value containing the item.
6245      * @param[in] index The index of the item.
6246      * @param[in] value The reference value to assign to the item.
6247      * @return Returns a status code of type `ani_status` indicating success or failure.
6248      */
6249     ani_status (*TupleValue_SetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref value);
6250 
6251     /**
6252      * @brief Creates a global reference.
6253      *
6254      * This function creates a global reference from a local reference.
6255      *
6256      * @param[in] env A pointer to the environment structure.
6257      * @param[in] ref The local reference to convert to a global reference.
6258      * @param[out] result A pointer to store the created global reference.
6259      * @return Returns a status code of type `ani_status` indicating success or failure.
6260      */
6261     ani_status (*GlobalReference_Create)(ani_env *env, ani_ref ref, ani_gref *result);
6262 
6263     /**
6264      * @brief Deletes a global reference.
6265      *
6266      * This function deletes the specified global reference, releasing all associated resources.
6267      *
6268      * @param[in] env A pointer to the environment structure.
6269      * @param[in] gref The global reference to delete.
6270      * @return Returns a status code of type `ani_status` indicating success or failure.
6271      */
6272     ani_status (*GlobalReference_Delete)(ani_env *env, ani_gref gref);
6273 
6274     /**
6275      * @brief Creates a weak reference.
6276      *
6277      * This function creates a weak reference from a local reference.
6278      *
6279      * @param[in] env A pointer to the environment structure.
6280      * @param[in] ref The local reference to convert to a weak reference.
6281      * @param[out] result A pointer to store the created weak reference.
6282      * @return Returns a status code of type `ani_status` indicating success or failure.
6283      */
6284     ani_status (*WeakReference_Create)(ani_env *env, ani_ref ref, ani_wref *result);
6285 
6286     /**
6287      * @brief Deletes a weak reference.
6288      *
6289      * This function deletes the specified weak reference, releasing all associated resources.
6290      *
6291      * @param[in] env A pointer to the environment structure.
6292      * @param[in] wref The weak reference to delete.
6293      * @return Returns a status code of type `ani_status` indicating success or failure.
6294      */
6295     ani_status (*WeakReference_Delete)(ani_env *env, ani_wref wref);
6296 
6297     /**
6298      * @brief Retrieves the local reference associated with a weak reference.
6299      *
6300      * This function retrieves the local reference that corresponds to the specified weak reference.
6301      *
6302      * @param[in] env A pointer to the environment structure.
6303      * @param[in] wref The weak reference to query.
6304      * @param[out] result A pointer to store the retrieved local reference.
6305      * @return Returns a status code of type `ani_status` indicating success or failure.
6306      */
6307     ani_status (*WeakReference_GetReference)(ani_env *env, ani_wref wref, ani_ref *result);
6308 
6309     /**
6310      * @brief Creates a new array buffer.
6311      *
6312      * This function creates a new array buffer with the specified length and returns a pointer to the allocated data.
6313      *
6314      * @param[in] env A pointer to the environment structure.
6315      * @param[in] length The length of the array buffer in bytes.
6316      * @param[out] data_result A pointer to store the allocated data of the array buffer.
6317      * @param[out] arraybuffer_result A pointer to store the created array buffer object.
6318      * @return Returns a status code of type `ani_status` indicating success or failure.
6319      */
6320     ani_status (*CreateArrayBuffer)(ani_env *env, size_t length, void **data_result,
6321                                     ani_arraybuffer *arraybuffer_result);
6322 
6323     /**
6324      * @brief Creates a new array buffer using external data.
6325      *
6326      * This function creates an array buffer that uses external data. The provided finalizer will be called when the
6327      * array buffer is no longer needed.
6328      *
6329      * @param[in] env A pointer to the environment structure.
6330      * @param[in] external_data A pointer to the external data to be used by the array buffer.
6331      * @param[in] length The length of the external data in bytes.
6332      * @param[in] finalizer A callback function to be called when the array buffer is finalized.
6333      * @param[in] hint A user-defined hint to be passed to the finalizer.
6334      * @param[out] result A pointer to store the created array buffer object.
6335      * @return Returns a status code of type `ani_status` indicating success or failure.
6336      */
6337     ani_status (*CreateArrayBufferExternal)(ani_env *env, void *external_data, size_t length, ani_finalizer finalizer,
6338                                             void *hint, ani_arraybuffer *result);
6339 
6340     /**
6341      * @brief Retrieves information about an array buffer.
6342      *
6343      * This function retrieves the data pointer and length of the specified array buffer.
6344      *
6345      * @param[in] env A pointer to the environment structure.
6346      * @param[in] arraybuffer The array buffer to query.
6347      * @param[out] data_result A pointer to store the data of the array buffer.
6348      * @param[out] length_result A pointer to store the length of the array buffer in bytes.
6349      * @return Returns a status code of type `ani_status` indicating success or failure.
6350      */
6351     ani_status (*ArrayBuffer_GetInfo)(ani_env *env, ani_arraybuffer arraybuffer, void **data_result,
6352                                       size_t *length_result);
6353 
6354     /**
6355      * @brief Converts an object to a method.
6356      *
6357      * This function extracts the method information from a given object.
6358      *
6359      * @param[in] env A pointer to the environment structure.
6360      * @param[in] method The object representing the method.
6361      * @param[out] result A pointer to store the extracted method.
6362      * @return Returns a status code of type `ani_status` indicating success or failure.
6363      */
6364     ani_status (*Reflection_FromMethod)(ani_env *env, ani_object method, ani_method *result);
6365 
6366     /**
6367      * @brief Converts a method to an object.
6368      *
6369      * This function creates an object representing the specified method.
6370      *
6371      * @param[in] env A pointer to the environment structure.
6372      * @param[in] cls The class containing the method.
6373      * @param[in] method The method to convert.
6374      * @param[out] result A pointer to store the created object.
6375      * @return Returns a status code of type `ani_status` indicating success or failure.
6376      */
6377     ani_status (*Reflection_ToMethod)(ani_env *env, ani_class cls, ani_method method, ani_object *result);
6378 
6379     /**
6380      * @brief Converts an object to a field.
6381      *
6382      * This function extracts the field information from a given object.
6383      *
6384      * @param[in] env A pointer to the environment structure.
6385      * @param[in] field The object representing the field.
6386      * @param[out] result A pointer to store the extracted field.
6387      * @return Returns a status code of type `ani_status` indicating success or failure.
6388      */
6389     ani_status (*Reflection_FromField)(ani_env *env, ani_object field, ani_field *result);
6390 
6391     /**
6392      * @brief Converts a field to an object.
6393      *
6394      * This function creates an object representing the specified field.
6395      *
6396      * @param[in] env A pointer to the environment structure.
6397      * @param[in] cls The class containing the field.
6398      * @param[in] field The field to convert.
6399      * @param[out] result A pointer to store the created object.
6400      * @return Returns a status code of type `ani_status` indicating success or failure.
6401      */
6402     ani_status (*Reflection_ToField)(ani_env *env, ani_class cls, ani_field field, ani_object *result);
6403 
6404     /**
6405      * @brief Converts an object to a static method.
6406      *
6407      * This function extracts the static method information from a given object.
6408      *
6409      * @param[in] env A pointer to the environment structure.
6410      * @param[in] method The object representing the static method.
6411      * @param[out] result A pointer to store the extracted static method.
6412      * @return Returns a status code of type `ani_status` indicating success or failure.
6413      */
6414     ani_status (*Reflection_FromStaticMethod)(ani_env *env, ani_object method, ani_static_method *result);
6415 
6416     /**
6417      * @brief Converts a static method to an object.
6418      *
6419      * This function creates an object representing the specified static method.
6420      *
6421      * @param[in] env A pointer to the environment structure.
6422      * @param[in] cls The class containing the static method.
6423      * @param[in] method The static method to convert.
6424      * @param[out] result A pointer to store the created object.
6425      * @return Returns a status code of type `ani_status` indicating success or failure.
6426      */
6427     ani_status (*Reflection_ToStaticMethod)(ani_env *env, ani_class cls, ani_static_method method, ani_object *result);
6428 
6429     /**
6430      * @brief Converts an object to a static field.
6431      *
6432      * This function extracts the static field information from a given object.
6433      *
6434      * @param[in] env A pointer to the environment structure.
6435      * @param[in] field The object representing the static field.
6436      * @param[out] result A pointer to store the extracted static field.
6437      * @return Returns a status code of type `ani_status` indicating success or failure.
6438      */
6439     ani_status (*Reflection_FromStaticField)(ani_env *env, ani_object field, ani_static_field *result);
6440 
6441     /**
6442      * @brief Converts a static field to an object.
6443      *
6444      * This function creates an object representing the specified static field.
6445      *
6446      * @param[in] env A pointer to the environment structure.
6447      * @param[in] cls The class containing the static field.
6448      * @param[in] field The static field to convert.
6449      * @param[out] result A pointer to store the created object.
6450      * @return Returns a status code of type `ani_status` indicating success or failure.
6451      */
6452     ani_status (*Reflection_ToStaticField)(ani_env *env, ani_class cls, ani_static_field field, ani_object *result);
6453 
6454     /**
6455      * @brief Converts an object to a function.
6456      *
6457      * This function extracts the function information from a given object.
6458      *
6459      * @param[in] env A pointer to the environment structure.
6460      * @param[in] function The object representing the function.
6461      * @param[out] result A pointer to store the extracted function.
6462      * @return Returns a status code of type `ani_status` indicating success or failure.
6463      */
6464     ani_status (*Reflection_FromFunction)(ani_env *env, ani_object function, ani_function *result);
6465 
6466     /**
6467      * @brief Converts a function to an object.
6468      *
6469      * This function creates an object representing the specified function.
6470      *
6471      * @param[in] env A pointer to the environment structure.
6472      * @param[in] function The function to convert.
6473      * @param[out] result A pointer to store the created object.
6474      * @return Returns a status code of type `ani_status` indicating success or failure.
6475      */
6476     ani_status (*Reflection_ToFunction)(ani_env *env, ani_function function, ani_object *result);
6477 
6478     /**
6479      * @brief Converts an object to a variable.
6480      *
6481      * This function extracts the variable information from a given object.
6482      *
6483      * @param[in] env A pointer to the environment structure.
6484      * @param[in] variable The object representing the variable.
6485      * @param[out] result A pointer to store the extracted variable.
6486      * @return Returns a status code of type `ani_status` indicating success or failure.
6487      */
6488     ani_status (*Reflection_FromVariable)(ani_env *env, ani_object variable, ani_variable *result);
6489 
6490     /**
6491      * @brief Converts a variable to an object.
6492      *
6493      * This function creates an object representing the specified variable.
6494      *
6495      * @param[in] env A pointer to the environment structure.
6496      * @param[in] variable The variable to convert.
6497      * @param[out] result A pointer to store the created object.
6498      * @return Returns a status code of type `ani_status` indicating success or failure.
6499      */
6500     ani_status (*Reflection_ToVariable)(ani_env *env, ani_variable variable, ani_object *result);
6501 
6502     /**
6503      * @brief Registers a new coroutine-local storage slot.
6504      *
6505      * This function registers a new coroutine-local storage (CLS) slot with an optional initial data, finalizer, and
6506      * hint.
6507      *
6508      * @param[in] env A pointer to the environment structure.
6509      * @param[in] initial_data A pointer to the initial data to associate with the slot. Can be null.
6510      * @param[in] finalizer A callback function to finalize and clean up the data when it is no longer needed.
6511      * @param[in] hint A user-defined pointer that is passed to the finalizer. Can be null.
6512      * @param[out] result A pointer to store the created CLS slot.
6513      * @return Returns a status code of type `ani_status` indicating success or failure.
6514      */
6515     ani_status (*CLS_Register)(ani_env *env, void *initial_data, ani_finalizer finalizer, void *hint,
6516                                ani_cls_slot *result);
6517 
6518     /**
6519      * @brief Unregisters a coroutine-local storage slot.
6520      *
6521      * This function unregisters a previously registered CLS slot, releasing its resources.
6522      *
6523      * @param[in] env A pointer to the environment structure.
6524      * @param[in] slot The CLS slot to unregister.
6525      * @return Returns a status code of type `ani_status` indicating success or failure.
6526      */
6527     ani_status (*CLS_Unregister)(ani_env *env, ani_cls_slot slot);
6528 
6529     /**
6530      * @brief Sets data for a CLS slot.
6531      *
6532      * This function associates the specified data with the given CLS slot.
6533      *
6534      * @param[in] env A pointer to the environment structure.
6535      * @param[in] slot The CLS slot to set data for.
6536      * @param[in] data A pointer to the data to associate with the slot. Can be null.
6537      * @return Returns a status code of type `ani_status` indicating success or failure.
6538      */
6539     ani_status (*CLS_SetData)(ani_env *env, ani_cls_slot slot, void *data);
6540 
6541     /**
6542      * @brief Retrieves data from a CLS slot.
6543      *
6544      * This function retrieves the data associated with the given CLS slot.
6545      *
6546      * @param[in] env A pointer to the environment structure.
6547      * @param[in] slot The CLS slot to retrieve data from.
6548      * @param[out] result A pointer to store the retrieved data. Can be null if no data is associated.
6549      * @return Returns a status code of type `ani_status` indicating success or failure.
6550      */
6551     ani_status (*CLS_GetData)(ani_env *env, ani_cls_slot slot, void **result);
6552 
6553     /**
6554      * @brief Launches a coroutine using a functional object.
6555      *
6556      * This function starts a coroutine that executes the specified functional object with the given arguments.
6557      *
6558      * @param[in] env A pointer to the environment structure.
6559      * @param[in] fn The functional object to execute.
6560      * @param[in] argc The number of arguments to pass to the functional object.
6561      * @param[in] argv An array of arguments to pass to the functional object.
6562      * @param[out] result A pointer to store the promise representing the coroutine's result.
6563      * @return Returns a status code of type `ani_status` indicating success or failure.
6564      */
6565     ani_status (*Coroutine_LaunchFunctionalObject)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv,
6566                                                    ani_promise *result);
6567 
6568     /**
6569      * @brief Launches a coroutine using a function with variadic arguments.
6570      *
6571      * This function starts a coroutine that executes the specified function with the given arguments.
6572      *
6573      * @param[in] env A pointer to the environment structure.
6574      * @param[in] function The function to execute.
6575      * @param[out] result A pointer to store the promise representing the coroutine's result.
6576      * @param[in] ... Variadic arguments to pass to the function.
6577      * @return Returns a status code of type `ani_status` indicating success or failure.
6578      */
6579     ani_status (*Coroutine_LaunchFunction)(ani_env *env, ani_function function, ani_promise *result, ...);
6580 
6581     /**
6582      * @brief Launches a coroutine using a function with array-based arguments.
6583      *
6584      * This function starts a coroutine that executes the specified function using arguments provided in an array.
6585      *
6586      * @param[in] env A pointer to the environment structure.
6587      * @param[in] function The function to execute.
6588      * @param[out] result A pointer to store the promise representing the coroutine's result.
6589      * @param[in] args An array of arguments to pass to the function.
6590      * @return Returns a status code of type `ani_status` indicating success or failure.
6591      */
6592     ani_status (*Coroutine_LaunchFunction_A)(ani_env *env, ani_function function, ani_promise *result,
6593                                              const ani_value *args);
6594 
6595     /**
6596      * @brief Launches a coroutine using a function with variadic arguments in a `va_list`.
6597      *
6598      * This function starts a coroutine that executes the specified function using arguments provided in a `va_list`.
6599      *
6600      * @param[in] env A pointer to the environment structure.
6601      * @param[in] function The function to execute.
6602      * @param[out] result A pointer to store the promise representing the coroutine's result.
6603      * @param[in] args A `va_list` of arguments to pass to the function.
6604      * @return Returns a status code of type `ani_status` indicating success or failure.
6605      */
6606     ani_status (*Coroutine_LaunchFunction_V)(ani_env *env, ani_function function, ani_promise *result, va_list args);
6607 
6608     /**
6609      * @brief Launches a coroutine using an object method with variadic arguments.
6610      *
6611      * This function starts a coroutine that executes the specified method on the given object with the provided
6612      * arguments.
6613      *
6614      * @param[in] env A pointer to the environment structure.
6615      * @param[in] self The object on which the method is to be executed.
6616      * @param[in] function The method to execute.
6617      * @param[out] result A pointer to store the promise representing the coroutine's result.
6618      * @param[in] ... Variadic arguments to pass to the method.
6619      * @return Returns a status code of type `ani_status` indicating success or failure.
6620      */
6621     ani_status (*Coroutine_LaunchMethod)(ani_env *env, ani_object self, ani_function function, ani_promise *result,
6622                                          ...);
6623 
6624     /**
6625      * @brief Launches a coroutine using an object method with array-based arguments.
6626      *
6627      * This function starts a coroutine that executes the specified method on the given object using arguments provided
6628      * in an array.
6629      *
6630      * @param[in] env A pointer to the environment structure.
6631      * @param[in] self The object on which the method is to be executed.
6632      * @param[in] function The method to execute.
6633      * @param[out] result A pointer to store the promise representing the coroutine's result.
6634      * @param[in] args An array of arguments to pass to the method.
6635      * @return Returns a status code of type `ani_status` indicating success or failure.
6636      */
6637     ani_status (*Coroutine_LaunchMethod_A)(ani_env *env, ani_object self, ani_function function, ani_promise *result,
6638                                            const ani_value *args);
6639 
6640     /**
6641      * @brief Launches a coroutine using an object method with variadic arguments in a `va_list`.
6642      *
6643      * This function starts a coroutine that executes the specified method on the given object using arguments provided
6644      * in a `va_list`.
6645      *
6646      * @param[in] env A pointer to the environment structure.
6647      * @param[in] self The object on which the method is to be executed.
6648      * @param[in] function The method to execute.
6649      * @param[out] result A pointer to store the promise representing the coroutine's result.
6650      * @param[in] args A `va_list` of arguments to pass to the method.
6651      * @return Returns a status code of type `ani_status` indicating success or failure.
6652      */
6653     ani_status (*Coroutine_LaunchMethod_V)(ani_env *env, ani_object self, ani_function function, ani_promise *result,
6654                                            va_list args);
6655 
6656     /**
6657      * @brief Launches a coroutine using a static method with variadic arguments.
6658      *
6659      * This function starts a coroutine that executes the specified static method on the given class with the provided
6660      * arguments.
6661      *
6662      * @param[in] env A pointer to the environment structure.
6663      * @param[in] cls The class on which the static method is to be executed.
6664      * @param[in] function The static method to execute.
6665      * @param[out] result A pointer to store the promise representing the coroutine's result.
6666      * @param[in] ... Variadic arguments to pass to the static method.
6667      * @return Returns a status code of type `ani_status` indicating success or failure.
6668      */
6669     ani_status (*Coroutine_LaunchStaticMethod)(ani_env *env, ani_class cls, ani_function function, ani_promise *result,
6670                                                ...);
6671 
6672     /**
6673      * @brief Launches a coroutine using a static method with array-based arguments.
6674      *
6675      * This function starts a coroutine that executes the specified static method on the given class using arguments
6676      * provided in an array.
6677      *
6678      * @param[in] env A pointer to the environment structure.
6679      * @param[in] cls The class on which the static method is to be executed.
6680      * @param[in] function The static method to execute.
6681      * @param[out] result A pointer to store the promise representing the coroutine's result.
6682      * @param[in] args An array of arguments to pass to the static method.
6683      * @return Returns a status code of type `ani_status` indicating success or failure.
6684      */
6685     ani_status (*Coroutine_LaunchStaticMethod_A)(ani_env *env, ani_class cls, ani_function function,
6686                                                  ani_promise *result, const ani_value *args);
6687 
6688     /**
6689      * @brief Launches a coroutine using a static method with variadic arguments in a `va_list`.
6690      *
6691      * This function starts a coroutine that executes the specified static method on the given class using arguments
6692      * provided in a `va_list`.
6693      *
6694      * @param[in] env A pointer to the environment structure.
6695      * @param[in] cls The class on which the static method is to be executed.
6696      * @param[in] function The static method to execute.
6697      * @param[out] result A pointer to store the promise representing the coroutine's result.
6698      * @param[in] args A `va_list` of arguments to pass to the static method.
6699      * @return Returns a status code of type `ani_status` indicating success or failure.
6700      */
6701     ani_status (*Coroutine_LaunchStaticMethod_V)(ani_env *env, ani_class cls, ani_function function,
6702                                                  ani_promise *result, va_list args);
6703 
6704     /**
6705      * @brief Awaits the completion of a promise and retrieves a boolean result.
6706      *
6707      * This function waits for the specified promise to complete and retrieves its result as a boolean value.
6708      *
6709      * @param[in] env A pointer to the environment structure.
6710      * @param[in] promise The promise to await.
6711      * @param[out] value A pointer to store the boolean result of the promise.
6712      * @return Returns a status code of type `ani_status` indicating success or failure.
6713      */
6714     ani_status (*Coroutine_Await_Boolean)(ani_env *env, ani_promise promise, ani_boolean value);
6715 
6716     /**
6717      * @brief Awaits the completion of a promise and retrieves a char result.
6718      *
6719      * This function waits for the specified promise to complete and retrieves its result as a char value.
6720      *
6721      * @param[in] env A pointer to the environment structure.
6722      * @param[in] promise The promise to await.
6723      * @param[out] value A pointer to store the char result of the promise.
6724      * @return Returns a status code of type `ani_status` indicating success or failure.
6725      */
6726     ani_status (*Coroutine_Await_Char)(ani_env *env, ani_promise promise, ani_char value);
6727 
6728     /**
6729      * @brief Awaits the completion of a promise and retrieves a byte result.
6730      *
6731      * This function waits for the specified promise to complete and retrieves its result as a byte value.
6732      *
6733      * @param[in] env A pointer to the environment structure.
6734      * @param[in] promise The promise to await.
6735      * @param[out] value A pointer to store the byte result of the promise.
6736      * @return Returns a status code of type `ani_status` indicating success or failure.
6737      */
6738     ani_status (*Coroutine_Await_Byte)(ani_env *env, ani_promise promise, ani_byte value);
6739 
6740     /**
6741      * @brief Awaits the completion of a promise and retrieves a short result.
6742      *
6743      * This function waits for the specified promise to complete and retrieves its result as a short value.
6744      *
6745      * @param[in] env A pointer to the environment structure.
6746      * @param[in] promise The promise to await.
6747      * @param[out] value A pointer to store the short result of the promise.
6748      * @return Returns a status code of type `ani_status` indicating success or failure.
6749      */
6750     ani_status (*Coroutine_Await_Short)(ani_env *env, ani_promise promise, ani_short value);
6751 
6752     /**
6753      * @brief Awaits the completion of a promise and retrieves a integer result.
6754      *
6755      * This function waits for the specified promise to complete and retrieves its result as a integer value.
6756      *
6757      * @param[in] env A pointer to the environment structure.
6758      * @param[in] promise The promise to await.
6759      * @param[out] value A pointer to store the integer result of the promise.
6760      * @return Returns a status code of type `ani_status` indicating success or failure.
6761      */
6762     ani_status (*Coroutine_Await_Int)(ani_env *env, ani_promise promise, ani_int value);
6763 
6764     /**
6765      * @brief Awaits the completion of a promise and retrieves a long result.
6766      *
6767      * This function waits for the specified promise to complete and retrieves its result as a long value.
6768      *
6769      * @param[in] env A pointer to the environment structure.
6770      * @param[in] promise The promise to await.
6771      * @param[out] value A pointer to store the long result of the promise.
6772      * @return Returns a status code of type `ani_status` indicating success or failure.
6773      */
6774     ani_status (*Coroutine_Await_Long)(ani_env *env, ani_promise promise, ani_long value);
6775 
6776     /**
6777      * @brief Awaits the completion of a promise and retrieves a float result.
6778      *
6779      * This function waits for the specified promise to complete and retrieves its result as a float value.
6780      *
6781      * @param[in] env A pointer to the environment structure.
6782      * @param[in] promise The promise to await.
6783      * @param[out] value A pointer to store the float result of the promise.
6784      * @return Returns a status code of type `ani_status` indicating success or failure.
6785      */
6786     ani_status (*Coroutine_Await_Float)(ani_env *env, ani_promise promise, ani_float value);
6787 
6788     /**
6789      * @brief Awaits the completion of a promise and retrieves a double result.
6790      *
6791      * This function waits for the specified promise to complete and retrieves its result as a double value.
6792      *
6793      * @param[in] env A pointer to the environment structure.
6794      * @param[in] promise The promise to await.
6795      * @param[out] value A pointer to store the double result of the promise.
6796      * @return Returns a status code of type `ani_status` indicating success or failure.
6797      */
6798     ani_status (*Coroutine_Await_Double)(ani_env *env, ani_promise promise, ani_double value);
6799 
6800     /**
6801      * @brief Awaits the completion of a promise and retrieves a reference result.
6802      *
6803      * This function waits for the specified promise to complete and retrieves its result as a reference.
6804      *
6805      * @param[in] env A pointer to the environment structure.
6806      * @param[in] promise The promise to await.
6807      * @param[out] value A pointer to store the reference result of the promise.
6808      * @return Returns a status code of type `ani_status` indicating success or failure.
6809      */
6810     ani_status (*Coroutine_Await_Ref)(ani_env *env, ani_promise promise, ani_ref value);
6811 };
6812 
6813 // C++ API
6814 struct __ani_vm {
6815     const struct __ani_vm_api *c_api;
6816 
6817 #ifdef __cplusplus
DestroyVM__ani_vm6818     ani_status DestroyVM()
6819     {
6820         return c_api->DestroyVM(this);
6821     }
GetEnv__ani_vm6822     ani_status GetEnv(uint32_t version, ani_env **result)
6823     {
6824         return c_api->GetEnv(this, version, result);
6825     }
AttachThread__ani_vm6826     ani_status AttachThread(void *params, ani_env **result)
6827     {
6828         return c_api->AttachThread(this, params, result);
6829     }
DetachThread__ani_vm6830     ani_status DetachThread()
6831     {
6832         return c_api->DetachThread(this);
6833     }
6834 #endif  // __cplusplus
6835 };
6836 
6837 struct __ani_env {
6838     const struct __ani_interaction_api *c_api;
6839 
6840 #ifdef __cplusplus
GetVersion__ani_env6841     ani_status GetVersion(uint32_t *result)
6842     {
6843         return c_api->GetVersion(this, result);
6844     }
GetVM__ani_env6845     ani_status GetVM(ani_vm **result)
6846     {
6847         return c_api->GetVM(this, result);
6848     }
Reference_IsObject__ani_env6849     ani_status Reference_IsObject(ani_ref ref, ani_boolean *result)
6850     {
6851         return c_api->Reference_IsObject(this, ref, result);
6852     }
Reference_IsFunctionalObject__ani_env6853     ani_status Reference_IsFunctionalObject(ani_ref ref, ani_boolean *result)
6854     {
6855         return c_api->Reference_IsFunctionalObject(this, ref, result);
6856     }
Reference_IsEnum__ani_env6857     ani_status Reference_IsEnum(ani_ref ref, ani_boolean *result)
6858     {
6859         return c_api->Reference_IsEnum(this, ref, result);
6860     }
Reference_IsTuple__ani_env6861     ani_status Reference_IsTuple(ani_ref ref, ani_boolean *result)
6862     {
6863         return c_api->Reference_IsTuple(this, ref, result);
6864     }
Reference_IsString__ani_env6865     ani_status Reference_IsString(ani_ref ref, ani_boolean *result)
6866     {
6867         return c_api->Reference_IsString(this, ref, result);
6868     }
Reference_IsStringLiteral__ani_env6869     ani_status Reference_IsStringLiteral(ani_ref ref, ani_boolean *result)
6870     {
6871         return c_api->Reference_IsStringLiteral(this, ref, result);
6872     }
Reference_IsFixedArray__ani_env6873     ani_status Reference_IsFixedArray(ani_ref ref, ani_boolean *result)
6874     {
6875         return c_api->Reference_IsFixedArray(this, ref, result);
6876     }
Reference_IsFixedArray_Boolean__ani_env6877     ani_status Reference_IsFixedArray_Boolean(ani_ref ref, ani_boolean *result)
6878     {
6879         return c_api->Reference_IsFixedArray_Boolean(this, ref, result);
6880     }
Reference_IsFixedArray_Char__ani_env6881     ani_status Reference_IsFixedArray_Char(ani_ref ref, ani_boolean *result)
6882     {
6883         return c_api->Reference_IsFixedArray_Char(this, ref, result);
6884     }
Reference_IsFixedArray_Byte__ani_env6885     ani_status Reference_IsFixedArray_Byte(ani_ref ref, ani_boolean *result)
6886     {
6887         return c_api->Reference_IsFixedArray_Byte(this, ref, result);
6888     }
Reference_IsFixedArray_Short__ani_env6889     ani_status Reference_IsFixedArray_Short(ani_ref ref, ani_boolean *result)
6890     {
6891         return c_api->Reference_IsFixedArray_Short(this, ref, result);
6892     }
Reference_IsFixedArray_Int__ani_env6893     ani_status Reference_IsFixedArray_Int(ani_ref ref, ani_boolean *result)
6894     {
6895         return c_api->Reference_IsFixedArray_Int(this, ref, result);
6896     }
Reference_IsFixedArray_Long__ani_env6897     ani_status Reference_IsFixedArray_Long(ani_ref ref, ani_boolean *result)
6898     {
6899         return c_api->Reference_IsFixedArray_Long(this, ref, result);
6900     }
Reference_IsFixedArray_Float__ani_env6901     ani_status Reference_IsFixedArray_Float(ani_ref ref, ani_boolean *result)
6902     {
6903         return c_api->Reference_IsFixedArray_Float(this, ref, result);
6904     }
Reference_IsFixedArray_Double__ani_env6905     ani_status Reference_IsFixedArray_Double(ani_ref ref, ani_boolean *result)
6906     {
6907         return c_api->Reference_IsFixedArray_Double(this, ref, result);
6908     }
Reference_IsFixedArray_Ref__ani_env6909     ani_status Reference_IsFixedArray_Ref(ani_ref ref, ani_boolean *result)
6910     {
6911         return c_api->Reference_IsFixedArray_Ref(this, ref, result);
6912     }
Object_New__ani_env6913     ani_status Object_New(ani_class cls, ani_method method, ani_object *result, ...)
6914     {
6915         va_list args;
6916         va_start(args, result);
6917         ani_status status = c_api->Object_New_V(this, cls, method, result, args);
6918         va_end(args);
6919         return status;
6920     }
Object_New_A__ani_env6921     ani_status Object_New_A(ani_class cls, ani_method method, ani_object *result, const ani_value *args)
6922     {
6923         return c_api->Object_New_A(this, cls, method, result, args);
6924     }
Object_New_V__ani_env6925     ani_status Object_New_V(ani_class cls, ani_method method, ani_object *result, va_list args)
6926     {
6927         return c_api->Object_New_V(this, cls, method, result, args);
6928     }
Object_GetType__ani_env6929     ani_status Object_GetType(ani_object object, ani_type *result)
6930     {
6931         return c_api->Object_GetType(this, object, result);
6932     }
Object_InstanceOf__ani_env6933     ani_status Object_InstanceOf(ani_object object, ani_type type, ani_boolean *result)
6934     {
6935         return c_api->Object_InstanceOf(this, object, type, result);
6936     }
Object_IsSame__ani_env6937     ani_status Object_IsSame(ani_object object1, ani_object object2, ani_boolean *result)
6938     {
6939         return c_api->Object_IsSame(this, object1, object2, result);
6940     }
Type_GetSuperClass__ani_env6941     ani_status Type_GetSuperClass(ani_type type, ani_class *result)
6942     {
6943         return c_api->Type_GetSuperClass(this, type, result);
6944     }
Type_IsAssignableFrom__ani_env6945     ani_status Type_IsAssignableFrom(ani_type from_type, ani_type to_type, ani_boolean *result)
6946     {
6947         return c_api->Type_IsAssignableFrom(this, from_type, to_type, result);
6948     }
FindModule__ani_env6949     ani_status FindModule(const char *module_descriptor, ani_module *result)
6950     {
6951         return c_api->FindModule(this, module_descriptor, result);
6952     }
FindNamespace__ani_env6953     ani_status FindNamespace(const char *namespace_descriptor, ani_namespace *result)
6954     {
6955         return c_api->FindNamespace(this, namespace_descriptor, result);
6956     }
FindClass__ani_env6957     ani_status FindClass(const char *class_descriptor, ani_class *result)
6958     {
6959         return c_api->FindClass(this, class_descriptor, result);
6960     }
FindEnum__ani_env6961     ani_status FindEnum(const char *enum_descriptor, ani_enum *result)
6962     {
6963         return c_api->FindEnum(this, enum_descriptor, result);
6964     }
FindTuple__ani_env6965     ani_status FindTuple(const char *tuple_descriptor, ani_tuple *result)
6966     {
6967         return c_api->FindTuple(this, tuple_descriptor, result);
6968     }
FindFunction__ani_env6969     ani_status FindFunction(const char *function_descriptor, ani_function *result)
6970     {
6971         return c_api->FindFunction(this, function_descriptor, result);
6972     }
FindVariable__ani_env6973     ani_status FindVariable(const char *variable_descriptor, ani_variable *result)
6974     {
6975         return c_api->FindVariable(this, variable_descriptor, result);
6976     }
Module_FindNamespace__ani_env6977     ani_status Module_FindNamespace(ani_module module, const char *namespace_descriptor, ani_namespace *result)
6978     {
6979         return c_api->Module_FindNamespace(this, module, namespace_descriptor, result);
6980     }
Module_FindClass__ani_env6981     ani_status Module_FindClass(ani_module module, const char *class_descriptor, ani_class *result)
6982     {
6983         return c_api->Module_FindClass(this, module, class_descriptor, result);
6984     }
Module_FindEnum__ani_env6985     ani_status Module_FindEnum(ani_module module, const char *enum_descriptor, ani_enum *result)
6986     {
6987         return c_api->Module_FindEnum(this, module, enum_descriptor, result);
6988     }
Module_FindFunction__ani_env6989     ani_status Module_FindFunction(ani_module module, const char *name, const char *signature, ani_function *result)
6990     {
6991         return c_api->Module_FindFunction(this, module, name, signature, result);
6992     }
Module_FindVariable__ani_env6993     ani_status Module_FindVariable(ani_module module, const char *variable_descriptor, ani_variable *result)
6994     {
6995         return c_api->Module_FindVariable(this, module, variable_descriptor, result);
6996     }
Namespace_FindNamespace__ani_env6997     ani_status Namespace_FindNamespace(ani_namespace ns, const char *namespace_descriptor, ani_namespace *result)
6998     {
6999         return c_api->Namespace_FindNamespace(this, ns, namespace_descriptor, result);
7000     }
Namespace_FindClass__ani_env7001     ani_status Namespace_FindClass(ani_namespace ns, const char *class_descriptor, ani_class *result)
7002     {
7003         return c_api->Namespace_FindClass(this, ns, class_descriptor, result);
7004     }
Namespace_FindEnum__ani_env7005     ani_status Namespace_FindEnum(ani_namespace ns, const char *enum_descriptor, ani_enum *result)
7006     {
7007         return c_api->Namespace_FindEnum(this, ns, enum_descriptor, result);
7008     }
Namespace_FindFunction__ani_env7009     ani_status Namespace_FindFunction(ani_namespace ns, const char *name, const char *signature, ani_function *result)
7010     {
7011         return c_api->Namespace_FindFunction(this, ns, name, signature, result);
7012     }
Namespace_FindVariable__ani_env7013     ani_status Namespace_FindVariable(ani_namespace ns, const char *variable_descriptor, ani_variable *result)
7014     {
7015         return c_api->Namespace_FindVariable(this, ns, variable_descriptor, result);
7016     }
Module_BindNativeFunctions__ani_env7017     ani_status Module_BindNativeFunctions(ani_module module, const ani_native_function *functions,
7018                                           ani_size nr_functions)
7019     {
7020         return c_api->Module_BindNativeFunctions(this, module, functions, nr_functions);
7021     }
Namespace_BindNativeFunctions__ani_env7022     ani_status Namespace_BindNativeFunctions(ani_namespace ns, const ani_native_function *functions,
7023                                              ani_size nr_functions)
7024     {
7025         return c_api->Namespace_BindNativeFunctions(this, ns, functions, nr_functions);
7026     }
Class_BindNativeMethods__ani_env7027     ani_status Class_BindNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods)
7028     {
7029         return c_api->Class_BindNativeMethods(this, cls, methods, nr_methods);
7030     }
Reference_Delete__ani_env7031     ani_status Reference_Delete(ani_ref ref)
7032     {
7033         return c_api->Reference_Delete(this, ref);
7034     }
EnsureEnoughReferences__ani_env7035     ani_status EnsureEnoughReferences(ani_size nr_refs)
7036     {
7037         return c_api->EnsureEnoughReferences(this, nr_refs);
7038     }
CreateLocalScope__ani_env7039     ani_status CreateLocalScope(ani_size nr_refs)
7040     {
7041         return c_api->CreateLocalScope(this, nr_refs);
7042     }
DestroyLocalScope__ani_env7043     ani_status DestroyLocalScope()
7044     {
7045         return c_api->DestroyLocalScope(this);
7046     }
CreateEscapeLocalScope__ani_env7047     ani_status CreateEscapeLocalScope(ani_size nr_refs)
7048     {
7049         return c_api->CreateEscapeLocalScope(this, nr_refs);
7050     }
DestroyEscapeLocalScope__ani_env7051     ani_status DestroyEscapeLocalScope(ani_ref ref, ani_ref *result)
7052     {
7053         return c_api->DestroyEscapeLocalScope(this, ref, result);
7054     }
ThrowError__ani_env7055     ani_status ThrowError(ani_error err)
7056     {
7057         return c_api->ThrowError(this, err);
7058     }
ExistUnhandledError__ani_env7059     ani_status ExistUnhandledError(ani_boolean *result)
7060     {
7061         return c_api->ExistUnhandledError(this, result);
7062     }
GetUnhandledError__ani_env7063     ani_status GetUnhandledError(ani_error *result)
7064     {
7065         return c_api->GetUnhandledError(this, result);
7066     }
ResetError__ani_env7067     ani_status ResetError()
7068     {
7069         return c_api->ResetError(this);
7070     }
DescribeError__ani_env7071     ani_status DescribeError()
7072     {
7073         return c_api->DescribeError(this);
7074     }
Abort__ani_env7075     ani_status Abort(const char *message)
7076     {
7077         return c_api->Abort(this, message);
7078     }
GetNull__ani_env7079     ani_status GetNull(ani_ref *result)
7080     {
7081         return c_api->GetNull(this, result);
7082     }
GetUndefined__ani_env7083     ani_status GetUndefined(ani_ref *result)
7084     {
7085         return c_api->GetUndefined(this, result);
7086     }
Reference_IsNull__ani_env7087     ani_status Reference_IsNull(ani_ref ref, ani_boolean *result)
7088     {
7089         return c_api->Reference_IsNull(this, ref, result);
7090     }
Reference_IsUndefined__ani_env7091     ani_status Reference_IsUndefined(ani_ref ref, ani_boolean *result)
7092     {
7093         return c_api->Reference_IsUndefined(this, ref, result);
7094     }
Reference_IsNullishValue__ani_env7095     ani_status Reference_IsNullishValue(ani_ref ref, ani_boolean *result)
7096     {
7097         return c_api->Reference_IsNullishValue(this, ref, result);
7098     }
Reference_Equals__ani_env7099     ani_status Reference_Equals(ani_ref ref0, ani_ref ref1, ani_boolean *result)
7100     {
7101         return c_api->Reference_Equals(this, ref0, ref1, result);
7102     }
Reference_StrictEquals__ani_env7103     ani_status Reference_StrictEquals(ani_ref ref0, ani_ref ref1, ani_boolean *result)
7104     {
7105         return c_api->Reference_StrictEquals(this, ref0, ref1, result);
7106     }
String_NewUTF16__ani_env7107     ani_status String_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_string *result)
7108     {
7109         return c_api->String_NewUTF16(this, utf16_string, utf16_size, result);
7110     }
String_GetUTF16Size__ani_env7111     ani_status String_GetUTF16Size(ani_string string, ani_size *result)
7112     {
7113         return c_api->String_GetUTF16Size(this, string, result);
7114     }
String_GetUTF16__ani_env7115     ani_status String_GetUTF16(ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result)
7116     {
7117         return c_api->String_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result);
7118     }
String_GetUTF16SubString__ani_env7119     ani_status String_GetUTF16SubString(ani_string string, ani_size substr_offset, ani_size substr_size,
7120                                         uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result)
7121     {
7122         return c_api->String_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer,
7123                                                utf16_buffer_size, result);
7124     }
String_NewUTF8__ani_env7125     ani_status String_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_string *result)
7126     {
7127         return c_api->String_NewUTF8(this, utf8_string, utf8_size, result);
7128     }
String_GetUTF8Size__ani_env7129     ani_status String_GetUTF8Size(ani_string string, ani_size *result)
7130     {
7131         return c_api->String_GetUTF8Size(this, string, result);
7132     }
String_GetUTF8__ani_env7133     ani_status String_GetUTF8(ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result)
7134     {
7135         return c_api->String_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result);
7136     }
String_GetUTF8SubString__ani_env7137     ani_status String_GetUTF8SubString(ani_string string, ani_size substr_offset, ani_size substr_size,
7138                                        char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result)
7139     {
7140         return c_api->String_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer, utf8_buffer_size,
7141                                               result);
7142     }
String_GetCritical__ani_env7143     ani_status String_GetCritical(ani_string string, uint32_t *result_string_type, const void **result_data,
7144                                   ani_size *result_size)  // result_string_type - string type utf16/utf8, etc
7145     {
7146         return c_api->String_GetCritical(this, string, result_string_type, result_data, result_size);
7147     }
String_ReleaseCritical__ani_env7148     ani_status String_ReleaseCritical(ani_string string, const void *data)
7149     {
7150         return c_api->String_ReleaseCritical(this, string, data);
7151     }
StringLiteral_NewUTF16__ani_env7152     ani_status StringLiteral_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_stringliteral *result)
7153     {
7154         return c_api->StringLiteral_NewUTF16(this, utf16_string, utf16_size, result);
7155     }
StringLiteral_GetUTF16Size__ani_env7156     ani_status StringLiteral_GetUTF16Size(ani_stringliteral string, ani_size *result)
7157     {
7158         return c_api->StringLiteral_GetUTF16Size(this, string, result);
7159     }
StringLiteral_GetUTF16__ani_env7160     ani_status StringLiteral_GetUTF16(ani_stringliteral string, uint16_t *utf16_buffer, ani_size utf16_buffer_size,
7161                                       ani_size *result)
7162     {
7163         return c_api->StringLiteral_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result);
7164     }
StringLiteral_GetUTF16SubString__ani_env7165     ani_status StringLiteral_GetUTF16SubString(ani_stringliteral string, ani_size substr_offset, ani_size substr_size,
7166                                                uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result)
7167     {
7168         return c_api->StringLiteral_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer,
7169                                                       utf16_buffer_size, result);
7170     }
StringLiteral_NewUTF8__ani_env7171     ani_status StringLiteral_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_stringliteral *result)
7172     {
7173         return c_api->StringLiteral_NewUTF8(this, utf8_string, utf8_size, result);
7174     }
StringLiteral_GetUTF8Size__ani_env7175     ani_status StringLiteral_GetUTF8Size(ani_stringliteral string, ani_size *result)
7176     {
7177         return c_api->StringLiteral_GetUTF8Size(this, string, result);
7178     }
StringLiteral_GetUTF8__ani_env7179     ani_status StringLiteral_GetUTF8(ani_stringliteral string, char *utf8_buffer, ani_size utf8_buffer_size,
7180                                      ani_size *result)
7181     {
7182         return c_api->StringLiteral_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result);
7183     }
StringLiteral_GetUTF8SubString__ani_env7184     ani_status StringLiteral_GetUTF8SubString(ani_stringliteral string, ani_size substr_offset, ani_size substr_size,
7185                                               char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result)
7186     {
7187         return c_api->StringLiteral_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer,
7188                                                      utf8_buffer_size, result);
7189     }
StringLiteral_GetCritical__ani_env7190     ani_status StringLiteral_GetCritical(ani_stringliteral string, uint32_t *result_string_type,
7191                                          const void **result_data,
7192                                          ani_size *result_size)  // result_string_type - string type utf16/utf8, etc
7193     {
7194         return c_api->StringLiteral_GetCritical(this, string, result_string_type, result_data, result_size);
7195     }
StringLiteral_ReleaseCritical__ani_env7196     ani_status StringLiteral_ReleaseCritical(ani_stringliteral string, const void *data)
7197     {
7198         return c_api->StringLiteral_ReleaseCritical(this, string, data);
7199     }
FixedArray_GetLength__ani_env7200     ani_status FixedArray_GetLength(ani_fixedarray array, ani_size *result)
7201     {
7202         return c_api->FixedArray_GetLength(this, array, result);
7203     }
FixedArray_New_Boolean__ani_env7204     ani_status FixedArray_New_Boolean(ani_size length, ani_fixedarray_boolean *result)
7205     {
7206         return c_api->FixedArray_New_Boolean(this, length, result);
7207     }
FixedArray_New_Char__ani_env7208     ani_status FixedArray_New_Char(ani_size length, ani_fixedarray_char *result)
7209     {
7210         return c_api->FixedArray_New_Char(this, length, result);
7211     }
FixedArray_New_Byte__ani_env7212     ani_status FixedArray_New_Byte(ani_size length, ani_fixedarray_byte *result)
7213     {
7214         return c_api->FixedArray_New_Byte(this, length, result);
7215     }
FixedArray_New_Short__ani_env7216     ani_status FixedArray_New_Short(ani_size length, ani_fixedarray_short *result)
7217     {
7218         return c_api->FixedArray_New_Short(this, length, result);
7219     }
FixedArray_New_Int__ani_env7220     ani_status FixedArray_New_Int(ani_size length, ani_fixedarray_int *result)
7221     {
7222         return c_api->FixedArray_New_Int(this, length, result);
7223     }
FixedArray_New_Long__ani_env7224     ani_status FixedArray_New_Long(ani_size length, ani_fixedarray_long *result)
7225     {
7226         return c_api->FixedArray_New_Long(this, length, result);
7227     }
FixedArray_New_Float__ani_env7228     ani_status FixedArray_New_Float(ani_size length, ani_fixedarray_float *result)
7229     {
7230         return c_api->FixedArray_New_Float(this, length, result);
7231     }
FixedArray_New_Double__ani_env7232     ani_status FixedArray_New_Double(ani_size length, ani_fixedarray_double *result)
7233     {
7234         return c_api->FixedArray_New_Double(this, length, result);
7235     }
FixedArray_GetRegion_Boolean__ani_env7236     ani_status FixedArray_GetRegion_Boolean(ani_fixedarray_boolean array, ani_size offset, ani_size length,
7237                                             ani_boolean *native_buffer)
7238     {
7239         return c_api->FixedArray_GetRegion_Boolean(this, array, offset, length, native_buffer);
7240     }
FixedArray_GetRegion_Char__ani_env7241     ani_status FixedArray_GetRegion_Char(ani_fixedarray_char array, ani_size offset, ani_size length,
7242                                          ani_char *native_buffer)
7243     {
7244         return c_api->FixedArray_GetRegion_Char(this, array, offset, length, native_buffer);
7245     }
FixedArray_GetRegion_Byte__ani_env7246     ani_status FixedArray_GetRegion_Byte(ani_fixedarray_byte array, ani_size offset, ani_size length,
7247                                          ani_byte *native_buffer)
7248     {
7249         return c_api->FixedArray_GetRegion_Byte(this, array, offset, length, native_buffer);
7250     }
FixedArray_GetRegion_Short__ani_env7251     ani_status FixedArray_GetRegion_Short(ani_fixedarray_short array, ani_size offset, ani_size length,
7252                                           ani_short *native_buffer)
7253     {
7254         return c_api->FixedArray_GetRegion_Short(this, array, offset, length, native_buffer);
7255     }
FixedArray_GetRegion_Int__ani_env7256     ani_status FixedArray_GetRegion_Int(ani_fixedarray_int array, ani_size offset, ani_size length,
7257                                         ani_int *native_buffer)
7258     {
7259         return c_api->FixedArray_GetRegion_Int(this, array, offset, length, native_buffer);
7260     }
FixedArray_GetRegion_Long__ani_env7261     ani_status FixedArray_GetRegion_Long(ani_fixedarray_long array, ani_size offset, ani_size length,
7262                                          ani_long *native_buffer)
7263     {
7264         return c_api->FixedArray_GetRegion_Long(this, array, offset, length, native_buffer);
7265     }
FixedArray_GetRegion_Float__ani_env7266     ani_status FixedArray_GetRegion_Float(ani_fixedarray_float array, ani_size offset, ani_size length,
7267                                           ani_float *native_buffer)
7268     {
7269         return c_api->FixedArray_GetRegion_Float(this, array, offset, length, native_buffer);
7270     }
FixedArray_GetRegion_Double__ani_env7271     ani_status FixedArray_GetRegion_Double(ani_fixedarray_double array, ani_size offset, ani_size length,
7272                                            ani_double *native_buffer)
7273     {
7274         return c_api->FixedArray_GetRegion_Double(this, array, offset, length, native_buffer);
7275     }
FixedArray_SetRegion_Boolean__ani_env7276     ani_status FixedArray_SetRegion_Boolean(ani_fixedarray_boolean array, ani_size offset, ani_size length,
7277                                             const ani_boolean *native_buffer)
7278     {
7279         return c_api->FixedArray_SetRegion_Boolean(this, array, offset, length, native_buffer);
7280     }
FixedArray_SetRegion_Char__ani_env7281     ani_status FixedArray_SetRegion_Char(ani_fixedarray_char array, ani_size offset, ani_size length,
7282                                          const ani_char *native_buffer)
7283     {
7284         return c_api->FixedArray_SetRegion_Char(this, array, offset, length, native_buffer);
7285     }
FixedArray_SetRegion_Byte__ani_env7286     ani_status FixedArray_SetRegion_Byte(ani_fixedarray_byte array, ani_size offset, ani_size length,
7287                                          const ani_byte *native_buffer)
7288     {
7289         return c_api->FixedArray_SetRegion_Byte(this, array, offset, length, native_buffer);
7290     }
FixedArray_SetRegion_Short__ani_env7291     ani_status FixedArray_SetRegion_Short(ani_fixedarray_short array, ani_size offset, ani_size length,
7292                                           const ani_short *native_buffer)
7293     {
7294         return c_api->FixedArray_SetRegion_Short(this, array, offset, length, native_buffer);
7295     }
FixedArray_SetRegion_Int__ani_env7296     ani_status FixedArray_SetRegion_Int(ani_fixedarray_int array, ani_size offset, ani_size length,
7297                                         const ani_int *native_buffer)
7298     {
7299         return c_api->FixedArray_SetRegion_Int(this, array, offset, length, native_buffer);
7300     }
FixedArray_SetRegion_Long__ani_env7301     ani_status FixedArray_SetRegion_Long(ani_fixedarray_long array, ani_size offset, ani_size length,
7302                                          const ani_long *native_buffer)
7303     {
7304         return c_api->FixedArray_SetRegion_Long(this, array, offset, length, native_buffer);
7305     }
FixedArray_SetRegion_Float__ani_env7306     ani_status FixedArray_SetRegion_Float(ani_fixedarray_float array, ani_size offset, ani_size length,
7307                                           const ani_float *native_buffer)
7308     {
7309         return c_api->FixedArray_SetRegion_Float(this, array, offset, length, native_buffer);
7310     }
FixedArray_SetRegion_Double__ani_env7311     ani_status FixedArray_SetRegion_Double(ani_fixedarray_double array, ani_size offset, ani_size length,
7312                                            const ani_double *native_buffer)
7313     {
7314         return c_api->FixedArray_SetRegion_Double(this, array, offset, length, native_buffer);
7315     }
FixedArray_Pin__ani_env7316     ani_status FixedArray_Pin(ani_fixedarray primitive_array, void **result)
7317     {
7318         return c_api->FixedArray_Pin(this, primitive_array, result);
7319     }
FixedArray_Unpin__ani_env7320     ani_status FixedArray_Unpin(ani_fixedarray primitive_array, void *data)
7321     {
7322         return c_api->FixedArray_Unpin(this, primitive_array, data);
7323     }
FixedArray_New_Ref__ani_env7324     ani_status FixedArray_New_Ref(ani_size length, ani_ref *initial_array, ani_fixedarray_ref *result)
7325     {
7326         return c_api->FixedArray_New_Ref(this, length, initial_array, result);
7327     }
FixedArray_Set_Ref__ani_env7328     ani_status FixedArray_Set_Ref(ani_fixedarray_ref array, ani_size index, ani_ref ref)
7329     {
7330         return c_api->FixedArray_Set_Ref(this, array, index, ref);
7331     }
FixedArray_Get_Ref__ani_env7332     ani_status FixedArray_Get_Ref(ani_fixedarray_ref array, ani_size index, ani_ref *result)
7333     {
7334         return c_api->FixedArray_Get_Ref(this, array, index, result);
7335     }
Enum_GetEnumValueByName__ani_env7336     ani_status Enum_GetEnumValueByName(ani_enum enm, const char *name, ani_enum_value *result)
7337     {
7338         return c_api->Enum_GetEnumValueByName(this, enm, name, result);
7339     }
Enum_GetEnumValueByIndex__ani_env7340     ani_status Enum_GetEnumValueByIndex(ani_enum enm, ani_size index, ani_enum_value *result)
7341     {
7342         return c_api->Enum_GetEnumValueByIndex(this, enm, index, result);
7343     }
EnumValue_GetEnum__ani_env7344     ani_status EnumValue_GetEnum(ani_enum_value enum_value, ani_enum *result)
7345     {
7346         return c_api->EnumValue_GetEnum(this, enum_value, result);
7347     }
EnumValue_GetValue__ani_env7348     ani_status EnumValue_GetValue(ani_enum_value enum_value, ani_object *result)
7349     {
7350         return c_api->EnumValue_GetValue(this, enum_value, result);
7351     }
EnumValue_GetName__ani_env7352     ani_status EnumValue_GetName(ani_enum_value enum_value, ani_string *result)
7353     {
7354         return c_api->EnumValue_GetName(this, enum_value, result);
7355     }
EnumValue_GetIndex__ani_env7356     ani_status EnumValue_GetIndex(ani_enum_value enum_value, ani_size *result)
7357     {
7358         return c_api->EnumValue_GetIndex(this, enum_value, result);
7359     }
FunctionalObject_Call__ani_env7360     ani_status FunctionalObject_Call(ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result)
7361     {
7362         return c_api->FunctionalObject_Call(this, fn, argc, argv, result);
7363     }
Variable_SetValue_Boolean__ani_env7364     ani_status Variable_SetValue_Boolean(ani_variable variable, ani_boolean value)
7365     {
7366         return c_api->Variable_SetValue_Boolean(this, variable, value);
7367     }
Variable_SetValue_Char__ani_env7368     ani_status Variable_SetValue_Char(ani_variable variable, ani_char value)
7369     {
7370         return c_api->Variable_SetValue_Char(this, variable, value);
7371     }
Variable_SetValue_Byte__ani_env7372     ani_status Variable_SetValue_Byte(ani_variable variable, ani_byte value)
7373     {
7374         return c_api->Variable_SetValue_Byte(this, variable, value);
7375     }
Variable_SetValue_Short__ani_env7376     ani_status Variable_SetValue_Short(ani_variable variable, ani_short value)
7377     {
7378         return c_api->Variable_SetValue_Short(this, variable, value);
7379     }
Variable_SetValue_Int__ani_env7380     ani_status Variable_SetValue_Int(ani_variable variable, ani_int value)
7381     {
7382         return c_api->Variable_SetValue_Int(this, variable, value);
7383     }
Variable_SetValue_Long__ani_env7384     ani_status Variable_SetValue_Long(ani_variable variable, ani_long value)
7385     {
7386         return c_api->Variable_SetValue_Long(this, variable, value);
7387     }
Variable_SetValue_Float__ani_env7388     ani_status Variable_SetValue_Float(ani_variable variable, ani_float value)
7389     {
7390         return c_api->Variable_SetValue_Float(this, variable, value);
7391     }
Variable_SetValue_Double__ani_env7392     ani_status Variable_SetValue_Double(ani_variable variable, ani_double value)
7393     {
7394         return c_api->Variable_SetValue_Double(this, variable, value);
7395     }
Variable_SetValue_Ref__ani_env7396     ani_status Variable_SetValue_Ref(ani_variable variable, ani_ref value)
7397     {
7398         return c_api->Variable_SetValue_Ref(this, variable, value);
7399     }
Variable_GetValue_Boolean__ani_env7400     ani_status Variable_GetValue_Boolean(ani_variable variable, ani_boolean *result)
7401     {
7402         return c_api->Variable_GetValue_Boolean(this, variable, result);
7403     }
Variable_GetValue_Char__ani_env7404     ani_status Variable_GetValue_Char(ani_variable variable, ani_char *result)
7405     {
7406         return c_api->Variable_GetValue_Char(this, variable, result);
7407     }
Variable_GetValue_Byte__ani_env7408     ani_status Variable_GetValue_Byte(ani_variable variable, ani_byte *result)
7409     {
7410         return c_api->Variable_GetValue_Byte(this, variable, result);
7411     }
Variable_GetValue_Short__ani_env7412     ani_status Variable_GetValue_Short(ani_variable variable, ani_short *result)
7413     {
7414         return c_api->Variable_GetValue_Short(this, variable, result);
7415     }
Variable_GetValue_Int__ani_env7416     ani_status Variable_GetValue_Int(ani_variable variable, ani_int *result)
7417     {
7418         return c_api->Variable_GetValue_Int(this, variable, result);
7419     }
Variable_GetValue_Long__ani_env7420     ani_status Variable_GetValue_Long(ani_variable variable, ani_long *result)
7421     {
7422         return c_api->Variable_GetValue_Long(this, variable, result);
7423     }
Variable_GetValue_Float__ani_env7424     ani_status Variable_GetValue_Float(ani_variable variable, ani_float *result)
7425     {
7426         return c_api->Variable_GetValue_Float(this, variable, result);
7427     }
Variable_GetValue_Double__ani_env7428     ani_status Variable_GetValue_Double(ani_variable variable, ani_double *result)
7429     {
7430         return c_api->Variable_GetValue_Double(this, variable, result);
7431     }
Variable_GetValue_Ref__ani_env7432     ani_status Variable_GetValue_Ref(ani_variable variable, ani_ref *result)
7433     {
7434         return c_api->Variable_GetValue_Ref(this, variable, result);
7435     }
Function_Call_Boolean__ani_env7436     ani_status Function_Call_Boolean(ani_function fn, ani_boolean *result, ...)
7437     {
7438         va_list args;
7439         va_start(args, result);
7440         ani_status status = c_api->Function_Call_Boolean_V(this, fn, result, args);
7441         va_end(args);
7442         return status;
7443     }
Function_Call_Boolean_A__ani_env7444     ani_status Function_Call_Boolean_A(ani_function fn, ani_boolean *result, const ani_value *args)
7445     {
7446         return c_api->Function_Call_Boolean_A(this, fn, result, args);
7447     }
Function_Call_Boolean_V__ani_env7448     ani_status Function_Call_Boolean_V(ani_function fn, ani_boolean *result, va_list args)
7449     {
7450         return c_api->Function_Call_Boolean_V(this, fn, result, args);
7451     }
Function_Call_Char__ani_env7452     ani_status Function_Call_Char(ani_function fn, ani_char *result, ...)
7453     {
7454         va_list args;
7455         va_start(args, result);
7456         ani_status status = c_api->Function_Call_Char_V(this, fn, result, args);
7457         va_end(args);
7458         return status;
7459     }
Function_Call_Char_A__ani_env7460     ani_status Function_Call_Char_A(ani_function fn, ani_char *result, const ani_value *args)
7461     {
7462         return c_api->Function_Call_Char_A(this, fn, result, args);
7463     }
Function_Call_Char_V__ani_env7464     ani_status Function_Call_Char_V(ani_function fn, ani_char *result, va_list args)
7465     {
7466         return c_api->Function_Call_Char_V(this, fn, result, args);
7467     }
Function_Call_Byte__ani_env7468     ani_status Function_Call_Byte(ani_function fn, ani_byte *result, ...)
7469     {
7470         va_list args;
7471         va_start(args, result);
7472         ani_status status = c_api->Function_Call_Byte_V(this, fn, result, args);
7473         va_end(args);
7474         return status;
7475     }
Function_Call_Byte_A__ani_env7476     ani_status Function_Call_Byte_A(ani_function fn, ani_byte *result, const ani_value *args)
7477     {
7478         return c_api->Function_Call_Byte_A(this, fn, result, args);
7479     }
Function_Call_Byte_V__ani_env7480     ani_status Function_Call_Byte_V(ani_function fn, ani_byte *result, va_list args)
7481     {
7482         return c_api->Function_Call_Byte_V(this, fn, result, args);
7483     }
Function_Call_Short__ani_env7484     ani_status Function_Call_Short(ani_function fn, ani_short *result, ...)
7485     {
7486         va_list args;
7487         va_start(args, result);
7488         ani_status status = c_api->Function_Call_Short_V(this, fn, result, args);
7489         va_end(args);
7490         return status;
7491     }
Function_Call_Short_A__ani_env7492     ani_status Function_Call_Short_A(ani_function fn, ani_short *result, const ani_value *args)
7493     {
7494         return c_api->Function_Call_Short_A(this, fn, result, args);
7495     }
Function_Call_Short_V__ani_env7496     ani_status Function_Call_Short_V(ani_function fn, ani_short *result, va_list args)
7497     {
7498         return c_api->Function_Call_Short_V(this, fn, result, args);
7499     }
Function_Call_Int__ani_env7500     ani_status Function_Call_Int(ani_function fn, ani_int *result, ...)
7501     {
7502         va_list args;
7503         va_start(args, result);
7504         ani_status status = c_api->Function_Call_Int_V(this, fn, result, args);
7505         va_end(args);
7506         return status;
7507     }
Function_Call_Int_A__ani_env7508     ani_status Function_Call_Int_A(ani_function fn, ani_int *result, const ani_value *args)
7509     {
7510         return c_api->Function_Call_Int_A(this, fn, result, args);
7511     }
Function_Call_Int_V__ani_env7512     ani_status Function_Call_Int_V(ani_function fn, ani_int *result, va_list args)
7513     {
7514         return c_api->Function_Call_Int_V(this, fn, result, args);
7515     }
Function_Call_Long__ani_env7516     ani_status Function_Call_Long(ani_function fn, ani_long *result, ...)
7517     {
7518         va_list args;
7519         va_start(args, result);
7520         ani_status status = c_api->Function_Call_Long_V(this, fn, result, args);
7521         va_end(args);
7522         return status;
7523     }
Function_Call_Long_A__ani_env7524     ani_status Function_Call_Long_A(ani_function fn, ani_long *result, const ani_value *args)
7525     {
7526         return c_api->Function_Call_Long_A(this, fn, result, args);
7527     }
Function_Call_Long_V__ani_env7528     ani_status Function_Call_Long_V(ani_function fn, ani_long *result, va_list args)
7529     {
7530         return c_api->Function_Call_Long_V(this, fn, result, args);
7531     }
Function_Call_Float__ani_env7532     ani_status Function_Call_Float(ani_function fn, ani_float *result, ...)
7533     {
7534         va_list args;
7535         va_start(args, result);
7536         ani_status status = c_api->Function_Call_Float_V(this, fn, result, args);
7537         va_end(args);
7538         return status;
7539     }
Function_Call_Float_A__ani_env7540     ani_status Function_Call_Float_A(ani_function fn, ani_float *result, const ani_value *args)
7541     {
7542         return c_api->Function_Call_Float_A(this, fn, result, args);
7543     }
Function_Call_Float_V__ani_env7544     ani_status Function_Call_Float_V(ani_function fn, ani_float *result, va_list args)
7545     {
7546         return c_api->Function_Call_Float_V(this, fn, result, args);
7547     }
Function_Call_Double__ani_env7548     ani_status Function_Call_Double(ani_function fn, ani_double *result, ...)
7549     {
7550         va_list args;
7551         va_start(args, result);
7552         ani_status status = c_api->Function_Call_Double_V(this, fn, result, args);
7553         va_end(args);
7554         return status;
7555     }
Function_Call_Double_A__ani_env7556     ani_status Function_Call_Double_A(ani_function fn, ani_double *result, const ani_value *args)
7557     {
7558         return c_api->Function_Call_Double_A(this, fn, result, args);
7559     }
Function_Call_Double_V__ani_env7560     ani_status Function_Call_Double_V(ani_function fn, ani_double *result, va_list args)
7561     {
7562         return c_api->Function_Call_Double_V(this, fn, result, args);
7563     }
Function_Call_Ref__ani_env7564     ani_status Function_Call_Ref(ani_function fn, ani_ref *result, ...)
7565     {
7566         va_list args;
7567         va_start(args, result);
7568         ani_status status = c_api->Function_Call_Ref_V(this, fn, result, args);
7569         va_end(args);
7570         return status;
7571     }
Function_Call_Ref_A__ani_env7572     ani_status Function_Call_Ref_A(ani_function fn, ani_ref *result, const ani_value *args)
7573     {
7574         return c_api->Function_Call_Ref_A(this, fn, result, args);
7575     }
Function_Call_Ref_V__ani_env7576     ani_status Function_Call_Ref_V(ani_function fn, ani_ref *result, va_list args)
7577     {
7578         return c_api->Function_Call_Ref_V(this, fn, result, args);
7579     }
Function_Call_Void__ani_env7580     ani_status Function_Call_Void(ani_function fn, ...)
7581     {
7582         va_list args;
7583         va_start(args, fn);
7584         ani_status status = c_api->Function_Call_Void_V(this, fn, args);
7585         va_end(args);
7586         return status;
7587     }
Function_Call_Void_A__ani_env7588     ani_status Function_Call_Void_A(ani_function fn, const ani_value *args)
7589     {
7590         return c_api->Function_Call_Void_A(this, fn, args);
7591     }
Function_Call_Void_V__ani_env7592     ani_status Function_Call_Void_V(ani_function fn, va_list args)
7593     {
7594         return c_api->Function_Call_Void_V(this, fn, args);
7595     }
Class_GetPartial__ani_env7596     ani_status Class_GetPartial(ani_class cls, ani_class *result)
7597     {
7598         return c_api->Class_GetPartial(this, cls, result);
7599     }
Class_GetRequired__ani_env7600     ani_status Class_GetRequired(ani_class cls, ani_class *result)
7601     {
7602         return c_api->Class_GetRequired(this, cls, result);
7603     }
Class_GetField__ani_env7604     ani_status Class_GetField(ani_class cls, const char *name, ani_field *result)
7605     {
7606         return c_api->Class_GetField(this, cls, name, result);
7607     }
Class_GetStaticField__ani_env7608     ani_status Class_GetStaticField(ani_class cls, const char *name, ani_static_field *result)
7609     {
7610         return c_api->Class_GetStaticField(this, cls, name, result);
7611     }
Class_GetMethod__ani_env7612     ani_status Class_GetMethod(ani_class cls, const char *name, const char *signature, ani_method *result)
7613     {
7614         return c_api->Class_GetMethod(this, cls, name, signature, result);
7615     }
Class_GetStaticMethod__ani_env7616     ani_status Class_GetStaticMethod(ani_class cls, const char *name, const char *signature, ani_static_method *result)
7617     {
7618         return c_api->Class_GetStaticMethod(this, cls, name, signature, result);
7619     }
Class_GetProperty__ani_env7620     ani_status Class_GetProperty(ani_class cls, const char *name, ani_property *result)
7621     {
7622         return c_api->Class_GetProperty(this, cls, name, result);
7623     }
Class_GetSetter__ani_env7624     ani_status Class_GetSetter(ani_class cls, const char *name, ani_method *result)
7625     {
7626         return c_api->Class_GetSetter(this, cls, name, result);
7627     }
Class_GetGetter__ani_env7628     ani_status Class_GetGetter(ani_class cls, const char *name, ani_method *result)
7629     {
7630         return c_api->Class_GetGetter(this, cls, name, result);
7631     }
Class_GetIndexableGetter__ani_env7632     ani_status Class_GetIndexableGetter(ani_class cls, const char *signature, ani_method *result)
7633     {
7634         return c_api->Class_GetIndexableGetter(this, cls, signature, result);
7635     }
Class_GetIndexableSetter__ani_env7636     ani_status Class_GetIndexableSetter(ani_class cls, const char *signature, ani_method *result)
7637     {
7638         return c_api->Class_GetIndexableSetter(this, cls, signature, result);
7639     }
Class_GetIterator__ani_env7640     ani_status Class_GetIterator(ani_class cls, ani_method *result)
7641     {
7642         return c_api->Class_GetIterator(this, cls, result);
7643     }
Class_GetStaticField_Boolean__ani_env7644     ani_status Class_GetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean *result)
7645     {
7646         return c_api->Class_GetStaticField_Boolean(this, cls, field, result);
7647     }
Class_GetStaticField_Char__ani_env7648     ani_status Class_GetStaticField_Char(ani_class cls, ani_static_field field, ani_char *result)
7649     {
7650         return c_api->Class_GetStaticField_Char(this, cls, field, result);
7651     }
Class_GetStaticField_Byte__ani_env7652     ani_status Class_GetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte *result)
7653     {
7654         return c_api->Class_GetStaticField_Byte(this, cls, field, result);
7655     }
Class_GetStaticField_Short__ani_env7656     ani_status Class_GetStaticField_Short(ani_class cls, ani_static_field field, ani_short *result)
7657     {
7658         return c_api->Class_GetStaticField_Short(this, cls, field, result);
7659     }
Class_GetStaticField_Int__ani_env7660     ani_status Class_GetStaticField_Int(ani_class cls, ani_static_field field, ani_int *result)
7661     {
7662         return c_api->Class_GetStaticField_Int(this, cls, field, result);
7663     }
Class_GetStaticField_Long__ani_env7664     ani_status Class_GetStaticField_Long(ani_class cls, ani_static_field field, ani_long *result)
7665     {
7666         return c_api->Class_GetStaticField_Long(this, cls, field, result);
7667     }
Class_GetStaticField_Float__ani_env7668     ani_status Class_GetStaticField_Float(ani_class cls, ani_static_field field, ani_float *result)
7669     {
7670         return c_api->Class_GetStaticField_Float(this, cls, field, result);
7671     }
Class_GetStaticField_Double__ani_env7672     ani_status Class_GetStaticField_Double(ani_class cls, ani_static_field field, ani_double *result)
7673     {
7674         return c_api->Class_GetStaticField_Double(this, cls, field, result);
7675     }
Class_GetStaticField_Ref__ani_env7676     ani_status Class_GetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref *result)
7677     {
7678         return c_api->Class_GetStaticField_Ref(this, cls, field, result);
7679     }
Class_SetStaticField_Boolean__ani_env7680     ani_status Class_SetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean value)
7681     {
7682         return c_api->Class_SetStaticField_Boolean(this, cls, field, value);
7683     }
Class_SetStaticField_Char__ani_env7684     ani_status Class_SetStaticField_Char(ani_class cls, ani_static_field field, ani_char value)
7685     {
7686         return c_api->Class_SetStaticField_Char(this, cls, field, value);
7687     }
Class_SetStaticField_Byte__ani_env7688     ani_status Class_SetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte value)
7689     {
7690         return c_api->Class_SetStaticField_Byte(this, cls, field, value);
7691     }
Class_SetStaticField_Short__ani_env7692     ani_status Class_SetStaticField_Short(ani_class cls, ani_static_field field, ani_short value)
7693     {
7694         return c_api->Class_SetStaticField_Short(this, cls, field, value);
7695     }
Class_SetStaticField_Int__ani_env7696     ani_status Class_SetStaticField_Int(ani_class cls, ani_static_field field, ani_int value)
7697     {
7698         return c_api->Class_SetStaticField_Int(this, cls, field, value);
7699     }
Class_SetStaticField_Long__ani_env7700     ani_status Class_SetStaticField_Long(ani_class cls, ani_static_field field, ani_long value)
7701     {
7702         return c_api->Class_SetStaticField_Long(this, cls, field, value);
7703     }
Class_SetStaticField_Float__ani_env7704     ani_status Class_SetStaticField_Float(ani_class cls, ani_static_field field, ani_float value)
7705     {
7706         return c_api->Class_SetStaticField_Float(this, cls, field, value);
7707     }
Class_SetStaticField_Double__ani_env7708     ani_status Class_SetStaticField_Double(ani_class cls, ani_static_field field, ani_double value)
7709     {
7710         return c_api->Class_SetStaticField_Double(this, cls, field, value);
7711     }
Class_SetStaticField_Ref__ani_env7712     ani_status Class_SetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref value)
7713     {
7714         return c_api->Class_SetStaticField_Ref(this, cls, field, value);
7715     }
Class_GetStaticFieldByName_Boolean__ani_env7716     ani_status Class_GetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean *result)
7717     {
7718         return c_api->Class_GetStaticFieldByName_Boolean(this, cls, name, result);
7719     }
Class_GetStaticFieldByName_Char__ani_env7720     ani_status Class_GetStaticFieldByName_Char(ani_class cls, const char *name, ani_char *result)
7721     {
7722         return c_api->Class_GetStaticFieldByName_Char(this, cls, name, result);
7723     }
Class_GetStaticFieldByName_Byte__ani_env7724     ani_status Class_GetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte *result)
7725     {
7726         return c_api->Class_GetStaticFieldByName_Byte(this, cls, name, result);
7727     }
Class_GetStaticFieldByName_Short__ani_env7728     ani_status Class_GetStaticFieldByName_Short(ani_class cls, const char *name, ani_short *result)
7729     {
7730         return c_api->Class_GetStaticFieldByName_Short(this, cls, name, result);
7731     }
Class_GetStaticFieldByName_Int__ani_env7732     ani_status Class_GetStaticFieldByName_Int(ani_class cls, const char *name, ani_int *result)
7733     {
7734         return c_api->Class_GetStaticFieldByName_Int(this, cls, name, result);
7735     }
Class_GetStaticFieldByName_Long__ani_env7736     ani_status Class_GetStaticFieldByName_Long(ani_class cls, const char *name, ani_long *result)
7737     {
7738         return c_api->Class_GetStaticFieldByName_Long(this, cls, name, result);
7739     }
Class_GetStaticFieldByName_Float__ani_env7740     ani_status Class_GetStaticFieldByName_Float(ani_class cls, const char *name, ani_float *result)
7741     {
7742         return c_api->Class_GetStaticFieldByName_Float(this, cls, name, result);
7743     }
Class_GetStaticFieldByName_Double__ani_env7744     ani_status Class_GetStaticFieldByName_Double(ani_class cls, const char *name, ani_double *result)
7745     {
7746         return c_api->Class_GetStaticFieldByName_Double(this, cls, name, result);
7747     }
Class_GetStaticFieldByName_Ref__ani_env7748     ani_status Class_GetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref *result)
7749     {
7750         return c_api->Class_GetStaticFieldByName_Ref(this, cls, name, result);
7751     }
Class_SetStaticFieldByName_Boolean__ani_env7752     ani_status Class_SetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean value)
7753     {
7754         return c_api->Class_SetStaticFieldByName_Boolean(this, cls, name, value);
7755     }
Class_SetStaticFieldByName_Char__ani_env7756     ani_status Class_SetStaticFieldByName_Char(ani_class cls, const char *name, ani_char value)
7757     {
7758         return c_api->Class_SetStaticFieldByName_Char(this, cls, name, value);
7759     }
Class_SetStaticFieldByName_Byte__ani_env7760     ani_status Class_SetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte value)
7761     {
7762         return c_api->Class_SetStaticFieldByName_Byte(this, cls, name, value);
7763     }
Class_SetStaticFieldByName_Short__ani_env7764     ani_status Class_SetStaticFieldByName_Short(ani_class cls, const char *name, ani_short value)
7765     {
7766         return c_api->Class_SetStaticFieldByName_Short(this, cls, name, value);
7767     }
Class_SetStaticFieldByName_Int__ani_env7768     ani_status Class_SetStaticFieldByName_Int(ani_class cls, const char *name, ani_int value)
7769     {
7770         return c_api->Class_SetStaticFieldByName_Int(this, cls, name, value);
7771     }
Class_SetStaticFieldByName_Long__ani_env7772     ani_status Class_SetStaticFieldByName_Long(ani_class cls, const char *name, ani_long value)
7773     {
7774         return c_api->Class_SetStaticFieldByName_Long(this, cls, name, value);
7775     }
Class_SetStaticFieldByName_Float__ani_env7776     ani_status Class_SetStaticFieldByName_Float(ani_class cls, const char *name, ani_float value)
7777     {
7778         return c_api->Class_SetStaticFieldByName_Float(this, cls, name, value);
7779     }
Class_SetStaticFieldByName_Double__ani_env7780     ani_status Class_SetStaticFieldByName_Double(ani_class cls, const char *name, ani_double value)
7781     {
7782         return c_api->Class_SetStaticFieldByName_Double(this, cls, name, value);
7783     }
Class_SetStaticFieldByName_Ref__ani_env7784     ani_status Class_SetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref value)
7785     {
7786         return c_api->Class_SetStaticFieldByName_Ref(this, cls, name, value);
7787     }
Class_CallStaticMethod_Boolean__ani_env7788     ani_status Class_CallStaticMethod_Boolean(ani_class cls, ani_static_method method, ani_boolean *result, ...)
7789     {
7790         va_list args;
7791         va_start(args, result);
7792         ani_status status = c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args);
7793         va_end(args);
7794         return status;
7795     }
Class_CallStaticMethod_Boolean_A__ani_env7796     ani_status Class_CallStaticMethod_Boolean_A(ani_class cls, ani_static_method method, ani_boolean *result,
7797                                                 const ani_value *args)
7798     {
7799         return c_api->Class_CallStaticMethod_Boolean_A(this, cls, method, result, args);
7800     }
Class_CallStaticMethod_Boolean_V__ani_env7801     ani_status Class_CallStaticMethod_Boolean_V(ani_class cls, ani_static_method method, ani_boolean *result,
7802                                                 va_list args)
7803     {
7804         return c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args);
7805     }
Class_CallStaticMethod_Char__ani_env7806     ani_status Class_CallStaticMethod_Char(ani_class cls, ani_static_method method, ani_char *result, ...)
7807     {
7808         va_list args;
7809         va_start(args, result);
7810         ani_status status = c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args);
7811         va_end(args);
7812         return status;
7813     }
Class_CallStaticMethod_Char_A__ani_env7814     ani_status Class_CallStaticMethod_Char_A(ani_class cls, ani_static_method method, ani_char *result,
7815                                              const ani_value *args)
7816     {
7817         return c_api->Class_CallStaticMethod_Char_A(this, cls, method, result, args);
7818     }
Class_CallStaticMethod_Char_V__ani_env7819     ani_status Class_CallStaticMethod_Char_V(ani_class cls, ani_static_method method, ani_char *result, va_list args)
7820     {
7821         return c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args);
7822     }
Class_CallStaticMethod_Byte__ani_env7823     ani_status Class_CallStaticMethod_Byte(ani_class cls, ani_static_method method, ani_byte *result, ...)
7824     {
7825         va_list args;
7826         va_start(args, result);
7827         ani_status status = c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args);
7828         va_end(args);
7829         return status;
7830     }
Class_CallStaticMethod_Byte_A__ani_env7831     ani_status Class_CallStaticMethod_Byte_A(ani_class cls, ani_static_method method, ani_byte *result,
7832                                              const ani_value *args)
7833     {
7834         return c_api->Class_CallStaticMethod_Byte_A(this, cls, method, result, args);
7835     }
Class_CallStaticMethod_Byte_V__ani_env7836     ani_status Class_CallStaticMethod_Byte_V(ani_class cls, ani_static_method method, ani_byte *result, va_list args)
7837     {
7838         return c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args);
7839     }
Class_CallStaticMethod_Short__ani_env7840     ani_status Class_CallStaticMethod_Short(ani_class cls, ani_static_method method, ani_short *result, ...)
7841     {
7842         va_list args;
7843         va_start(args, result);
7844         ani_status status = c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args);
7845         va_end(args);
7846         return status;
7847     }
Class_CallStaticMethod_Short_A__ani_env7848     ani_status Class_CallStaticMethod_Short_A(ani_class cls, ani_static_method method, ani_short *result,
7849                                               const ani_value *args)
7850     {
7851         return c_api->Class_CallStaticMethod_Short_A(this, cls, method, result, args);
7852     }
Class_CallStaticMethod_Short_V__ani_env7853     ani_status Class_CallStaticMethod_Short_V(ani_class cls, ani_static_method method, ani_short *result, va_list args)
7854     {
7855         return c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args);
7856     }
Class_CallStaticMethod_Int__ani_env7857     ani_status Class_CallStaticMethod_Int(ani_class cls, ani_static_method method, ani_int *result, ...)
7858     {
7859         va_list args;
7860         va_start(args, result);
7861         ani_status status = c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args);
7862         va_end(args);
7863         return status;
7864     }
Class_CallStaticMethod_Int_A__ani_env7865     ani_status Class_CallStaticMethod_Int_A(ani_class cls, ani_static_method method, ani_int *result,
7866                                             const ani_value *args)
7867     {
7868         return c_api->Class_CallStaticMethod_Int_A(this, cls, method, result, args);
7869     }
Class_CallStaticMethod_Int_V__ani_env7870     ani_status Class_CallStaticMethod_Int_V(ani_class cls, ani_static_method method, ani_int *result, va_list args)
7871     {
7872         return c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args);
7873     }
Class_CallStaticMethod_Long__ani_env7874     ani_status Class_CallStaticMethod_Long(ani_class cls, ani_static_method method, ani_long *result, ...)
7875     {
7876         va_list args;
7877         va_start(args, result);
7878         ani_status status = c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args);
7879         va_end(args);
7880         return status;
7881     }
Class_CallStaticMethod_Long_A__ani_env7882     ani_status Class_CallStaticMethod_Long_A(ani_class cls, ani_static_method method, ani_long *result,
7883                                              const ani_value *args)
7884     {
7885         return c_api->Class_CallStaticMethod_Long_A(this, cls, method, result, args);
7886     }
Class_CallStaticMethod_Long_V__ani_env7887     ani_status Class_CallStaticMethod_Long_V(ani_class cls, ani_static_method method, ani_long *result, va_list args)
7888     {
7889         return c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args);
7890     }
Class_CallStaticMethod_Float__ani_env7891     ani_status Class_CallStaticMethod_Float(ani_class cls, ani_static_method method, ani_float *result, ...)
7892     {
7893         va_list args;
7894         va_start(args, result);
7895         ani_status status = c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args);
7896         va_end(args);
7897         return status;
7898     }
Class_CallStaticMethod_Float_A__ani_env7899     ani_status Class_CallStaticMethod_Float_A(ani_class cls, ani_static_method method, ani_float *result,
7900                                               const ani_value *args)
7901     {
7902         return c_api->Class_CallStaticMethod_Float_A(this, cls, method, result, args);
7903     }
Class_CallStaticMethod_Float_V__ani_env7904     ani_status Class_CallStaticMethod_Float_V(ani_class cls, ani_static_method method, ani_float *result, va_list args)
7905     {
7906         return c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args);
7907     }
Class_CallStaticMethod_Double__ani_env7908     ani_status Class_CallStaticMethod_Double(ani_class cls, ani_static_method method, ani_double *result, ...)
7909     {
7910         va_list args;
7911         va_start(args, result);
7912         ani_status status = c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args);
7913         va_end(args);
7914         return status;
7915     }
Class_CallStaticMethod_Double_A__ani_env7916     ani_status Class_CallStaticMethod_Double_A(ani_class cls, ani_static_method method, ani_double *result,
7917                                                const ani_value *args)
7918     {
7919         return c_api->Class_CallStaticMethod_Double_A(this, cls, method, result, args);
7920     }
Class_CallStaticMethod_Double_V__ani_env7921     ani_status Class_CallStaticMethod_Double_V(ani_class cls, ani_static_method method, ani_double *result,
7922                                                va_list args)
7923     {
7924         return c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args);
7925     }
Class_CallStaticMethod_Ref__ani_env7926     ani_status Class_CallStaticMethod_Ref(ani_class cls, ani_static_method method, ani_ref *result, ...)
7927     {
7928         va_list args;
7929         va_start(args, result);
7930         ani_status status = c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args);
7931         va_end(args);
7932         return status;
7933     }
Class_CallStaticMethod_Ref_A__ani_env7934     ani_status Class_CallStaticMethod_Ref_A(ani_class cls, ani_static_method method, ani_ref *result,
7935                                             const ani_value *args)
7936     {
7937         return c_api->Class_CallStaticMethod_Ref_A(this, cls, method, result, args);
7938     }
Class_CallStaticMethod_Ref_V__ani_env7939     ani_status Class_CallStaticMethod_Ref_V(ani_class cls, ani_static_method method, ani_ref *result, va_list args)
7940     {
7941         return c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args);
7942     }
Class_CallStaticMethod_Void__ani_env7943     ani_status Class_CallStaticMethod_Void(ani_class cls, ani_static_method method, ...)
7944     {
7945         va_list args;
7946         va_start(args, method);
7947         ani_status status = c_api->Class_CallStaticMethod_Void_V(this, cls, method, args);
7948         va_end(args);
7949         return status;
7950     }
Class_CallStaticMethod_Void_A__ani_env7951     ani_status Class_CallStaticMethod_Void_A(ani_class cls, ani_static_method method, const ani_value *args)
7952     {
7953         return c_api->Class_CallStaticMethod_Void_A(this, cls, method, args);
7954     }
Class_CallStaticMethod_Void_V__ani_env7955     ani_status Class_CallStaticMethod_Void_V(ani_class cls, ani_static_method method, va_list args)
7956     {
7957         return c_api->Class_CallStaticMethod_Void_V(this, cls, method, args);
7958     }
Class_CallStaticMethodByName_Boolean__ani_env7959     ani_status Class_CallStaticMethodByName_Boolean(ani_class cls, const char *name, ani_boolean *result, ...)
7960     {
7961         va_list args;
7962         va_start(args, result);
7963         ani_status status = c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, result, args);
7964         va_end(args);
7965         return status;
7966     }
Class_CallStaticMethodByName_Boolean_A__ani_env7967     ani_status Class_CallStaticMethodByName_Boolean_A(ani_class cls, const char *name, ani_boolean *result,
7968                                                       const ani_value *args)
7969     {
7970         return c_api->Class_CallStaticMethodByName_Boolean_A(this, cls, name, result, args);
7971     }
Class_CallStaticMethodByName_Boolean_V__ani_env7972     ani_status Class_CallStaticMethodByName_Boolean_V(ani_class cls, const char *name, ani_boolean *result,
7973                                                       va_list args)
7974     {
7975         return c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, result, args);
7976     }
Class_CallStaticMethodByName_Char__ani_env7977     ani_status Class_CallStaticMethodByName_Char(ani_class cls, const char *name, ani_char *result, ...)
7978     {
7979         va_list args;
7980         va_start(args, result);
7981         ani_status status = c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, result, args);
7982         va_end(args);
7983         return status;
7984     }
Class_CallStaticMethodByName_Char_A__ani_env7985     ani_status Class_CallStaticMethodByName_Char_A(ani_class cls, const char *name, ani_char *result,
7986                                                    const ani_value *args)
7987     {
7988         return c_api->Class_CallStaticMethodByName_Char_A(this, cls, name, result, args);
7989     }
Class_CallStaticMethodByName_Char_V__ani_env7990     ani_status Class_CallStaticMethodByName_Char_V(ani_class cls, const char *name, ani_char *result, va_list args)
7991     {
7992         return c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, result, args);
7993     }
Class_CallStaticMethodByName_Byte__ani_env7994     ani_status Class_CallStaticMethodByName_Byte(ani_class cls, const char *name, ani_byte *result, ...)
7995     {
7996         va_list args;
7997         va_start(args, result);
7998         ani_status status = c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, result, args);
7999         va_end(args);
8000         return status;
8001     }
Class_CallStaticMethodByName_Byte_A__ani_env8002     ani_status Class_CallStaticMethodByName_Byte_A(ani_class cls, const char *name, ani_byte *result,
8003                                                    const ani_value *args)
8004     {
8005         return c_api->Class_CallStaticMethodByName_Byte_A(this, cls, name, result, args);
8006     }
Class_CallStaticMethodByName_Byte_V__ani_env8007     ani_status Class_CallStaticMethodByName_Byte_V(ani_class cls, const char *name, ani_byte *result, va_list args)
8008     {
8009         return c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, result, args);
8010     }
Class_CallStaticMethodByName_Short__ani_env8011     ani_status Class_CallStaticMethodByName_Short(ani_class cls, const char *name, ani_short *result, ...)
8012     {
8013         va_list args;
8014         va_start(args, result);
8015         ani_status status = c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, result, args);
8016         va_end(args);
8017         return status;
8018     }
Class_CallStaticMethodByName_Short_A__ani_env8019     ani_status Class_CallStaticMethodByName_Short_A(ani_class cls, const char *name, ani_short *result,
8020                                                     const ani_value *args)
8021     {
8022         return c_api->Class_CallStaticMethodByName_Short_A(this, cls, name, result, args);
8023     }
Class_CallStaticMethodByName_Short_V__ani_env8024     ani_status Class_CallStaticMethodByName_Short_V(ani_class cls, const char *name, ani_short *result, va_list args)
8025     {
8026         return c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, result, args);
8027     }
Class_CallStaticMethodByName_Int__ani_env8028     ani_status Class_CallStaticMethodByName_Int(ani_class cls, const char *name, ani_int *result, ...)
8029     {
8030         va_list args;
8031         va_start(args, result);
8032         ani_status status = c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, result, args);
8033         va_end(args);
8034         return status;
8035     }
Class_CallStaticMethodByName_Int_A__ani_env8036     ani_status Class_CallStaticMethodByName_Int_A(ani_class cls, const char *name, ani_int *result,
8037                                                   const ani_value *args)
8038     {
8039         return c_api->Class_CallStaticMethodByName_Int_A(this, cls, name, result, args);
8040     }
Class_CallStaticMethodByName_Int_V__ani_env8041     ani_status Class_CallStaticMethodByName_Int_V(ani_class cls, const char *name, ani_int *result, va_list args)
8042     {
8043         return c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, result, args);
8044     }
Class_CallStaticMethodByName_Long__ani_env8045     ani_status Class_CallStaticMethodByName_Long(ani_class cls, const char *name, ani_long *result, ...)
8046     {
8047         va_list args;
8048         va_start(args, result);
8049         ani_status status = c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, result, args);
8050         va_end(args);
8051         return status;
8052     }
Class_CallStaticMethodByName_Long_A__ani_env8053     ani_status Class_CallStaticMethodByName_Long_A(ani_class cls, const char *name, ani_long *result,
8054                                                    const ani_value *args)
8055     {
8056         return c_api->Class_CallStaticMethodByName_Long_A(this, cls, name, result, args);
8057     }
Class_CallStaticMethodByName_Long_V__ani_env8058     ani_status Class_CallStaticMethodByName_Long_V(ani_class cls, const char *name, ani_long *result, va_list args)
8059     {
8060         return c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, result, args);
8061     }
Class_CallStaticMethodByName_Float__ani_env8062     ani_status Class_CallStaticMethodByName_Float(ani_class cls, const char *name, ani_float *result, ...)
8063     {
8064         va_list args;
8065         va_start(args, result);
8066         ani_status status = c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, result, args);
8067         va_end(args);
8068         return status;
8069     }
Class_CallStaticMethodByName_Float_A__ani_env8070     ani_status Class_CallStaticMethodByName_Float_A(ani_class cls, const char *name, ani_float *result,
8071                                                     const ani_value *args)
8072     {
8073         return c_api->Class_CallStaticMethodByName_Float_A(this, cls, name, result, args);
8074     }
Class_CallStaticMethodByName_Float_V__ani_env8075     ani_status Class_CallStaticMethodByName_Float_V(ani_class cls, const char *name, ani_float *result, va_list args)
8076     {
8077         return c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, result, args);
8078     }
Class_CallStaticMethodByName_Double__ani_env8079     ani_status Class_CallStaticMethodByName_Double(ani_class cls, const char *name, ani_double *result, ...)
8080     {
8081         va_list args;
8082         va_start(args, result);
8083         ani_status status = c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, result, args);
8084         va_end(args);
8085         return status;
8086     }
Class_CallStaticMethodByName_Double_A__ani_env8087     ani_status Class_CallStaticMethodByName_Double_A(ani_class cls, const char *name, ani_double *result,
8088                                                      const ani_value *args)
8089     {
8090         return c_api->Class_CallStaticMethodByName_Double_A(this, cls, name, result, args);
8091     }
Class_CallStaticMethodByName_Double_V__ani_env8092     ani_status Class_CallStaticMethodByName_Double_V(ani_class cls, const char *name, ani_double *result, va_list args)
8093     {
8094         return c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, result, args);
8095     }
Class_CallStaticMethodByName_Ref__ani_env8096     ani_status Class_CallStaticMethodByName_Ref(ani_class cls, const char *name, ani_ref *result, ...)
8097     {
8098         va_list args;
8099         va_start(args, result);
8100         ani_status status = c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, result, args);
8101         va_end(args);
8102         return status;
8103     }
Class_CallStaticMethodByName_Ref_A__ani_env8104     ani_status Class_CallStaticMethodByName_Ref_A(ani_class cls, const char *name, ani_ref *result,
8105                                                   const ani_value *args)
8106     {
8107         return c_api->Class_CallStaticMethodByName_Ref_A(this, cls, name, result, args);
8108     }
Class_CallStaticMethodByName_Ref_V__ani_env8109     ani_status Class_CallStaticMethodByName_Ref_V(ani_class cls, const char *name, ani_ref *result, va_list args)
8110     {
8111         return c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, result, args);
8112     }
Class_CallStaticMethodByName_Void__ani_env8113     ani_status Class_CallStaticMethodByName_Void(ani_class cls, const char *name, ...)
8114     {
8115         va_list args;
8116         va_start(args, name);
8117         ani_status status = c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, args);
8118         va_end(args);
8119         return status;
8120     }
Class_CallStaticMethodByName_Void_A__ani_env8121     ani_status Class_CallStaticMethodByName_Void_A(ani_class cls, const char *name, const ani_value *args)
8122     {
8123         return c_api->Class_CallStaticMethodByName_Void_A(this, cls, name, args);
8124     }
Class_CallStaticMethodByName_Void_V__ani_env8125     ani_status Class_CallStaticMethodByName_Void_V(ani_class cls, const char *name, va_list args)
8126     {
8127         return c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, args);
8128     }
Object_GetField_Boolean__ani_env8129     ani_status Object_GetField_Boolean(ani_object object, ani_field field, ani_boolean *result)
8130     {
8131         return c_api->Object_GetField_Boolean(this, object, field, result);
8132     }
Object_GetField_Char__ani_env8133     ani_status Object_GetField_Char(ani_object object, ani_field field, ani_char *result)
8134     {
8135         return c_api->Object_GetField_Char(this, object, field, result);
8136     }
Object_GetField_Byte__ani_env8137     ani_status Object_GetField_Byte(ani_object object, ani_field field, ani_byte *result)
8138     {
8139         return c_api->Object_GetField_Byte(this, object, field, result);
8140     }
Object_GetField_Short__ani_env8141     ani_status Object_GetField_Short(ani_object object, ani_field field, ani_short *result)
8142     {
8143         return c_api->Object_GetField_Short(this, object, field, result);
8144     }
Object_GetField_Int__ani_env8145     ani_status Object_GetField_Int(ani_object object, ani_field field, ani_int *result)
8146     {
8147         return c_api->Object_GetField_Int(this, object, field, result);
8148     }
Object_GetField_Long__ani_env8149     ani_status Object_GetField_Long(ani_object object, ani_field field, ani_long *result)
8150     {
8151         return c_api->Object_GetField_Long(this, object, field, result);
8152     }
Object_GetField_Float__ani_env8153     ani_status Object_GetField_Float(ani_object object, ani_field field, ani_float *result)
8154     {
8155         return c_api->Object_GetField_Float(this, object, field, result);
8156     }
Object_GetField_Double__ani_env8157     ani_status Object_GetField_Double(ani_object object, ani_field field, ani_double *result)
8158     {
8159         return c_api->Object_GetField_Double(this, object, field, result);
8160     }
Object_GetField_Ref__ani_env8161     ani_status Object_GetField_Ref(ani_object object, ani_field field, ani_ref *result)
8162     {
8163         return c_api->Object_GetField_Ref(this, object, field, result);
8164     }
Object_SetField_Boolean__ani_env8165     ani_status Object_SetField_Boolean(ani_object object, ani_field field, ani_boolean value)
8166     {
8167         return c_api->Object_SetField_Boolean(this, object, field, value);
8168     }
Object_SetField_Char__ani_env8169     ani_status Object_SetField_Char(ani_object object, ani_field field, ani_char value)
8170     {
8171         return c_api->Object_SetField_Char(this, object, field, value);
8172     }
Object_SetField_Byte__ani_env8173     ani_status Object_SetField_Byte(ani_object object, ani_field field, ani_byte value)
8174     {
8175         return c_api->Object_SetField_Byte(this, object, field, value);
8176     }
Object_SetField_Short__ani_env8177     ani_status Object_SetField_Short(ani_object object, ani_field field, ani_short value)
8178     {
8179         return c_api->Object_SetField_Short(this, object, field, value);
8180     }
Object_SetField_Int__ani_env8181     ani_status Object_SetField_Int(ani_object object, ani_field field, ani_int value)
8182     {
8183         return c_api->Object_SetField_Int(this, object, field, value);
8184     }
Object_SetField_Long__ani_env8185     ani_status Object_SetField_Long(ani_object object, ani_field field, ani_long value)
8186     {
8187         return c_api->Object_SetField_Long(this, object, field, value);
8188     }
Object_SetField_Float__ani_env8189     ani_status Object_SetField_Float(ani_object object, ani_field field, ani_float value)
8190     {
8191         return c_api->Object_SetField_Float(this, object, field, value);
8192     }
Object_SetField_Double__ani_env8193     ani_status Object_SetField_Double(ani_object object, ani_field field, ani_double value)
8194     {
8195         return c_api->Object_SetField_Double(this, object, field, value);
8196     }
Object_SetField_Ref__ani_env8197     ani_status Object_SetField_Ref(ani_object object, ani_field field, ani_ref value)
8198     {
8199         return c_api->Object_SetField_Ref(this, object, field, value);
8200     }
Object_GetFieldByName_Boolean__ani_env8201     ani_status Object_GetFieldByName_Boolean(ani_object object, const char *name, ani_boolean *result)
8202     {
8203         return c_api->Object_GetFieldByName_Boolean(this, object, name, result);
8204     }
Object_GetFieldByName_Char__ani_env8205     ani_status Object_GetFieldByName_Char(ani_object object, const char *name, ani_char *result)
8206     {
8207         return c_api->Object_GetFieldByName_Char(this, object, name, result);
8208     }
Object_GetFieldByName_Byte__ani_env8209     ani_status Object_GetFieldByName_Byte(ani_object object, const char *name, ani_byte *result)
8210     {
8211         return c_api->Object_GetFieldByName_Byte(this, object, name, result);
8212     }
Object_GetFieldByName_Short__ani_env8213     ani_status Object_GetFieldByName_Short(ani_object object, const char *name, ani_short *result)
8214     {
8215         return c_api->Object_GetFieldByName_Short(this, object, name, result);
8216     }
Object_GetFieldByName_Int__ani_env8217     ani_status Object_GetFieldByName_Int(ani_object object, const char *name, ani_int *result)
8218     {
8219         return c_api->Object_GetFieldByName_Int(this, object, name, result);
8220     }
Object_GetFieldByName_Long__ani_env8221     ani_status Object_GetFieldByName_Long(ani_object object, const char *name, ani_long *result)
8222     {
8223         return c_api->Object_GetFieldByName_Long(this, object, name, result);
8224     }
Object_GetFieldByName_Float__ani_env8225     ani_status Object_GetFieldByName_Float(ani_object object, const char *name, ani_float *result)
8226     {
8227         return c_api->Object_GetFieldByName_Float(this, object, name, result);
8228     }
Object_GetFieldByName_Double__ani_env8229     ani_status Object_GetFieldByName_Double(ani_object object, const char *name, ani_double *result)
8230     {
8231         return c_api->Object_GetFieldByName_Double(this, object, name, result);
8232     }
Object_GetFieldByName_Ref__ani_env8233     ani_status Object_GetFieldByName_Ref(ani_object object, const char *name, ani_ref *result)
8234     {
8235         return c_api->Object_GetFieldByName_Ref(this, object, name, result);
8236     }
Object_SetFieldByName_Boolean__ani_env8237     ani_status Object_SetFieldByName_Boolean(ani_object object, const char *name, ani_boolean value)
8238     {
8239         return c_api->Object_SetFieldByName_Boolean(this, object, name, value);
8240     }
Object_SetFieldByName_Char__ani_env8241     ani_status Object_SetFieldByName_Char(ani_object object, const char *name, ani_char value)
8242     {
8243         return c_api->Object_SetFieldByName_Char(this, object, name, value);
8244     }
Object_SetFieldByName_Byte__ani_env8245     ani_status Object_SetFieldByName_Byte(ani_object object, const char *name, ani_byte value)
8246     {
8247         return c_api->Object_SetFieldByName_Byte(this, object, name, value);
8248     }
Object_SetFieldByName_Short__ani_env8249     ani_status Object_SetFieldByName_Short(ani_object object, const char *name, ani_short value)
8250     {
8251         return c_api->Object_SetFieldByName_Short(this, object, name, value);
8252     }
Object_SetFieldByName_Int__ani_env8253     ani_status Object_SetFieldByName_Int(ani_object object, const char *name, ani_int value)
8254     {
8255         return c_api->Object_SetFieldByName_Int(this, object, name, value);
8256     }
Object_SetFieldByName_Long__ani_env8257     ani_status Object_SetFieldByName_Long(ani_object object, const char *name, ani_long value)
8258     {
8259         return c_api->Object_SetFieldByName_Long(this, object, name, value);
8260     }
Object_SetFieldByName_Float__ani_env8261     ani_status Object_SetFieldByName_Float(ani_object object, const char *name, ani_float value)
8262     {
8263         return c_api->Object_SetFieldByName_Float(this, object, name, value);
8264     }
Object_SetFieldByName_Double__ani_env8265     ani_status Object_SetFieldByName_Double(ani_object object, const char *name, ani_double value)
8266     {
8267         return c_api->Object_SetFieldByName_Double(this, object, name, value);
8268     }
Object_SetFieldByName_Ref__ani_env8269     ani_status Object_SetFieldByName_Ref(ani_object object, const char *name, ani_ref value)
8270     {
8271         return c_api->Object_SetFieldByName_Ref(this, object, name, value);
8272     }
Object_GetProperty_Boolean__ani_env8273     ani_status Object_GetProperty_Boolean(ani_object object, ani_property property, ani_boolean *result)
8274     {
8275         return c_api->Object_GetProperty_Boolean(this, object, property, result);
8276     }
Object_GetProperty_Char__ani_env8277     ani_status Object_GetProperty_Char(ani_object object, ani_property property, ani_char *result)
8278     {
8279         return c_api->Object_GetProperty_Char(this, object, property, result);
8280     }
Object_GetProperty_Byte__ani_env8281     ani_status Object_GetProperty_Byte(ani_object object, ani_property property, ani_byte *result)
8282     {
8283         return c_api->Object_GetProperty_Byte(this, object, property, result);
8284     }
Object_GetProperty_Short__ani_env8285     ani_status Object_GetProperty_Short(ani_object object, ani_property property, ani_short *result)
8286     {
8287         return c_api->Object_GetProperty_Short(this, object, property, result);
8288     }
Object_GetProperty_Int__ani_env8289     ani_status Object_GetProperty_Int(ani_object object, ani_property property, ani_int *result)
8290     {
8291         return c_api->Object_GetProperty_Int(this, object, property, result);
8292     }
Object_GetProperty_Long__ani_env8293     ani_status Object_GetProperty_Long(ani_object object, ani_property property, ani_long *result)
8294     {
8295         return c_api->Object_GetProperty_Long(this, object, property, result);
8296     }
Object_GetProperty_Float__ani_env8297     ani_status Object_GetProperty_Float(ani_object object, ani_property property, ani_float *result)
8298     {
8299         return c_api->Object_GetProperty_Float(this, object, property, result);
8300     }
Object_GetProperty_Double__ani_env8301     ani_status Object_GetProperty_Double(ani_object object, ani_property property, ani_double *result)
8302     {
8303         return c_api->Object_GetProperty_Double(this, object, property, result);
8304     }
Object_GetProperty_Ref__ani_env8305     ani_status Object_GetProperty_Ref(ani_object object, ani_property property, ani_ref *result)
8306     {
8307         return c_api->Object_GetProperty_Ref(this, object, property, result);
8308     }
Object_SetProperty_Boolean__ani_env8309     ani_status Object_SetProperty_Boolean(ani_object object, ani_property property, ani_boolean value)
8310     {
8311         return c_api->Object_SetProperty_Boolean(this, object, property, value);
8312     }
Object_SetProperty_Char__ani_env8313     ani_status Object_SetProperty_Char(ani_object object, ani_property property, ani_char value)
8314     {
8315         return c_api->Object_SetProperty_Char(this, object, property, value);
8316     }
Object_SetProperty_Byte__ani_env8317     ani_status Object_SetProperty_Byte(ani_object object, ani_property property, ani_byte value)
8318     {
8319         return c_api->Object_SetProperty_Byte(this, object, property, value);
8320     }
Object_SetProperty_Short__ani_env8321     ani_status Object_SetProperty_Short(ani_object object, ani_property property, ani_short value)
8322     {
8323         return c_api->Object_SetProperty_Byte(this, object, property, value);
8324     }
Object_SetProperty_Int__ani_env8325     ani_status Object_SetProperty_Int(ani_object object, ani_property property, ani_int value)
8326     {
8327         return c_api->Object_SetProperty_Int(this, object, property, value);
8328     }
Object_SetProperty_Long__ani_env8329     ani_status Object_SetProperty_Long(ani_object object, ani_property property, ani_long value)
8330     {
8331         return c_api->Object_SetProperty_Long(this, object, property, value);
8332     }
Object_SetProperty_Float__ani_env8333     ani_status Object_SetProperty_Float(ani_object object, ani_property property, ani_float value)
8334     {
8335         return c_api->Object_SetProperty_Float(this, object, property, value);
8336     }
Object_SetProperty_Double__ani_env8337     ani_status Object_SetProperty_Double(ani_object object, ani_property property, ani_double value)
8338     {
8339         return c_api->Object_SetProperty_Double(this, object, property, value);
8340     }
Object_SetProperty_Ref__ani_env8341     ani_status Object_SetProperty_Ref(ani_object object, ani_property property, ani_ref value)
8342     {
8343         return c_api->Object_SetProperty_Ref(this, object, property, value);
8344     }
Object_GetPropertyByName_Boolean__ani_env8345     ani_status Object_GetPropertyByName_Boolean(ani_object object, const char *name, ani_boolean *result)
8346     {
8347         return c_api->Object_GetPropertyByName_Boolean(this, object, name, result);
8348     }
Object_GetPropertyByName_Char__ani_env8349     ani_status Object_GetPropertyByName_Char(ani_object object, const char *name, ani_char *result)
8350     {
8351         return c_api->Object_GetPropertyByName_Char(this, object, name, result);
8352     }
Object_GetPropertyByName_Byte__ani_env8353     ani_status Object_GetPropertyByName_Byte(ani_object object, const char *name, ani_byte *result)
8354     {
8355         return c_api->Object_GetPropertyByName_Byte(this, object, name, result);
8356     }
Object_GetPropertyByName_Short__ani_env8357     ani_status Object_GetPropertyByName_Short(ani_object object, const char *name, ani_short *result)
8358     {
8359         return c_api->Object_GetPropertyByName_Short(this, object, name, result);
8360     }
Object_GetPropertyByName_Int__ani_env8361     ani_status Object_GetPropertyByName_Int(ani_object object, const char *name, ani_int *result)
8362     {
8363         return c_api->Object_GetPropertyByName_Int(this, object, name, result);
8364     }
Object_GetPropertyByName_Long__ani_env8365     ani_status Object_GetPropertyByName_Long(ani_object object, const char *name, ani_long *result)
8366     {
8367         return c_api->Object_GetPropertyByName_Long(this, object, name, result);
8368     }
Object_GetPropertyByName_Float__ani_env8369     ani_status Object_GetPropertyByName_Float(ani_object object, const char *name, ani_float *result)
8370     {
8371         return c_api->Object_GetPropertyByName_Float(this, object, name, result);
8372     }
Object_GetPropertyByName_Double__ani_env8373     ani_status Object_GetPropertyByName_Double(ani_object object, const char *name, ani_double *result)
8374     {
8375         return c_api->Object_GetPropertyByName_Double(this, object, name, result);
8376     }
Object_GetPropertyByName_Ref__ani_env8377     ani_status Object_GetPropertyByName_Ref(ani_object object, const char *name, ani_ref *result)
8378     {
8379         return c_api->Object_GetPropertyByName_Ref(this, object, name, result);
8380     }
Object_SetPropertyByName_Boolean__ani_env8381     ani_status Object_SetPropertyByName_Boolean(ani_object object, const char *name, ani_boolean value)
8382     {
8383         return c_api->Object_SetPropertyByName_Boolean(this, object, name, value);
8384     }
Object_SetPropertyByName_Char__ani_env8385     ani_status Object_SetPropertyByName_Char(ani_object object, const char *name, ani_char value)
8386     {
8387         return c_api->Object_SetPropertyByName_Char(this, object, name, value);
8388     }
Object_SetPropertyByName_Byte__ani_env8389     ani_status Object_SetPropertyByName_Byte(ani_object object, const char *name, ani_byte value)
8390     {
8391         return c_api->Object_SetPropertyByName_Byte(this, object, name, value);
8392     }
Object_SetPropertyByName_Short__ani_env8393     ani_status Object_SetPropertyByName_Short(ani_object object, const char *name, ani_short value)
8394     {
8395         return c_api->Object_SetPropertyByName_Short(this, object, name, value);
8396     }
Object_SetPropertyByName_Int__ani_env8397     ani_status Object_SetPropertyByName_Int(ani_object object, const char *name, ani_int value)
8398     {
8399         return c_api->Object_SetPropertyByName_Int(this, object, name, value);
8400     }
Object_SetPropertyByName_Long__ani_env8401     ani_status Object_SetPropertyByName_Long(ani_object object, const char *name, ani_long value)
8402     {
8403         return c_api->Object_SetPropertyByName_Long(this, object, name, value);
8404     }
Object_SetPropertyByName_Float__ani_env8405     ani_status Object_SetPropertyByName_Float(ani_object object, const char *name, ani_float value)
8406     {
8407         return c_api->Object_SetPropertyByName_Float(this, object, name, value);
8408     }
Object_SetPropertyByName_Double__ani_env8409     ani_status Object_SetPropertyByName_Double(ani_object object, const char *name, ani_double value)
8410     {
8411         return c_api->Object_SetPropertyByName_Double(this, object, name, value);
8412     }
Object_SetPropertyByName_Ref__ani_env8413     ani_status Object_SetPropertyByName_Ref(ani_object object, const char *name, ani_ref value)
8414     {
8415         return c_api->Object_SetPropertyByName_Ref(this, object, name, value);
8416     }
Object_CallMethod_Boolean__ani_env8417     ani_status Object_CallMethod_Boolean(ani_object object, ani_method method, ani_boolean *result, ...)
8418     {
8419         va_list args;
8420         va_start(args, result);
8421         ani_status status = c_api->Object_CallMethod_Boolean_V(this, object, method, result, args);
8422         va_end(args);
8423         return status;
8424     }
Object_CallMethod_Boolean_A__ani_env8425     ani_status Object_CallMethod_Boolean_A(ani_object object, ani_method method, ani_boolean *result,
8426                                            const ani_value *args)
8427     {
8428         return c_api->Object_CallMethod_Boolean_A(this, object, method, result, args);
8429     }
Object_CallMethod_Boolean_V__ani_env8430     ani_status Object_CallMethod_Boolean_V(ani_object object, ani_method method, ani_boolean *result, va_list args)
8431     {
8432         return c_api->Object_CallMethod_Boolean_V(this, object, method, result, args);
8433     }
Object_CallMethod_Char__ani_env8434     ani_status Object_CallMethod_Char(ani_object object, ani_method method, ani_char *result, ...)
8435     {
8436         va_list args;
8437         va_start(args, result);
8438         ani_status status = c_api->Object_CallMethod_Char_V(this, object, method, result, args);
8439         va_end(args);
8440         return status;
8441     }
Object_CallMethod_Char_A__ani_env8442     ani_status Object_CallMethod_Char_A(ani_object object, ani_method method, ani_char *result, const ani_value *args)
8443     {
8444         return c_api->Object_CallMethod_Char_A(this, object, method, result, args);
8445     }
Object_CallMethod_Char_V__ani_env8446     ani_status Object_CallMethod_Char_V(ani_object object, ani_method method, ani_char *result, va_list args)
8447     {
8448         return c_api->Object_CallMethod_Char_V(this, object, method, result, args);
8449     }
Object_CallMethod_Byte__ani_env8450     ani_status Object_CallMethod_Byte(ani_object object, ani_method method, ani_byte *result, ...)
8451     {
8452         va_list args;
8453         va_start(args, result);
8454         ani_status status = c_api->Object_CallMethod_Byte_V(this, object, method, result, args);
8455         va_end(args);
8456         return status;
8457     }
Object_CallMethod_Byte_A__ani_env8458     ani_status Object_CallMethod_Byte_A(ani_object object, ani_method method, ani_byte *result, const ani_value *args)
8459     {
8460         return c_api->Object_CallMethod_Byte_A(this, object, method, result, args);
8461     }
Object_CallMethod_Byte_V__ani_env8462     ani_status Object_CallMethod_Byte_V(ani_object object, ani_method method, ani_byte *result, va_list args)
8463     {
8464         return c_api->Object_CallMethod_Byte_V(this, object, method, result, args);
8465     }
Object_CallMethod_Short__ani_env8466     ani_status Object_CallMethod_Short(ani_object object, ani_method method, ani_short *result, ...)
8467     {
8468         va_list args;
8469         va_start(args, result);
8470         ani_status status = c_api->Object_CallMethod_Short_V(this, object, method, result, args);
8471         va_end(args);
8472         return status;
8473     }
Object_CallMethod_Short_A__ani_env8474     ani_status Object_CallMethod_Short_A(ani_object object, ani_method method, ani_short *result, const ani_value *args)
8475     {
8476         return c_api->Object_CallMethod_Short_A(this, object, method, result, args);
8477     }
Object_CallMethod_Short_V__ani_env8478     ani_status Object_CallMethod_Short_V(ani_object object, ani_method method, ani_short *result, va_list args)
8479     {
8480         return c_api->Object_CallMethod_Short_V(this, object, method, result, args);
8481     }
Object_CallMethod_Int__ani_env8482     ani_status Object_CallMethod_Int(ani_object object, ani_method method, ani_int *result, ...)
8483     {
8484         va_list args;
8485         va_start(args, result);
8486         ani_status status = c_api->Object_CallMethod_Int_V(this, object, method, result, args);
8487         va_end(args);
8488         return status;
8489     }
Object_CallMethod_Int_A__ani_env8490     ani_status Object_CallMethod_Int_A(ani_object object, ani_method method, ani_int *result, const ani_value *args)
8491     {
8492         return c_api->Object_CallMethod_Int_A(this, object, method, result, args);
8493     }
Object_CallMethod_Int_V__ani_env8494     ani_status Object_CallMethod_Int_V(ani_object object, ani_method method, ani_int *result, va_list args)
8495     {
8496         return c_api->Object_CallMethod_Int_V(this, object, method, result, args);
8497     }
Object_CallMethod_Long__ani_env8498     ani_status Object_CallMethod_Long(ani_object object, ani_method method, ani_long *result, ...)
8499     {
8500         va_list args;
8501         va_start(args, result);
8502         ani_status status = c_api->Object_CallMethod_Long_V(this, object, method, result, args);
8503         va_end(args);
8504         return status;
8505     }
Object_CallMethod_Long_A__ani_env8506     ani_status Object_CallMethod_Long_A(ani_object object, ani_method method, ani_long *result, const ani_value *args)
8507     {
8508         return c_api->Object_CallMethod_Long_A(this, object, method, result, args);
8509     }
Object_CallMethod_Long_V__ani_env8510     ani_status Object_CallMethod_Long_V(ani_object object, ani_method method, ani_long *result, va_list args)
8511     {
8512         return c_api->Object_CallMethod_Long_V(this, object, method, result, args);
8513     }
Object_CallMethod_Float__ani_env8514     ani_status Object_CallMethod_Float(ani_object object, ani_method method, ani_float *result, ...)
8515     {
8516         va_list args;
8517         va_start(args, result);
8518         ani_status status = c_api->Object_CallMethod_Float_V(this, object, method, result, args);
8519         va_end(args);
8520         return status;
8521     }
Object_CallMethod_Float_A__ani_env8522     ani_status Object_CallMethod_Float_A(ani_object object, ani_method method, ani_float *result, const ani_value *args)
8523     {
8524         return c_api->Object_CallMethod_Float_A(this, object, method, result, args);
8525     }
Object_CallMethod_Float_V__ani_env8526     ani_status Object_CallMethod_Float_V(ani_object object, ani_method method, ani_float *result, va_list args)
8527     {
8528         return c_api->Object_CallMethod_Float_V(this, object, method, result, args);
8529     }
Object_CallMethod_Double__ani_env8530     ani_status Object_CallMethod_Double(ani_object object, ani_method method, ani_double *result, ...)
8531     {
8532         va_list args;
8533         va_start(args, result);
8534         ani_status status = c_api->Object_CallMethod_Double_V(this, object, method, result, args);
8535         va_end(args);
8536         return status;
8537     }
Object_CallMethod_Double_A__ani_env8538     ani_status Object_CallMethod_Double_A(ani_object object, ani_method method, ani_double *result,
8539                                           const ani_value *args)
8540     {
8541         return c_api->Object_CallMethod_Double_A(this, object, method, result, args);
8542     }
Object_CallMethod_Double_V__ani_env8543     ani_status Object_CallMethod_Double_V(ani_object object, ani_method method, ani_double *result, va_list args)
8544     {
8545         return c_api->Object_CallMethod_Double_V(this, object, method, result, args);
8546     }
Object_CallMethod_Ref__ani_env8547     ani_status Object_CallMethod_Ref(ani_object object, ani_method method, ani_ref *result, ...)
8548     {
8549         va_list args;
8550         va_start(args, result);
8551         ani_status status = c_api->Object_CallMethod_Ref_V(this, object, method, result, args);
8552         va_end(args);
8553         return status;
8554     }
Object_CallMethod_Ref_A__ani_env8555     ani_status Object_CallMethod_Ref_A(ani_object object, ani_method method, ani_ref *result, const ani_value *args)
8556     {
8557         return c_api->Object_CallMethod_Ref_A(this, object, method, result, args);
8558     }
Object_CallMethod_Ref_V__ani_env8559     ani_status Object_CallMethod_Ref_V(ani_object object, ani_method method, ani_ref *result, va_list args)
8560     {
8561         return c_api->Object_CallMethod_Ref_V(this, object, method, result, args);
8562     }
Object_CallMethod_Void__ani_env8563     ani_status Object_CallMethod_Void(ani_object object, ani_method method, ...)
8564     {
8565         va_list args;
8566         va_start(args, method);
8567         ani_status status = c_api->Object_CallMethod_Void_V(this, object, method, args);
8568         va_end(args);
8569         return status;
8570     }
Object_CallMethod_Void_A__ani_env8571     ani_status Object_CallMethod_Void_A(ani_object object, ani_method method, const ani_value *args)
8572     {
8573         return c_api->Object_CallMethod_Void_A(this, object, method, args);
8574     }
Object_CallMethod_Void_V__ani_env8575     ani_status Object_CallMethod_Void_V(ani_object object, ani_method method, va_list args)
8576     {
8577         return c_api->Object_CallMethod_Void_V(this, object, method, args);
8578     }
Object_CallMethodByName_Boolean__ani_env8579     ani_status Object_CallMethodByName_Boolean(ani_object object, const char *name, const char *signature,
8580                                                ani_boolean *result, ...)
8581     {
8582         va_list args;
8583         va_start(args, result);
8584         ani_status status = c_api->Object_CallMethodByName_Boolean_V(this, object, name, signature, result, args);
8585         va_end(args);
8586         return status;
8587     }
Object_CallMethodByName_Boolean_A__ani_env8588     ani_status Object_CallMethodByName_Boolean_A(ani_object object, const char *name, const char *signature,
8589                                                  ani_boolean *result, const ani_value *args)
8590     {
8591         return c_api->Object_CallMethodByName_Boolean_A(this, object, name, signature, result, args);
8592     }
Object_CallMethodByName_Boolean_V__ani_env8593     ani_status Object_CallMethodByName_Boolean_V(ani_object object, const char *name, const char *signature,
8594                                                  ani_boolean *result, va_list args)
8595     {
8596         return c_api->Object_CallMethodByName_Boolean_V(this, object, name, signature, result, args);
8597     }
Object_CallMethodByName_Char__ani_env8598     ani_status Object_CallMethodByName_Char(ani_object object, const char *name, const char *signature,
8599                                             ani_char *result, ...)
8600     {
8601         va_list args;
8602         va_start(args, result);
8603         ani_status status = c_api->Object_CallMethodByName_Char_V(this, object, name, signature, result, args);
8604         va_end(args);
8605         return status;
8606     }
Object_CallMethodByName_Char_A__ani_env8607     ani_status Object_CallMethodByName_Char_A(ani_object object, const char *name, const char *signature,
8608                                               ani_char *result, const ani_value *args)
8609     {
8610         return c_api->Object_CallMethodByName_Char_A(this, object, name, signature, result, args);
8611     }
Object_CallMethodByName_Char_V__ani_env8612     ani_status Object_CallMethodByName_Char_V(ani_object object, const char *name, const char *signature,
8613                                               ani_char *result, va_list args)
8614     {
8615         return c_api->Object_CallMethodByName_Char_V(this, object, name, signature, result, args);
8616     }
Object_CallMethodByName_Byte__ani_env8617     ani_status Object_CallMethodByName_Byte(ani_object object, const char *name, const char *signature,
8618                                             ani_byte *result, ...)
8619     {
8620         va_list args;
8621         va_start(args, result);
8622         ani_status status = c_api->Object_CallMethodByName_Byte_V(this, object, name, signature, result, args);
8623         va_end(args);
8624         return status;
8625     }
Object_CallMethodByName_Byte_A__ani_env8626     ani_status Object_CallMethodByName_Byte_A(ani_object object, const char *name, const char *signature,
8627                                               ani_byte *result, const ani_value *args)
8628     {
8629         return c_api->Object_CallMethodByName_Byte_A(this, object, name, signature, result, args);
8630     }
Object_CallMethodByName_Byte_V__ani_env8631     ani_status Object_CallMethodByName_Byte_V(ani_object object, const char *name, const char *signature,
8632                                               ani_byte *result, va_list args)
8633     {
8634         return c_api->Object_CallMethodByName_Byte_V(this, object, name, signature, result, args);
8635     }
Object_CallMethodByName_Short__ani_env8636     ani_status Object_CallMethodByName_Short(ani_object object, const char *name, const char *signature,
8637                                              ani_short *result, ...)
8638     {
8639         va_list args;
8640         va_start(args, result);
8641         ani_status status = c_api->Object_CallMethodByName_Short_V(this, object, name, signature, result, args);
8642         va_end(args);
8643         return status;
8644     }
Object_CallMethodByName_Short_A__ani_env8645     ani_status Object_CallMethodByName_Short_A(ani_object object, const char *name, const char *signature,
8646                                                ani_short *result, const ani_value *args)
8647     {
8648         return c_api->Object_CallMethodByName_Short_A(this, object, name, signature, result, args);
8649     }
Object_CallMethodByName_Short_V__ani_env8650     ani_status Object_CallMethodByName_Short_V(ani_object object, const char *name, const char *signature,
8651                                                ani_short *result, va_list args)
8652     {
8653         return c_api->Object_CallMethodByName_Short_V(this, object, name, signature, result, args);
8654     }
Object_CallMethodByName_Int__ani_env8655     ani_status Object_CallMethodByName_Int(ani_object object, const char *name, const char *signature, ani_int *result,
8656                                            ...)
8657     {
8658         va_list args;
8659         va_start(args, result);
8660         ani_status status = c_api->Object_CallMethodByName_Int_V(this, object, name, signature, result, args);
8661         va_end(args);
8662         return status;
8663     }
Object_CallMethodByName_Int_A__ani_env8664     ani_status Object_CallMethodByName_Int_A(ani_object object, const char *name, const char *signature,
8665                                              ani_int *result, const ani_value *args)
8666     {
8667         return c_api->Object_CallMethodByName_Int_A(this, object, name, signature, result, args);
8668     }
Object_CallMethodByName_Int_V__ani_env8669     ani_status Object_CallMethodByName_Int_V(ani_object object, const char *name, const char *signature,
8670                                              ani_int *result, va_list args)
8671     {
8672         return c_api->Object_CallMethodByName_Int_V(this, object, name, signature, result, args);
8673     }
Object_CallMethodByName_Long__ani_env8674     ani_status Object_CallMethodByName_Long(ani_object object, const char *name, const char *signature,
8675                                             ani_long *result, ...)
8676     {
8677         va_list args;
8678         va_start(args, result);
8679         ani_status status = c_api->Object_CallMethodByName_Long_V(this, object, name, signature, result, args);
8680         va_end(args);
8681         return status;
8682     }
Object_CallMethodByName_Long_A__ani_env8683     ani_status Object_CallMethodByName_Long_A(ani_object object, const char *name, const char *signature,
8684                                               ani_long *result, const ani_value *args)
8685     {
8686         return c_api->Object_CallMethodByName_Long_A(this, object, name, signature, result, args);
8687     }
Object_CallMethodByName_Long_V__ani_env8688     ani_status Object_CallMethodByName_Long_V(ani_object object, const char *name, const char *signature,
8689                                               ani_long *result, va_list args)
8690     {
8691         return c_api->Object_CallMethodByName_Long_V(this, object, name, signature, result, args);
8692     }
Object_CallMethodByName_Float__ani_env8693     ani_status Object_CallMethodByName_Float(ani_object object, const char *name, const char *signature,
8694                                              ani_float *result, ...)
8695     {
8696         va_list args;
8697         va_start(args, result);
8698         ani_status status = c_api->Object_CallMethodByName_Float_V(this, object, name, signature, result, args);
8699         va_end(args);
8700         return status;
8701     }
Object_CallMethodByName_Float_A__ani_env8702     ani_status Object_CallMethodByName_Float_A(ani_object object, const char *name, const char *signature,
8703                                                ani_float *result, const ani_value *args)
8704     {
8705         return c_api->Object_CallMethodByName_Float_A(this, object, name, signature, result, args);
8706     }
Object_CallMethodByName_Float_V__ani_env8707     ani_status Object_CallMethodByName_Float_V(ani_object object, const char *name, const char *signature,
8708                                                ani_float *result, va_list args)
8709     {
8710         return c_api->Object_CallMethodByName_Float_V(this, object, name, signature, result, args);
8711     }
Object_CallMethodByName_Double__ani_env8712     ani_status Object_CallMethodByName_Double(ani_object object, const char *name, const char *signature,
8713                                               ani_double *result, ...)
8714     {
8715         va_list args;
8716         va_start(args, result);
8717         ani_status status = c_api->Object_CallMethodByName_Double_V(this, object, name, signature, result, args);
8718         va_end(args);
8719         return status;
8720     }
Object_CallMethodByName_Double_A__ani_env8721     ani_status Object_CallMethodByName_Double_A(ani_object object, const char *name, const char *signature,
8722                                                 ani_double *result, const ani_value *args)
8723     {
8724         return c_api->Object_CallMethodByName_Double_A(this, object, name, signature, result, args);
8725     }
Object_CallMethodByName_Double_V__ani_env8726     ani_status Object_CallMethodByName_Double_V(ani_object object, const char *name, const char *signature,
8727                                                 ani_double *result, va_list args)
8728     {
8729         return c_api->Object_CallMethodByName_Double_V(this, object, name, signature, result, args);
8730     }
Object_CallMethodByName_Ref__ani_env8731     ani_status Object_CallMethodByName_Ref(ani_object object, const char *name, const char *signature, ani_ref *result,
8732                                            ...)
8733     {
8734         va_list args;
8735         va_start(args, result);
8736         ani_status status = c_api->Object_CallMethodByName_Ref_V(this, object, name, signature, result, args);
8737         va_end(args);
8738         return status;
8739     }
Object_CallMethodByName_Ref_A__ani_env8740     ani_status Object_CallMethodByName_Ref_A(ani_object object, const char *name, const char *signature,
8741                                              ani_ref *result, const ani_value *args)
8742     {
8743         return c_api->Object_CallMethodByName_Ref_A(this, object, name, signature, result, args);
8744     }
Object_CallMethodByName_Ref_V__ani_env8745     ani_status Object_CallMethodByName_Ref_V(ani_object object, const char *name, const char *signature,
8746                                              ani_ref *result, va_list args)
8747     {
8748         return c_api->Object_CallMethodByName_Ref_V(this, object, name, signature, result, args);
8749     }
Object_CallMethodByName_Void__ani_env8750     ani_status Object_CallMethodByName_Void(ani_object object, const char *name, const char *signature, ...)
8751     {
8752         va_list args;
8753         va_start(args, signature);
8754         ani_status status = c_api->Object_CallMethodByName_Void_V(this, object, name, signature, args);
8755         va_end(args);
8756         return status;
8757     }
Object_CallMethodByName_Void_A__ani_env8758     ani_status Object_CallMethodByName_Void_A(ani_object object, const char *name, const char *signature,
8759                                               const ani_value *args)
8760     {
8761         return c_api->Object_CallMethodByName_Void_A(this, object, name, signature, args);
8762     }
Object_CallMethodByName_Void_V__ani_env8763     ani_status Object_CallMethodByName_Void_V(ani_object object, const char *name, const char *signature, va_list args)
8764     {
8765         return c_api->Object_CallMethodByName_Void_V(this, object, name, signature, args);
8766     }
Tuple_NewTupleValue__ani_env8767     ani_status Tuple_NewTupleValue(ani_tuple tuple, ani_tuple_value *result, ...)
8768     {
8769         va_list args;
8770         va_start(args, result);
8771         ani_status status = c_api->Tuple_NewTupleValue_V(this, tuple, result, args);
8772         va_end(args);
8773         return status;
8774     }
Tuple_NewTupleValue_A__ani_env8775     ani_status Tuple_NewTupleValue_A(ani_tuple tuple, ani_tuple_value *result, const ani_value *args)
8776     {
8777         return c_api->Tuple_NewTupleValue_A(this, tuple, result, args);
8778     }
Tuple_NewTupleValue_V__ani_env8779     ani_status Tuple_NewTupleValue_V(ani_tuple tuple, ani_tuple_value *result, va_list args)
8780     {
8781         return c_api->Tuple_NewTupleValue_V(this, tuple, result, args);
8782     }
Tuple_GetNumberOfItems__ani_env8783     ani_status Tuple_GetNumberOfItems(ani_tuple tuple, ani_size *result)
8784     {
8785         return c_api->Tuple_GetNumberOfItems(this, tuple, result);
8786     }
Tuple_GetItemKind__ani_env8787     ani_status Tuple_GetItemKind(ani_tuple tuple, ani_size index, ani_kind *result)
8788     {
8789         return c_api->Tuple_GetItemKind(this, tuple, index, result);
8790     }
Tuple_GetItemType__ani_env8791     ani_status Tuple_GetItemType(ani_tuple tuple, ani_size index, ani_type *result)
8792     {
8793         return c_api->Tuple_GetItemType(this, tuple, index, result);
8794     }
TupleValue_GetTuple__ani_env8795     ani_status TupleValue_GetTuple(ani_tuple_value value, ani_tuple *result)
8796     {
8797         return c_api->TupleValue_GetTuple(this, value, result);
8798     }
TupleValue_GetItem_Boolean__ani_env8799     ani_status TupleValue_GetItem_Boolean(ani_tuple_value tuple_value, ani_size index, ani_boolean *result)
8800     {
8801         return c_api->TupleValue_GetItem_Boolean(this, tuple_value, index, result);
8802     }
TupleValue_GetItem_Char__ani_env8803     ani_status TupleValue_GetItem_Char(ani_tuple_value tuple_value, ani_size index, ani_char *result)
8804     {
8805         return c_api->TupleValue_GetItem_Char(this, tuple_value, index, result);
8806     }
TupleValue_GetItem_Byte__ani_env8807     ani_status TupleValue_GetItem_Byte(ani_tuple_value tuple_value, ani_size index, ani_byte *result)
8808     {
8809         return c_api->TupleValue_GetItem_Byte(this, tuple_value, index, result);
8810     }
TupleValue_GetItem_Short__ani_env8811     ani_status TupleValue_GetItem_Short(ani_tuple_value tuple_value, ani_size index, ani_short *result)
8812     {
8813         return c_api->TupleValue_GetItem_Short(this, tuple_value, index, result);
8814     }
TupleValue_GetItem_Int__ani_env8815     ani_status TupleValue_GetItem_Int(ani_tuple_value tuple_value, ani_size index, ani_int *result)
8816     {
8817         return c_api->TupleValue_GetItem_Int(this, tuple_value, index, result);
8818     }
TupleValue_GetItem_Long__ani_env8819     ani_status TupleValue_GetItem_Long(ani_tuple_value tuple_value, ani_size index, ani_long *result)
8820     {
8821         return c_api->TupleValue_GetItem_Long(this, tuple_value, index, result);
8822     }
TupleValue_GetItem_Float__ani_env8823     ani_status TupleValue_GetItem_Float(ani_tuple_value tuple_value, ani_size index, ani_float *result)
8824     {
8825         return c_api->TupleValue_GetItem_Float(this, tuple_value, index, result);
8826     }
TupleValue_GetItem_Double__ani_env8827     ani_status TupleValue_GetItem_Double(ani_tuple_value tuple_value, ani_size index, ani_double *result)
8828     {
8829         return c_api->TupleValue_GetItem_Double(this, tuple_value, index, result);
8830     }
TupleValue_GetItem_Ref__ani_env8831     ani_status TupleValue_GetItem_Ref(ani_tuple_value tuple_value, ani_size index, ani_ref *result)
8832     {
8833         return c_api->TupleValue_GetItem_Ref(this, tuple_value, index, result);
8834     }
TupleValue_SetItem_Boolean__ani_env8835     ani_status TupleValue_SetItem_Boolean(ani_tuple_value tuple_value, ani_size index, ani_boolean value)
8836     {
8837         return c_api->TupleValue_SetItem_Boolean(this, tuple_value, index, value);
8838     }
TupleValue_SetItem_Char__ani_env8839     ani_status TupleValue_SetItem_Char(ani_tuple_value tuple_value, ani_size index, ani_char value)
8840     {
8841         return c_api->TupleValue_SetItem_Char(this, tuple_value, index, value);
8842     }
TupleValue_SetItem_Byte__ani_env8843     ani_status TupleValue_SetItem_Byte(ani_tuple_value tuple_value, ani_size index, ani_byte value)
8844     {
8845         return c_api->TupleValue_SetItem_Byte(this, tuple_value, index, value);
8846     }
TupleValue_SetItem_Short__ani_env8847     ani_status TupleValue_SetItem_Short(ani_tuple_value tuple_value, ani_size index, ani_short value)
8848     {
8849         return c_api->TupleValue_SetItem_Short(this, tuple_value, index, value);
8850     }
TupleValue_SetItem_Int__ani_env8851     ani_status TupleValue_SetItem_Int(ani_tuple_value tuple_value, ani_size index, ani_int value)
8852     {
8853         return c_api->TupleValue_SetItem_Int(this, tuple_value, index, value);
8854     }
TupleValue_SetItem_Long__ani_env8855     ani_status TupleValue_SetItem_Long(ani_tuple_value tuple_value, ani_size index, ani_long value)
8856     {
8857         return c_api->TupleValue_SetItem_Long(this, tuple_value, index, value);
8858     }
TupleValue_SetItem_Float__ani_env8859     ani_status TupleValue_SetItem_Float(ani_tuple_value tuple_value, ani_size index, ani_float value)
8860     {
8861         return c_api->TupleValue_SetItem_Float(this, tuple_value, index, value);
8862     }
TupleValue_SetItem_Double__ani_env8863     ani_status TupleValue_SetItem_Double(ani_tuple_value tuple_value, ani_size index, ani_double value)
8864     {
8865         return c_api->TupleValue_SetItem_Double(this, tuple_value, index, value);
8866     }
TupleValue_SetItem_Ref__ani_env8867     ani_status TupleValue_SetItem_Ref(ani_tuple_value tuple_value, ani_size index, ani_ref value)
8868     {
8869         return c_api->TupleValue_SetItem_Ref(this, tuple_value, index, value);
8870     }
GlobalReference_Create__ani_env8871     ani_status GlobalReference_Create(ani_ref ref, ani_gref *result)
8872     {
8873         return c_api->GlobalReference_Create(this, ref, result);
8874     }
GlobalReference_Delete__ani_env8875     ani_status GlobalReference_Delete(ani_gref ref)
8876     {
8877         return c_api->GlobalReference_Delete(this, ref);
8878     }
WeakReference_Create__ani_env8879     ani_status WeakReference_Create(ani_ref ref, ani_wref *result)
8880     {
8881         return c_api->WeakReference_Create(this, ref, result);
8882     }
WeakReference_Delete__ani_env8883     ani_status WeakReference_Delete(ani_wref wref)
8884     {
8885         return c_api->WeakReference_Delete(this, wref);
8886     }
WeakReference_GetReference__ani_env8887     ani_status WeakReference_GetReference(ani_wref wref, ani_ref *result)
8888     {
8889         return c_api->WeakReference_GetReference(this, wref, result);
8890     }
CreateArrayBuffer__ani_env8891     ani_status CreateArrayBuffer(size_t length, void **data_result, ani_arraybuffer *arraybuffer_result)
8892     {
8893         return c_api->CreateArrayBuffer(this, length, data_result, arraybuffer_result);
8894     }
CreateArrayBufferExternal__ani_env8895     ani_status CreateArrayBufferExternal(void *external_data, size_t length, ani_finalizer finalizer, void *hint,
8896                                          ani_arraybuffer *result)
8897     {
8898         return c_api->CreateArrayBufferExternal(this, external_data, length, finalizer, hint, result);
8899     }
ArrayBuffer_GetInfo__ani_env8900     ani_status ArrayBuffer_GetInfo(ani_arraybuffer arraybuffer, void **data_result, size_t *length_result)
8901     {
8902         return c_api->ArrayBuffer_GetInfo(this, arraybuffer, data_result, length_result);
8903     }
Reflection_FromMethod__ani_env8904     ani_status Reflection_FromMethod(ani_object method, ani_method *result)
8905     {
8906         return c_api->Reflection_FromMethod(this, method, result);
8907     }
Reflection_ToMethod__ani_env8908     ani_status Reflection_ToMethod(ani_class cls, ani_method method, ani_object *result)
8909     {
8910         return c_api->Reflection_ToMethod(this, cls, method, result);
8911     }
Reflection_FromField__ani_env8912     ani_status Reflection_FromField(ani_object field, ani_field *result)
8913     {
8914         return c_api->Reflection_FromField(this, field, result);
8915     }
Reflection_ToField__ani_env8916     ani_status Reflection_ToField(ani_class cls, ani_field field, ani_object *result)
8917     {
8918         return c_api->Reflection_ToField(this, cls, field, result);
8919     }
Reflection_FromStaticMethod__ani_env8920     ani_status Reflection_FromStaticMethod(ani_object method, ani_static_method *result)
8921     {
8922         return c_api->Reflection_FromStaticMethod(this, method, result);
8923     }
Reflection_ToStaticMethod__ani_env8924     ani_status Reflection_ToStaticMethod(ani_class cls, ani_static_method method, ani_object *result)
8925     {
8926         return c_api->Reflection_ToStaticMethod(this, cls, method, result);
8927     }
Reflection_FromStaticField__ani_env8928     ani_status Reflection_FromStaticField(ani_object field, ani_static_field *result)
8929     {
8930         return c_api->Reflection_FromStaticField(this, field, result);
8931     }
Reflection_ToStaticField__ani_env8932     ani_status Reflection_ToStaticField(ani_class cls, ani_static_field field, ani_object *result)
8933     {
8934         return c_api->Reflection_ToStaticField(this, cls, field, result);
8935     }
Reflection_FromFunction__ani_env8936     ani_status Reflection_FromFunction(ani_object function, ani_function *result)
8937     {
8938         return c_api->Reflection_FromFunction(this, function, result);
8939     }
Reflection_ToFunction__ani_env8940     ani_status Reflection_ToFunction(ani_function function, ani_object *result)
8941     {
8942         return c_api->Reflection_ToFunction(this, function, result);
8943     }
Reflection_FromVariable__ani_env8944     ani_status Reflection_FromVariable(ani_object variable, ani_variable *result)
8945     {
8946         return c_api->Reflection_FromVariable(this, variable, result);
8947     }
Reflection_ToVariable__ani_env8948     ani_status Reflection_ToVariable(ani_variable variable, ani_object *result)
8949     {
8950         return c_api->Reflection_ToVariable(this, variable, result);
8951     }
CLS_Register__ani_env8952     ani_status CLS_Register(void *initial_data, ani_finalizer finalizer, void *hint, ani_cls_slot *result)
8953     {
8954         return c_api->CLS_Register(this, initial_data, finalizer, hint, result);
8955     }
CLS_Unregister__ani_env8956     ani_status CLS_Unregister(ani_cls_slot slot)
8957     {
8958         return c_api->CLS_Unregister(this, slot);
8959     }
CLS_SetData__ani_env8960     ani_status CLS_SetData(ani_cls_slot slot, void *data)
8961     {
8962         return c_api->CLS_SetData(this, slot, data);
8963     }
CLS_GetData__ani_env8964     ani_status CLS_GetData(ani_cls_slot slot, void **result)
8965     {
8966         return c_api->CLS_GetData(this, slot, result);
8967     }
Coroutine_LaunchFunctionalObject__ani_env8968     ani_status Coroutine_LaunchFunctionalObject(ani_fn_object fn, ani_size argc, ani_ref *argv, ani_promise *result)
8969     {
8970         return c_api->Coroutine_LaunchFunctionalObject(this, fn, argc, argv, result);
8971     }
Coroutine_LaunchFunction__ani_env8972     ani_status Coroutine_LaunchFunction(ani_function function, ani_promise *result, ...)
8973     {
8974         va_list args;
8975         va_start(args, result);
8976         ani_status status = c_api->Coroutine_LaunchFunction_V(this, function, result, args);
8977         va_end(args);
8978         return status;
8979     }
Coroutine_LaunchFunction_A__ani_env8980     ani_status Coroutine_LaunchFunction_A(ani_function function, ani_promise *result, const ani_value *args)
8981     {
8982         return c_api->Coroutine_LaunchFunction_A(this, function, result, args);
8983     }
Coroutine_LaunchFunction_V__ani_env8984     ani_status Coroutine_LaunchFunction_V(ani_function function, ani_promise *result, va_list args)
8985     {
8986         return c_api->Coroutine_LaunchFunction_V(this, function, result, args);
8987     }
Coroutine_LaunchMethod__ani_env8988     ani_status Coroutine_LaunchMethod(ani_object self, ani_function function, ani_promise *result, ...)
8989     {
8990         va_list args;
8991         va_start(args, result);
8992         ani_status status = c_api->Coroutine_LaunchMethod_V(this, self, function, result, args);
8993         va_end(args);
8994         return status;
8995     }
Coroutine_LaunchMethod_A__ani_env8996     ani_status Coroutine_LaunchMethod_A(ani_object self, ani_function function, ani_promise *result,
8997                                         const ani_value *args)
8998     {
8999         return c_api->Coroutine_LaunchMethod_A(this, self, function, result, args);
9000     }
Coroutine_LaunchMethod_V__ani_env9001     ani_status Coroutine_LaunchMethod_V(ani_object self, ani_function function, ani_promise *result, va_list args)
9002     {
9003         return c_api->Coroutine_LaunchMethod_V(this, self, function, result, args);
9004     }
Coroutine_LaunchStaticMethod__ani_env9005     ani_status Coroutine_LaunchStaticMethod(ani_class cls, ani_function function, ani_promise *result, ...)
9006     {
9007         va_list args;
9008         va_start(args, result);
9009         ani_status status = c_api->Coroutine_LaunchStaticMethod_V(this, cls, function, result, args);
9010         va_end(args);
9011         return status;
9012     }
Coroutine_LaunchStaticMethod_A__ani_env9013     ani_status Coroutine_LaunchStaticMethod_A(ani_class cls, ani_function function, ani_promise *result,
9014                                               const ani_value *args)
9015     {
9016         return c_api->Coroutine_LaunchStaticMethod_A(this, cls, function, result, args);
9017     }
Coroutine_LaunchStaticMethod_V__ani_env9018     ani_status Coroutine_LaunchStaticMethod_V(ani_class cls, ani_function function, ani_promise *result, va_list args)
9019     {
9020         return c_api->Coroutine_LaunchStaticMethod_V(this, cls, function, result, args);
9021     }
Coroutine_Await_Boolean__ani_env9022     ani_status Coroutine_Await_Boolean(ani_promise promise, ani_boolean value)
9023     {
9024         return c_api->Coroutine_Await_Boolean(this, promise, value);
9025     }
Coroutine_Await_Char__ani_env9026     ani_status Coroutine_Await_Char(ani_promise promise, ani_char value)
9027     {
9028         return c_api->Coroutine_Await_Char(this, promise, value);
9029     }
Coroutine_Await_Byte__ani_env9030     ani_status Coroutine_Await_Byte(ani_promise promise, ani_byte value)
9031     {
9032         return c_api->Coroutine_Await_Byte(this, promise, value);
9033     }
Coroutine_Await_Short__ani_env9034     ani_status Coroutine_Await_Short(ani_promise promise, ani_short value)
9035     {
9036         return c_api->Coroutine_Await_Short(this, promise, value);
9037     }
Coroutine_Await_Int__ani_env9038     ani_status Coroutine_Await_Int(ani_promise promise, ani_int value)
9039     {
9040         return c_api->Coroutine_Await_Int(this, promise, value);
9041     }
Coroutine_Await_Long__ani_env9042     ani_status Coroutine_Await_Long(ani_promise promise, ani_long value)
9043     {
9044         return c_api->Coroutine_Await_Long(this, promise, value);
9045     }
Coroutine_Await_Float__ani_env9046     ani_status Coroutine_Await_Float(ani_promise promise, ani_float value)
9047     {
9048         return c_api->Coroutine_Await_Float(this, promise, value);
9049     }
Coroutine_Await_Double__ani_env9050     ani_status Coroutine_Await_Double(ani_promise promise, ani_double value)
9051     {
9052         return c_api->Coroutine_Await_Double(this, promise, value);
9053     }
Coroutine_Await_Ref__ani_env9054     ani_status Coroutine_Await_Ref(ani_promise promise, ani_ref value)
9055     {
9056         return c_api->Coroutine_Await_Ref(this, promise, value);
9057     }
9058 #endif  // __cplusplus
9059 };
9060 
9061 // NOLINTEND
9062 #endif  // __ANI_H__
9063