• 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 // Logger interface:
36 //   typedef void (*ani_logger)(FILE *stream, int log_level, const char *component, const char *message);
37 //   ani_option:
38 //     'option': "--logger"
39 //     'extra': ani_logger
40 //   where 'log_level' can have the following values:
41 #define ANI_LOGLEVEL_FATAL 0
42 #define ANI_LOGLEVEL_ERROR 1
43 #define ANI_LOGLEVEL_WARNING 2
44 #define ANI_LOGLEVEL_INFO 3
45 #define ANI_LOGLEVEL_DEBUG 4
46 
47 typedef size_t ani_size;
48 
49 // Primitive types:
50 typedef uint8_t ani_boolean;
51 typedef uint16_t ani_char;
52 typedef int8_t ani_byte;
53 typedef int16_t ani_short;
54 typedef int32_t ani_int;
55 typedef int64_t ani_long;
56 typedef float ani_float;
57 typedef double ani_double;
58 
59 // Reference types:
60 #ifdef __cplusplus
61 class __ani_ref {};
62 class __ani_module : public __ani_ref {};
63 class __ani_namespace : public __ani_ref {};
64 class __ani_object : public __ani_ref {};
65 class __ani_fn_object : public __ani_object {};
66 class __ani_enum_item : public __ani_object {};
67 class __ani_error : public __ani_object {};
68 class __ani_tuple_value : public __ani_object {};
69 class __ani_type : public __ani_object {};
70 class __ani_arraybuffer : public __ani_object {};
71 class __ani_string : public __ani_object {};
72 class __ani_class : public __ani_type {};
73 class __ani_enum : public __ani_type {};
74 class __ani_union : public __ani_type {};
75 class __ani_array : public __ani_object {};
76 class __ani_array_boolean : public __ani_array {};
77 class __ani_array_char : public __ani_array {};
78 class __ani_array_byte : public __ani_array {};
79 class __ani_array_short : public __ani_array {};
80 class __ani_array_int : public __ani_array {};
81 class __ani_array_long : public __ani_array {};
82 class __ani_array_float : public __ani_array {};
83 class __ani_array_double : public __ani_array {};
84 class __ani_array_ref : public __ani_array {};
85 typedef __ani_ref *ani_ref;
86 typedef __ani_module *ani_module;
87 typedef __ani_namespace *ani_namespace;
88 typedef __ani_object *ani_object;
89 typedef __ani_fn_object *ani_fn_object;
90 typedef __ani_enum_item *ani_enum_item;
91 typedef __ani_error *ani_error;
92 typedef __ani_tuple_value *ani_tuple_value;
93 typedef __ani_type *ani_type;
94 typedef __ani_arraybuffer *ani_arraybuffer;
95 typedef __ani_string *ani_string;
96 typedef __ani_class *ani_class;
97 typedef __ani_enum *ani_enum;
98 typedef __ani_union *ani_union;
99 typedef __ani_array *ani_array;
100 typedef __ani_array_boolean *ani_array_boolean;
101 typedef __ani_array_char *ani_array_char;
102 typedef __ani_array_byte *ani_array_byte;
103 typedef __ani_array_short *ani_array_short;
104 typedef __ani_array_int *ani_array_int;
105 typedef __ani_array_long *ani_array_long;
106 typedef __ani_array_float *ani_array_float;
107 typedef __ani_array_double *ani_array_double;
108 typedef __ani_array_ref *ani_array_ref;
109 #else   // __cplusplus
110 struct __ani_ref;
111 typedef struct __ani_ref *ani_ref;
112 typedef ani_ref ani_module;
113 typedef ani_ref ani_namespace;
114 typedef ani_ref ani_object;
115 typedef ani_object ani_fn_object;
116 typedef ani_object ani_enum_item;
117 typedef ani_object ani_error;
118 typedef ani_object ani_tuple_value;
119 typedef ani_object ani_type;
120 typedef ani_object ani_arraybuffer;
121 typedef ani_object ani_string;
122 typedef ani_type ani_class;
123 typedef ani_type ani_enum;
124 typedef ani_type ani_union;
125 typedef ani_object ani_array;
126 typedef ani_array ani_array_boolean;
127 typedef ani_array ani_array_char;
128 typedef ani_array ani_array_byte;
129 typedef ani_array ani_array_short;
130 typedef ani_array ani_array_int;
131 typedef ani_array ani_array_long;
132 typedef ani_array ani_array_float;
133 typedef ani_array ani_array_double;
134 typedef ani_array ani_array_ref;
135 #endif  // __cplusplus
136 
137 struct __ani_wref;
138 typedef struct __ani_wref *ani_wref;
139 
140 struct __ani_variable;
141 typedef struct __ani_variable *ani_variable;
142 
143 struct __ani_function;
144 typedef struct __ani_function *ani_function;
145 
146 struct __ani_field;
147 typedef struct __ani_field *ani_field;
148 
149 struct __ani_static_field;
150 typedef struct __ani_satic_field *ani_static_field;
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_resolver;
159 typedef struct __ani_resolver *ani_resolver;
160 
161 typedef void (*ani_finalizer)(void *data, void *hint);
162 
163 typedef union {
164     ani_boolean z;
165     ani_char c;
166     ani_byte b;
167     ani_short s;
168     ani_int i;
169     ani_long l;
170     ani_float f;
171     ani_double d;
172     ani_ref r;
173 } ani_value;
174 
175 typedef struct {
176     const char *name;
177     const char *signature;
178     const void *pointer;
179 } ani_native_function;
180 
181 #ifdef __cplusplus
182 typedef struct __ani_vm ani_vm;
183 typedef struct __ani_env ani_env;
184 #else
185 typedef const struct __ani_vm_api *ani_vm;
186 typedef const struct __ani_interaction_api *ani_env;
187 #endif
188 
189 typedef enum {
190     ANI_OK,
191     ANI_ERROR,
192     ANI_INVALID_ARGS,
193     ANI_INVALID_TYPE,
194     ANI_INVALID_DESCRIPTOR,
195     ANI_INCORRECT_REF,
196     ANI_PENDING_ERROR,
197     ANI_NOT_FOUND,
198     ANI_ALREADY_BINDED,
199     ANI_OUT_OF_REF,
200     ANI_OUT_OF_MEMORY,
201     ANI_OUT_OF_RANGE,
202     ANI_BUFFER_TO_SMALL,
203     ANI_INVALID_VERSION,
204     ANI_AMBIGUOUS,
205     // NOTE: Add necessary status codes
206 } ani_status;
207 
208 typedef struct {
209     const char *option;
210     void *extra;
211 } ani_option;
212 
213 typedef struct {
214     size_t nr_options;
215     const ani_option *options;
216 } ani_options;
217 
218 struct __ani_vm_api {
219     void *reserved0;
220     void *reserved1;
221     void *reserved2;
222     void *reserved3;
223 
224     ani_status (*DestroyVM)(ani_vm *vm);
225     ani_status (*GetEnv)(ani_vm *vm, uint32_t version, ani_env **result);
226     ani_status (*AttachCurrentThread)(ani_vm *vm, const ani_options *options, uint32_t version, ani_env **result);
227     ani_status (*DetachCurrentThread)(ani_vm *vm);
228 };
229 
230 #define ANI_EXPORT __attribute__((visibility("default")))
231 
232 #ifdef __cplusplus
233 extern "C" {
234 #endif
235 
236 ANI_EXPORT ani_status ANI_CreateVM(const ani_options *options, uint32_t version, ani_vm **result);
237 ANI_EXPORT ani_status ANI_GetCreatedVMs(ani_vm **vms_buffer, ani_size vms_buffer_length, ani_size *result);
238 
239 // Prototypes of exported functions for a shared library.
240 ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result);
241 ANI_EXPORT ani_status ANI_Destructor(ani_vm *vm);
242 
243 #ifdef __cplusplus
244 }
245 #endif
246 
247 struct __ani_interaction_api {
248     void *reserved0;
249     void *reserved1;
250     void *reserved2;
251     void *reserved3;
252 
253     /**
254      * @brief Retrieves the version information.
255      *
256      * This function retrieves the version information and stores it in the result parameter.
257      *
258      * @param[in] env A pointer to the environment structure.
259      * @param[out] result A pointer to a variable where the version information will be stored.
260      * @return Returns a status code of type `ani_status` indicating success or failure.
261      */
262     ani_status (*GetVersion)(ani_env *env, uint32_t *result);
263 
264     /**
265      * @brief Retrieves the Virtual Machine (VM) instance.
266      *
267      * This function retrieves the VM instance and stores it in the result parameter.
268      *
269      * @param[in] env A pointer to the environment structure.
270      * @param[out] result A pointer to the VM instance to be populated.
271      * @return Returns a status code of type `ani_status` indicating success or failure.
272      */
273     ani_status (*GetVM)(ani_env *env, ani_vm **result);
274 
275     /**
276      * @brief Creates a new object of a specified class using a constructor method.
277      *
278      * This function creates a new object of the given class and calls the specified constructor method with variadic
279      * arguments.
280      *
281      * @param[in] env A pointer to the environment structure.
282      * @param[in] cls The class of the object to create.
283      * @param[in] method The constructor method to invoke.
284      * @param[in] ... Variadic arguments to pass to the constructor method.
285      * @param[out] result A pointer to store the object return value.
286      * @return Returns a status code of type `ani_status` indicating success or failure.
287      */
288     ani_status (*Object_New)(ani_env *env, ani_class cls, ani_method method, ani_object *result, ...);
289 
290     /**
291      * @brief Creates a new object of a specified class using a constructor method (array-based).
292      *
293      * This function creates a new object of the given class and calls the specified constructor method with arguments
294      * provided in an array.
295      *
296      * @param[in] env A pointer to the environment structure.
297      * @param[in] cls The class of the object to create.
298      * @param[in] method The constructor method to invoke.
299      * @param[in] args An array of arguments to pass to the constructor method.
300      * @param[out] result A pointer to store the object return value.
301      * @return Returns a status code of type `ani_status` indicating success or failure.
302      */
303     ani_status (*Object_New_A)(ani_env *env, ani_class cls, ani_method method, ani_object *result,
304                                const ani_value *args);
305 
306     /**
307      * @brief Creates a new object of a specified class using a constructor method (variadic arguments).
308      *
309      * This function creates a new object of the given class and calls the specified constructor method with a `va_list`
310      * of arguments.
311      *
312      * @param[in] env A pointer to the environment structure.
313      * @param[in] cls The class of the object to create.
314      * @param[in] method The constructor method to invoke.
315      * @param[in] args A `va_list` of arguments to pass to the constructor method.
316      * @param[out] result A pointer to store the object return value.
317      * @return Returns a status code of type `ani_status` indicating success or failure.
318      */
319     ani_status (*Object_New_V)(ani_env *env, ani_class cls, ani_method method, ani_object *result, va_list args);
320 
321     /**
322      * @brief Retrieves the type of a given object.
323      *
324      * This function retrieves the type of the specified object.
325      *
326      * @param[in] env A pointer to the environment structure.
327      * @param[in] object The object whose type is to be retrieved.
328      * @param[out] result A pointer to store the retrieved type.
329      * @return Returns a status code of type `ani_status` indicating success or failure.
330      */
331     ani_status (*Object_GetType)(ani_env *env, ani_object object, ani_type *result);
332 
333     /**
334      * @brief Checks if an object is an instance of a specified type.
335      *
336      * This function checks whether the given object is an instance of the specified type.
337      *
338      * @param[in] env A pointer to the environment structure.
339      * @param[in] object The object to check.
340      * @param[in] type The type to compare against.
341      * @param[out] result A pointer to store the boolean result (true if the object is an instance of the type, false
342      * otherwise).
343      * @return Returns a status code of type `ani_status` indicating success or failure.
344      */
345     ani_status (*Object_InstanceOf)(ani_env *env, ani_object object, ani_type type, ani_boolean *result);
346 
347     /**
348      * @brief Retrieves the superclass of a specified type.
349      *
350      * This function retrieves the superclass of a given type and stores it in the result parameter.
351      *
352      * @param[in] env A pointer to the environment structure.
353      * @param[in] type The type for which to retrieve the superclass.
354      * @param[out] result A pointer to the superclass to be populated.
355      * @return Returns a status code of type `ani_status` indicating success or failure.
356      */
357     ani_status (*Type_GetSuperClass)(ani_env *env, ani_type type, ani_class *result);
358 
359     /**
360      * @brief Determines if one type is assignable from another.
361      *
362      * This function checks if a type is assignable from another and stores the result in the output parameter.
363      *
364      * @param[in] env A pointer to the environment structure.
365      * @param[in] from_type The source type.
366      * @param[in] to_type The target type.
367      * @param[out] result A pointer to a boolean indicating assignability.
368      * @return Returns a status code of type `ani_status` indicating success or failure.
369      */
370     ani_status (*Type_IsAssignableFrom)(ani_env *env, ani_type from_type, ani_type to_type, ani_boolean *result);
371 
372     /**
373      * @brief Finds a module by its descriptor.
374      *
375      * This function locates a module based on its descriptor and stores it in the result parameter.
376      *
377      * @param[in] env A pointer to the environment structure.
378      * @param[in] module_descriptor The descriptor of the module to find.
379      * @param[out] result A pointer to the module to be populated.
380      * @return Returns a status code of type `ani_status` indicating success or failure.
381      */
382     ani_status (*FindModule)(ani_env *env, const char *module_descriptor, ani_module *result);
383 
384     /**
385      * @brief Finds a namespace by its descriptor.
386      *
387      * This function locates a namespace based on its descriptor and stores it in the result parameter.
388      *
389      * @param[in] env A pointer to the environment structure.
390      * @param[in] namespace_descriptor The descriptor of the namespace to find.
391      * @param[out] result A pointer to the namespace to be populated.
392      * @return Returns a status code of type `ani_status` indicating success or failure.
393      */
394     ani_status (*FindNamespace)(ani_env *env, const char *namespace_descriptor, ani_namespace *result);
395 
396     /**
397      * @brief Finds a class by its descriptor.
398      *
399      * This function locates a class based on its descriptor and stores it in the result parameter.
400      *
401      * @param[in] env A pointer to the environment structure.
402      * @param[in] class_descriptor The descriptor of the class to find.
403      * @param[out] result A pointer to the class to be populated.
404      * @return Returns a status code of type `ani_status` indicating success or failure.
405      */
406     ani_status (*FindClass)(ani_env *env, const char *class_descriptor, ani_class *result);
407 
408     /**
409      * @brief Finds an enum by its descriptor.
410      *
411      * This function locates an enum based on its descriptor and stores it in the result parameter.
412      *
413      * @param[in] env A pointer to the environment structure.
414      * @param[in] enum_descriptor The descriptor of the enum to find.
415      * @param[out] result A pointer to the enum to be populated.
416      * @return Returns a status code of type `ani_status` indicating success or failure.
417      */
418     ani_status (*FindEnum)(ani_env *env, const char *enum_descriptor, ani_enum *result);
419 
420     /**
421      * @brief Finds a namespace within a module by its descriptor.
422      *
423      * This function locates a namespace within the specified module based on its descriptor.
424      *
425      * @param[in] env A pointer to the environment structure.
426      * @param[in] module The module to search within.
427      * @param[in] namespace_descriptor The descriptor of the namespace to find.
428      * @param[out] result A pointer to the namespace object.
429      * @return Returns a status code of type `ani_status` indicating success or failure.
430      */
431     ani_status (*Module_FindNamespace)(ani_env *env, ani_module module, const char *namespace_descriptor,
432                                        ani_namespace *result);
433 
434     /**
435      * @brief Finds a class within a module by its descriptor.
436      *
437      * This function locates a class within the specified module based on its descriptor.
438      *
439      * @param[in] env A pointer to the environment structure.
440      * @param[in] module The module to search within.
441      * @param[in] class_descriptor The descriptor of the class to find.
442      * @param[out] result A pointer to the class object.
443      * @return Returns a status code of type `ani_status` indicating success or failure.
444      */
445     ani_status (*Module_FindClass)(ani_env *env, ani_module module, const char *class_descriptor, ani_class *result);
446 
447     /**
448      * @brief Finds an enum within a module by its descriptor.
449      *
450      * This function locates an enum within the specified module based on its descriptor.
451      *
452      * @param[in] env A pointer to the environment structure.
453      * @param[in] module The module to search within.
454      * @param[in] enum_descriptor The descriptor of the enum to find.
455      * @param[out] result A pointer to the enum object.
456      * @return Returns a status code of type `ani_status` indicating success or failure.
457      */
458     ani_status (*Module_FindEnum)(ani_env *env, ani_module module, const char *enum_descriptor, ani_enum *result);
459 
460     /**
461      * @brief Finds a function within a module by its name and signature.
462      *
463      * This function locates a function within the specified module based on its name and signature.
464      *
465      * @param[in] env A pointer to the environment structure.
466      * @param[in] module The module to search within.
467      * @param[in] name The name of the function to find.
468      * @param[in] signature The signature of the function to find.
469      * @param[out] result A pointer to the function object.
470      * @return Returns a status code of type `ani_status` indicating success or failure.
471      */
472     ani_status (*Module_FindFunction)(ani_env *env, ani_module module, const char *name, const char *signature,
473                                       ani_function *result);
474 
475     /**
476      * @brief Finds a variable within a module by its name.
477      *
478      * This function locates a variable within the specified module based on its name.
479      *
480      * @param[in] env A pointer to the environment structure.
481      * @param[in] module The module to search within.
482      * @param[in] name The name of the variable to find.
483      * @param[out] result A pointer to the variable object.
484      * @return Returns a status code of type `ani_status` indicating success or failure.
485      */
486     ani_status (*Module_FindVariable)(ani_env *env, ani_module module, const char *name, ani_variable *result);
487 
488     /**
489      * @brief Finds a namespace within another namespace by its descriptor.
490      *
491      * This function locates a namespace within the specified parent namespace based on its descriptor.
492      *
493      * @param[in] env A pointer to the environment structure.
494      * @param[in] ns The parent namespace to search within.
495      * @param[in] namespace_descriptor The descriptor of the namespace to find.
496      * @param[out] result A pointer to the namespace object.
497      * @return Returns a status code of type `ani_status` indicating success or failure.
498      */
499     ani_status (*Namespace_FindNamespace)(ani_env *env, ani_namespace ns, const char *namespace_descriptor,
500                                           ani_namespace *result);
501 
502     /**
503      * @brief Finds a class within a namespace by its descriptor.
504      *
505      * This function locates a class within the specified namespace based on its descriptor.
506      *
507      * @param[in] env A pointer to the environment structure.
508      * @param[in] ns The namespace to search within.
509      * @param[in] class_descriptor The descriptor of the class to find.
510      * @param[out] result A pointer to the class object.
511      * @return Returns a status code of type `ani_status` indicating success or failure.
512      */
513     ani_status (*Namespace_FindClass)(ani_env *env, ani_namespace ns, const char *class_descriptor, ani_class *result);
514 
515     /**
516      * @brief Finds an enum within a namespace by its descriptor.
517      *
518      * This function locates an enum within the specified namespace based on its descriptor.
519      *
520      * @param[in] env A pointer to the environment structure.
521      * @param[in] ns The namespace to search within.
522      * @param[in] enum_descriptor The descriptor of the enum to find.
523      * @param[out] result A pointer to the enum object.
524      * @return Returns a status code of type `ani_status` indicating success or failure.
525      */
526     ani_status (*Namespace_FindEnum)(ani_env *env, ani_namespace ns, const char *enum_descriptor, ani_enum *result);
527 
528     /**
529      * @brief Finds a function within a namespace by its name and signature.
530      *
531      * This function locates a function within the specified namespace based on its name and signature.
532      *
533      * @param[in] env A pointer to the environment structure.
534      * @param[in] ns The namespace to search within.
535      * @param[in] name The name of the function to find.
536      * @param[in] signature The signature of the function to find.
537      * @param[out] result A pointer to the function object.
538      * @return Returns a status code of type `ani_status` indicating success or failure.
539      */
540     ani_status (*Namespace_FindFunction)(ani_env *env, ani_namespace ns, const char *name, const char *signature,
541                                          ani_function *result);
542 
543     /**
544      * @brief Finds a variable within a namespace by its name.
545      *
546      * This function locates a variable within the specified namespace based on its name.
547      *
548      * @param[in] env A pointer to the environment structure.
549      * @param[in] ns The namespace to search within.
550      * @param[in] name The name of the variable to find.
551      * @param[out] result A pointer to the variable object.
552      * @return Returns a status code of type `ani_status` indicating success or failure.
553      */
554     ani_status (*Namespace_FindVariable)(ani_env *env, ani_namespace ns, const char *name, ani_variable *result);
555 
556     /**
557      * @brief Binds native functions to a module.
558      *
559      * This function binds an array of native functions to the specified module.
560      *
561      * @param[in] env A pointer to the environment structure.
562      * @param[in] module The module to which the native functions will be bound.
563      * @param[in] functions A pointer to an array of native functions to bind.
564      * @param[in] nr_functions The number of native functions in the array.
565      * @return Returns a status code of type `ani_status` indicating success or failure.
566      */
567     ani_status (*Module_BindNativeFunctions)(ani_env *env, ani_module module, const ani_native_function *functions,
568                                              ani_size nr_functions);
569 
570     /**
571      * @brief Binds native functions to a namespace.
572      *
573      * This function binds an array of native functions to the specified namespace.
574      *
575      * @param[in] env A pointer to the environment structure.
576      * @param[in] ns The namespace to which the native functions will be bound.
577      * @param[in] functions A pointer to an array of native functions to bind.
578      * @param[in] nr_functions The number of native functions in the array.
579      * @return Returns a status code of type `ani_status` indicating success or failure.
580      */
581     ani_status (*Namespace_BindNativeFunctions)(ani_env *env, ani_namespace ns, const ani_native_function *functions,
582                                                 ani_size nr_functions);
583 
584     /**
585      * @brief Binds native methods to a class.
586      *
587      * This function binds an array of native methods to the specified class.
588      *
589      * @param[in] env A pointer to the environment structure.
590      * @param[in] cls The class to which the native methods will be bound.
591      * @param[in] methods A pointer to an array of native methods to bind.
592      * @param[in] nr_methods The number of native methods in the array.
593      * @return Returns a status code of type `ani_status` indicating success or failure.
594      */
595     ani_status (*Class_BindNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods,
596                                           ani_size nr_methods);
597 
598     /**
599      * @brief Deletes a local reference.
600      *
601      * This function deletes a specified local reference to free up resources.
602      *
603      * @param[in] env A pointer to the environment structure.
604      * @param[in] ref The reference to be deleted.
605      * @return Returns a status code of type `ani_status` indicating success or failure.
606      */
607     ani_status (*Reference_Delete)(ani_env *env, ani_ref ref);
608 
609     /**
610      * @brief Ensures enough local references are available.
611      *
612      * This function checks and ensures that the specified number of local references can be created.
613      *
614      * @param[in] env A pointer to the environment structure.
615      * @param[in] nr_refs The number of local references to ensure availability for.
616      * @return Returns a status code of type `ani_status` indicating success or failure.
617      */
618     ani_status (*EnsureEnoughReferences)(ani_env *env, ani_size nr_refs);
619 
620     /**
621      * @brief Creates a new local scope for references.
622      *
623      * This function creates a local scope for references with a specified capacity.
624      *
625      * @param[in] env A pointer to the environment structure.
626      * @param[in] nr_refs The maximum number of references that can be created in this scope.
627      * @return Returns a status code of type `ani_status` indicating success or failure.
628      */
629     ani_status (*CreateLocalScope)(ani_env *env, ani_size nr_refs);
630 
631     /**
632      * @brief Destroys the current local scope.
633      *
634      * This function destroys the current local scope and frees all references within it.
635      *
636      * @param[in] env A pointer to the environment structure.
637      * @return Returns a status code of type `ani_status` indicating success or failure.
638      */
639     ani_status (*DestroyLocalScope)(ani_env *env);
640 
641     /**
642      * @brief Creates a new escape local scope.
643      *
644      * This function creates a local scope for references with escape functionality, allowing objects to escape this
645      * scope.
646      *
647      * @param[in] env A pointer to the environment structure.
648      * @param[in] nr_refs The maximum number of references that can be created in this scope.
649      * @return Returns a status code of type `ani_status` indicating success or failure.
650      */
651     ani_status (*CreateEscapeLocalScope)(ani_env *env, ani_size nr_refs);
652 
653     /**
654      * @brief Destroys the current escape local scope.
655      *
656      * This function destroys the current escape local scope and allows escaping references to be retrieved.
657      *
658      * @param[in] env A pointer to the environment structure.
659      * @param[in] ref The reference to be escaped from the current scope.
660      * @param[out] result A pointer to the resulting reference that has escaped the scope.
661      * @return Returns a status code of type `ani_status` indicating success or failure.
662      */
663     ani_status (*DestroyEscapeLocalScope)(ani_env *env, ani_ref ref, ani_ref *result);
664 
665     /**
666      * @brief Throws an error.
667      *
668      * This function throws the specified error in the current environment.
669      *
670      * @param[in] env A pointer to the environment structure.
671      * @param[in] err The error to throw.
672      * @return Returns a status code of type `ani_status` indicating success or failure.
673      */
674     ani_status (*ThrowError)(ani_env *env, ani_error err);
675 
676     /**
677      * @brief Checks if there are unhandled errors.
678      *
679      * This function determines if there are unhandled errors in the current environment.
680      *
681      * @param[in] env A pointer to the environment structure.
682      * @param[out] result A pointer to a boolean indicating if unhandled errors exist.
683      * @return Returns a status code of type `ani_status` indicating success or failure.
684      */
685     ani_status (*ExistUnhandledError)(ani_env *env, ani_boolean *result);
686 
687     /**
688      * @brief Retrieves the current unhandled error.
689      *
690      * This function fetches the unhandled error in the environment.
691      *
692      * @param[in] env A pointer to the environment structure.
693      * @param[out] result A pointer to store the unhandled error.
694      * @return Returns a status code of type `ani_status` indicating success or failure.
695      */
696     ani_status (*GetUnhandledError)(ani_env *env, ani_error *result);
697 
698     /**
699      * @brief Resets the current error state.
700      *
701      * This function clears the error state in the current environment.
702      *
703      * @param[in] env A pointer to the environment structure.
704      * @return Returns a status code of type `ani_status` indicating success or failure.
705      */
706     ani_status (*ResetError)(ani_env *env);
707 
708     /**
709      * @brief Provides a description of the current error.
710      *
711      * This function prints the stack trace or other debug information for the current error.
712      *
713      * @param[in] env A pointer to the environment structure.
714      * @return Returns a status code of type `ani_status` indicating success or failure.
715      */
716     ani_status (*DescribeError)(ani_env *env);  // NOTE: Print stacktrace for debugging?
717 
718     /**
719      * @brief Aborts execution with a message.
720      *
721      * This function terminates execution with the specified error message.
722      *
723      * @param[in] env A pointer to the environment structure.
724      * @param[in] message The error message to display on termination.
725      * @return Does not return; the process terminates.
726      */
727     ani_status (*Abort)(ani_env *env, const char *message);
728 
729     /**
730      * @brief Retrieves a null reference.
731      *
732      * This function provides a null reference in the specified result.
733      *
734      * @param[in] env A pointer to the environment structure.
735      * @param[out] result A pointer to store the null reference.
736      * @return Returns a status code of type `ani_status` indicating success or failure.
737      */
738     ani_status (*GetNull)(ani_env *env, ani_ref *result);
739 
740     /**
741      * @brief Retrieves an undefined reference.
742      *
743      * This function provides an undefined reference in the specified result.
744      *
745      * @param[in] env A pointer to the environment structure.
746      * @param[out] result A pointer to store the undefined reference.
747      * @return Returns a status code of type `ani_status` indicating success or failure.
748      */
749     ani_status (*GetUndefined)(ani_env *env, ani_ref *result);
750 
751     /**
752      * @brief Checks if a reference is null.
753      *
754      * This function determines if the specified reference is null.
755      *
756      * @param[in] env A pointer to the environment structure.
757      * @param[in] ref The reference to check.
758      * @param[out] result A pointer to a boolean indicating if the reference is null.
759      * @return Returns a status code of type `ani_status` indicating success or failure.
760      */
761     ani_status (*Reference_IsNull)(ani_env *env, ani_ref ref, ani_boolean *result);
762 
763     /**
764      * @brief Checks if a reference is undefined.
765      *
766      * This function determines if the specified reference is undefined.
767      *
768      * @param[in] env A pointer to the environment structure.
769      * @param[in] ref The reference to check.
770      * @param[out] result A pointer to a boolean indicating if the reference is undefined.
771      * @return Returns a status code of type `ani_status` indicating success or failure.
772      */
773     ani_status (*Reference_IsUndefined)(ani_env *env, ani_ref ref, ani_boolean *result);
774 
775     /**
776      * @brief Checks if a reference is nullish value (null or undefined).
777      *
778      * This function determines if the specified reference is either null or undefined.
779      *
780      * @param[in] env A pointer to the environment structure.
781      * @param[in] ref The reference to check.
782      * @param[out] result A pointer to a boolean indicating if the reference is nullish value.
783      * @return Returns a status code of type `ani_status` indicating success or failure.
784      */
785     ani_status (*Reference_IsNullishValue)(ani_env *env, ani_ref ref, ani_boolean *result);
786 
787     /**
788      * @brief Compares two references for equality.
789      *
790      * This function checks if two references are equal.
791      *
792      * @param[in] env A pointer to the environment structure.
793      * @param[in] ref0 The first reference to compare.
794      * @param[in] ref1 The second reference to compare.
795      * @param[out] result A pointer to a boolean indicating if the references are equal.
796      * @return Returns a status code of type `ani_status` indicating success or failure.
797      */
798     ani_status (*Reference_Equals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result);
799 
800     /**
801      * @brief Compares two references for strict equality.
802      *
803      * This function checks if two references are strictly equal.
804      *
805      * @param[in] env A pointer to the environment structure.
806      * @param[in] ref0 The first reference to compare.
807      * @param[in] ref1 The second reference to compare.
808      * @param[out] result A pointer to a boolean indicating if the references are strictly equal.
809      * @return Returns a status code of type `ani_status` indicating success or failure.
810      */
811     ani_status (*Reference_StrictEquals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result);
812 
813     /**
814      * @brief Creates a new UTF-16 string.
815      *
816      * This function creates a new string from the provided UTF-16 encoded data.
817      *
818      * @param[in] env A pointer to the environment structure.
819      * @param[in] utf16_string A pointer to the UTF-16 encoded string data.
820      * @param[in] utf16_size The size of the UTF-16 string in code units.
821      * @param[out] result A pointer to store the created string.
822      * @return Returns a status code of type `ani_status` indicating success or failure.
823      */
824     ani_status (*String_NewUTF16)(ani_env *env, const uint16_t *utf16_string, ani_size utf16_size, ani_string *result);
825 
826     /**
827      * @brief Retrieves the size of a UTF-16 string.
828      *
829      * This function retrieves the size (in code units) of the specified UTF-16 string.
830      *
831      * @param[in] env A pointer to the environment structure.
832      * @param[in] string The UTF-16 string to measure.
833      * @param[out] result A pointer to store the size of the string.
834      * @return Returns a status code of type `ani_status` indicating success or failure.
835      */
836     ani_status (*String_GetUTF16Size)(ani_env *env, ani_string string, ani_size *result);
837 
838     /**
839      * @brief Retrieves the UTF-16 encoded data of a string.
840      *
841      * This function copies the UTF-16 encoded data of the string into the provided buffer.
842      *
843      * @param[in] env A pointer to the environment structure.
844      * @param[in] string The string to retrieve data from.
845      * @param[out] utf16_buffer A buffer to store the UTF-16 encoded data.
846      * @param[in] utf16_buffer_size The size of the buffer in code units.
847      * @param[out] result A pointer to store the number of code units written.
848      * @return Returns a status code of type `ani_status` indicating success or failure.
849      */
850     ani_status (*String_GetUTF16)(ani_env *env, ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size,
851                                   ani_size *result);
852 
853     /**
854      * @brief Retrieves a substring of a UTF-16 string.
855      *
856      * This function copies a portion of the UTF-16 string into the provided buffer.
857      *
858      * @param[in] env A pointer to the environment structure.
859      * @param[in] string The string to retrieve data from.
860      * @param[in] substr_offset The starting offset of the substring.
861      * @param[in] substr_size The size of the substring in code units.
862      * @param[out] utf16_buffer A buffer to store the substring.
863      * @param[in] utf16_buffer_size The size of the buffer in code units.
864      * @param[out] result A pointer to store the number of code units written.
865      * @return Returns a status code of type `ani_status` indicating success or failure.
866      */
867     ani_status (*String_GetUTF16SubString)(ani_env *env, ani_string string, ani_size substr_offset,
868                                            ani_size substr_size, uint16_t *utf16_buffer, ani_size utf16_buffer_size,
869                                            ani_size *result);
870 
871     /**
872      * @brief Creates a new UTF-8 string.
873      *
874      * This function creates a new string from the provided UTF-8 encoded data.
875      *
876      * @param[in] env A pointer to the environment structure.
877      * @param[in] utf8_string A pointer to the UTF-8 encoded string data.
878      * @param[in] utf8_size The size of the UTF-8 string in bytes.
879      * @param[out] result A pointer to store the created string.
880      * @return Returns a status code of type `ani_status` indicating success or failure.
881      */
882     ani_status (*String_NewUTF8)(ani_env *env, const char *utf8_string, ani_size utf8_size, ani_string *result);
883 
884     /**
885      * @brief Retrieves the size of a UTF-8 string.
886      *
887      * This function retrieves the size (in bytes) of the specified UTF-8 string.
888      *
889      * @param[in] env A pointer to the environment structure.
890      * @param[in] string The UTF-8 string to measure.
891      * @param[out] result A pointer to store the size of the string.
892      * @return Returns a status code of type `ani_status` indicating success or failure.
893      */
894     ani_status (*String_GetUTF8Size)(ani_env *env, ani_string string, ani_size *result);
895 
896     /**
897      * @brief Retrieves the UTF-8 encoded data of a string.
898      *
899      * This function copies the UTF-8 encoded data of the string into the provided buffer.
900      *
901      * @param[in] env A pointer to the environment structure.
902      * @param[in] string The string to retrieve data from.
903      * @param[out] utf8_buffer A buffer to store the UTF-8 encoded data.
904      * @param[in] utf8_buffer_size The size of the buffer in bytes.
905      * @param[out] result A pointer to store the number of bytes written.
906      * @return Returns a status code of type `ani_status` indicating success or failure.
907      */
908     ani_status (*String_GetUTF8)(ani_env *env, ani_string string, char *utf8_buffer, ani_size utf8_buffer_size,
909                                  ani_size *result);
910 
911     /**
912      * @brief Retrieves a substring of a UTF-8 string.
913      *
914      * This function copies a portion of the UTF-8 string into the provided buffer.
915      *
916      * @param[in] env A pointer to the environment structure.
917      * @param[in] string The string to retrieve data from.
918      * @param[in] substr_offset The starting offset of the substring.
919      * @param[in] substr_size The size of the substring in bytes.
920      * @param[out] utf8_buffer A buffer to store the substring.
921      * @param[in] utf8_buffer_size The size of the buffer in bytes.
922      * @param[out] result A pointer to store the number of bytes written.
923      * @return Returns a status code of type `ani_status` indicating success or failure.
924      */
925     ani_status (*String_GetUTF8SubString)(ani_env *env, ani_string string, ani_size substr_offset, ani_size substr_size,
926                                           char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result);
927 
928     /**
929      * @brief Retrieves the length of an array.
930      *
931      * This function retrieves the length of the specified array.
932      *
933      * @param[in] env A pointer to the environment structure.
934      * @param[in] array The array whose length is to be retrieved.
935      * @param[out] result A pointer to store the length of the array.
936      * @return Returns a status code of type `ani_status` indicating success or failure.
937      */
938     ani_status (*Array_GetLength)(ani_env *env, ani_array array, ani_size *result);
939 
940     /**
941      * @brief Creates a new array of booleans.
942      *
943      * This function creates a new array of the specified length for boolean values.
944      *
945      * @param[in] env A pointer to the environment structure.
946      * @param[in] length The length of the array to be created.
947      * @param[out] result A pointer to store the created array.
948      * @return Returns a status code of type `ani_status` indicating success or failure.
949      */
950     ani_status (*Array_New_Boolean)(ani_env *env, ani_size length, ani_array_boolean *result);
951 
952     /**
953      * @brief Creates a new array of characters.
954      *
955      * This function creates a new array of the specified length for character values.
956      *
957      * @param[in] env A pointer to the environment structure.
958      * @param[in] length The length of the array to be created.
959      * @param[out] result A pointer to store the created array.
960      * @return Returns a status code of type `ani_status` indicating success or failure.
961      */
962     ani_status (*Array_New_Char)(ani_env *env, ani_size length, ani_array_char *result);
963 
964     /**
965      * @brief Creates a new array of bytes.
966      *
967      * This function creates a new array of the specified length for byte values.
968      *
969      * @param[in] env A pointer to the environment structure.
970      * @param[in] length The length of the array to be created.
971      * @param[out] result A pointer to store the created array.
972      * @return Returns a status code of type `ani_status` indicating success or failure.
973      */
974     ani_status (*Array_New_Byte)(ani_env *env, ani_size length, ani_array_byte *result);
975 
976     /**
977      * @brief Creates a new array of shorts.
978      *
979      * This function creates a new array of the specified length for short integer values.
980      *
981      * @param[in] env A pointer to the environment structure.
982      * @param[in] length The length of the array to be created.
983      * @param[out] result A pointer to store the created array.
984      * @return Returns a status code of type `ani_status` indicating success or failure.
985      */
986     ani_status (*Array_New_Short)(ani_env *env, ani_size length, ani_array_short *result);
987 
988     /**
989      * @brief Creates a new array of integers.
990      *
991      * This function creates a new array of the specified length for integer values.
992      *
993      * @param[in] env A pointer to the environment structure.
994      * @param[in] length The length of the array to be created.
995      * @param[out] result A pointer to store the created array.
996      * @return Returns a status code of type `ani_status` indicating success or failure.
997      */
998     ani_status (*Array_New_Int)(ani_env *env, ani_size length, ani_array_int *result);
999 
1000     /**
1001      * @brief Creates a new array of long integers.
1002      *
1003      * This function creates a new array of the specified length for long integer values.
1004      *
1005      * @param[in] env A pointer to the environment structure.
1006      * @param[in] length The length of the array to be created.
1007      * @param[out] result A pointer to store the created array.
1008      * @return Returns a status code of type `ani_status` indicating success or failure.
1009      */
1010     ani_status (*Array_New_Long)(ani_env *env, ani_size length, ani_array_long *result);
1011 
1012     /**
1013      * @brief Creates a new array of floats.
1014      *
1015      * This function creates a new array of the specified length for float values.
1016      *
1017      * @param[in] env A pointer to the environment structure.
1018      * @param[in] length The length of the array to be created.
1019      * @param[out] result A pointer to store the created array.
1020      * @return Returns a status code of type `ani_status` indicating success or failure.
1021      */
1022     ani_status (*Array_New_Float)(ani_env *env, ani_size length, ani_array_float *result);
1023 
1024     /**
1025      * @brief Creates a new array of doubles.
1026      *
1027      * This function creates a new array of the specified length for double values.
1028      *
1029      * @param[in] env A pointer to the environment structure.
1030      * @param[in] length The length of the array to be created.
1031      * @param[out] result A pointer to store the created array.
1032      * @return Returns a status code of type `ani_status` indicating success or failure.
1033      */
1034     ani_status (*Array_New_Double)(ani_env *env, ani_size length, ani_array_double *result);
1035 
1036     /**
1037      * @brief Retrieves a region of boolean values from an array.
1038      *
1039      * This function retrieves a portion of the specified boolean array into a native buffer.
1040      *
1041      * @param[in] env A pointer to the environment structure.
1042      * @param[in] array The array to retrieve values from.
1043      * @param[in] offset The starting offset of the region.
1044      * @param[in] length The number of elements to retrieve.
1045      * @param[out] native_buffer A buffer to store the retrieved boolean values.
1046      * @return Returns a status code of type `ani_status` indicating success or failure.
1047      */
1048     ani_status (*Array_GetRegion_Boolean)(ani_env *env, ani_array_boolean array, ani_size offset, ani_size length,
1049                                           ani_boolean *native_buffer);
1050 
1051     /**
1052      * @brief Retrieves a region of character values from an array.
1053      *
1054      * This function retrieves a portion of the specified character array into a native buffer.
1055      *
1056      * @param[in] env A pointer to the environment structure.
1057      * @param[in] array The array to retrieve values from.
1058      * @param[in] offset The starting offset of the region.
1059      * @param[in] length The number of elements to retrieve.
1060      * @param[out] native_buffer A buffer to store the retrieved character values.
1061      * @return Returns a status code of type `ani_status` indicating success or failure.
1062      */
1063     ani_status (*Array_GetRegion_Char)(ani_env *env, ani_array_char array, ani_size offset, ani_size length,
1064                                        ani_char *native_buffer);
1065 
1066     /**
1067      * @brief Retrieves a region of byte values from an array.
1068      *
1069      * This function retrieves a portion of the specified byte array into a native buffer.
1070      *
1071      * @param[in] env A pointer to the environment structure.
1072      * @param[in] array The array to retrieve values from.
1073      * @param[in] offset The starting offset of the region.
1074      * @param[in] length The number of elements to retrieve.
1075      * @param[out] native_buffer A buffer to store the retrieved byte values.
1076      * @return Returns a status code of type `ani_status` indicating success or failure.
1077      */
1078     ani_status (*Array_GetRegion_Byte)(ani_env *env, ani_array_byte array, ani_size offset, ani_size length,
1079                                        ani_byte *native_buffer);
1080 
1081     /**
1082      * @brief Retrieves a region of short values from an array.
1083      *
1084      * This function retrieves a portion of the specified short array into a native buffer.
1085      *
1086      * @param[in] env A pointer to the environment structure.
1087      * @param[in] array The array to retrieve values from.
1088      * @param[in] offset The starting offset of the region.
1089      * @param[in] length The number of elements to retrieve.
1090      * @param[out] native_buffer A buffer to store the retrieved short values.
1091      * @return Returns a status code of type `ani_status` indicating success or failure.
1092      */
1093     ani_status (*Array_GetRegion_Short)(ani_env *env, ani_array_short array, ani_size offset, ani_size length,
1094                                         ani_short *native_buffer);
1095 
1096     /**
1097      * @brief Retrieves a region of integer values from an array.
1098      *
1099      * This function retrieves a portion of the specified integer array into a native buffer.
1100      *
1101      * @param[in] env A pointer to the environment structure.
1102      * @param[in] array The array to retrieve values from.
1103      * @param[in] offset The starting offset of the region.
1104      * @param[in] length The number of elements to retrieve.
1105      * @param[out] native_buffer A buffer to store the retrieved integer values.
1106      * @return Returns a status code of type `ani_status` indicating success or failure.
1107      */
1108     ani_status (*Array_GetRegion_Int)(ani_env *env, ani_array_int array, ani_size offset, ani_size length,
1109                                       ani_int *native_buffer);
1110 
1111     /**
1112      * @brief Retrieves a region of long integer values from an array.
1113      *
1114      * This function retrieves a portion of the specified long integer array into a native buffer.
1115      *
1116      * @param[in] env A pointer to the environment structure.
1117      * @param[in] array The array to retrieve values from.
1118      * @param[in] offset The starting offset of the region.
1119      * @param[in] length The number of elements to retrieve.
1120      * @param[out] native_buffer A buffer to store the retrieved long integer values.
1121      * @return Returns a status code of type `ani_status` indicating success or failure.
1122      */
1123     ani_status (*Array_GetRegion_Long)(ani_env *env, ani_array_long array, ani_size offset, ani_size length,
1124                                        ani_long *native_buffer);
1125 
1126     /**
1127      * @brief Retrieves a region of float values from an array.
1128      *
1129      * This function retrieves a portion of the specified float array into a native buffer.
1130      *
1131      * @param[in] env A pointer to the environment structure.
1132      * @param[in] array The array to retrieve values from.
1133      * @param[in] offset The starting offset of the region.
1134      * @param[in] length The number of elements to retrieve.
1135      * @param[out] native_buffer A buffer to store the retrieved float values.
1136      * @return Returns a status code of type `ani_status` indicating success or failure.
1137      */
1138     ani_status (*Array_GetRegion_Float)(ani_env *env, ani_array_float array, ani_size offset, ani_size length,
1139                                         ani_float *native_buffer);
1140 
1141     /**
1142      * @brief Retrieves a region of double values from an array.
1143      *
1144      * This function retrieves a portion of the specified double array into a native buffer.
1145      *
1146      * @param[in] env A pointer to the environment structure.
1147      * @param[in] array The array to retrieve values from.
1148      * @param[in] offset The starting offset of the region.
1149      * @param[in] length The number of elements to retrieve.
1150      * @param[out] native_buffer A buffer to store the retrieved double values.
1151      * @return Returns a status code of type `ani_status` indicating success or failure.
1152      */
1153     ani_status (*Array_GetRegion_Double)(ani_env *env, ani_array_double array, ani_size offset, ani_size length,
1154                                          ani_double *native_buffer);
1155 
1156     /**
1157      * @brief Sets a region of boolean values in an array.
1158      *
1159      * This function sets a portion of the specified boolean array using a native buffer.
1160      *
1161      * @param[in] env A pointer to the environment structure.
1162      * @param[in] array The array to set values in.
1163      * @param[in] offset The starting offset of the region.
1164      * @param[in] length The number of elements to set.
1165      * @param[in] native_buffer A buffer containing the boolean values to set.
1166      * @return Returns a status code of type `ani_status` indicating success or failure.
1167      */
1168     ani_status (*Array_SetRegion_Boolean)(ani_env *env, ani_array_boolean array, ani_size offset, ani_size length,
1169                                           const ani_boolean *native_buffer);
1170 
1171     /**
1172      * @brief Sets a region of character values in an array.
1173      *
1174      * This function sets a portion of the specified character array using a native buffer.
1175      *
1176      * @param[in] env A pointer to the environment structure.
1177      * @param[in] array The array to set values in.
1178      * @param[in] offset The starting offset of the region.
1179      * @param[in] length The number of elements to set.
1180      * @param[in] native_buffer A buffer containing the character values to set.
1181      * @return Returns a status code of type `ani_status` indicating success or failure.
1182      */
1183     ani_status (*Array_SetRegion_Char)(ani_env *env, ani_array_char array, ani_size offset, ani_size length,
1184                                        const ani_char *native_buffer);
1185 
1186     /**
1187      * @brief Sets a region of byte values in an array.
1188      *
1189      * This function sets a portion of the specified byte array using a native buffer.
1190      *
1191      * @param[in] env A pointer to the environment structure.
1192      * @param[in] array The array to set values in.
1193      * @param[in] offset The starting offset of the region.
1194      * @param[in] length The number of elements to set.
1195      * @param[in] native_buffer A buffer containing the byte values to set.
1196      * @return Returns a status code of type `ani_status` indicating success or failure.
1197      */
1198     ani_status (*Array_SetRegion_Byte)(ani_env *env, ani_array_byte array, ani_size offset, ani_size length,
1199                                        const ani_byte *native_buffer);
1200 
1201     /**
1202      * @brief Sets a region of short values in an array.
1203      *
1204      * This function sets a portion of the specified short array using a native buffer.
1205      *
1206      * @param[in] env A pointer to the environment structure.
1207      * @param[in] array The array to set values in.
1208      * @param[in] offset The starting offset of the region.
1209      * @param[in] length The number of elements to set.
1210      * @param[in] native_buffer A buffer containing the short values to set.
1211      * @return Returns a status code of type `ani_status` indicating success or failure.
1212      */
1213     ani_status (*Array_SetRegion_Short)(ani_env *env, ani_array_short array, ani_size offset, ani_size length,
1214                                         const ani_short *native_buffer);
1215 
1216     /**
1217      * @brief Sets a region of integer values in an array.
1218      *
1219      * This function sets a portion of the specified integer array using a native buffer.
1220      *
1221      * @param[in] env A pointer to the environment structure.
1222      * @param[in] array The array to set values in.
1223      * @param[in] offset The starting offset of the region.
1224      * @param[in] length The number of elements to set.
1225      * @param[in] native_buffer A buffer containing the integer values to set.
1226      * @return Returns a status code of type `ani_status` indicating success or failure.
1227      */
1228     ani_status (*Array_SetRegion_Int)(ani_env *env, ani_array_int array, ani_size offset, ani_size length,
1229                                       const ani_int *native_buffer);
1230 
1231     /**
1232      * @brief Sets a region of long integer values in an array.
1233      *
1234      * This function sets a portion of the specified long integer array using a native buffer.
1235      *
1236      * @param[in] env A pointer to the environment structure.
1237      * @param[in] array The array to set values in.
1238      * @param[in] offset The starting offset of the region.
1239      * @param[in] length The number of elements to set.
1240      * @param[in] native_buffer A buffer containing the long integer values to set.
1241      * @return Returns a status code of type `ani_status` indicating success or failure.
1242      */
1243     ani_status (*Array_SetRegion_Long)(ani_env *env, ani_array_long array, ani_size offset, ani_size length,
1244                                        const ani_long *native_buffer);
1245 
1246     /**
1247      * @brief Sets a region of float values in an array.
1248      *
1249      * This function sets a portion of the specified float array using a native buffer.
1250      *
1251      * @param[in] env A pointer to the environment structure.
1252      * @param[in] array The array to set values in.
1253      * @param[in] offset The starting offset of the region.
1254      * @param[in] length The number of elements to set.
1255      * @param[in] native_buffer A buffer containing the float values to set.
1256      * @return Returns a status code of type `ani_status` indicating success or failure.
1257      */
1258     ani_status (*Array_SetRegion_Float)(ani_env *env, ani_array_float array, ani_size offset, ani_size length,
1259                                         const ani_float *native_buffer);
1260 
1261     /**
1262      * @brief Sets a region of double values in an array.
1263      *
1264      * This function sets a portion of the specified double array using a native buffer.
1265      *
1266      * @param[in] env A pointer to the environment structure.
1267      * @param[in] array The array to set values in.
1268      * @param[in] offset The starting offset of the region.
1269      * @param[in] length The number of elements to set.
1270      * @param[in] native_buffer A buffer containing the double values to set.
1271      * @return Returns a status code of type `ani_status` indicating success or failure.
1272      */
1273     ani_status (*Array_SetRegion_Double)(ani_env *env, ani_array_double array, ani_size offset, ani_size length,
1274                                          const ani_double *native_buffer);
1275 
1276     /**
1277      * @brief Creates a new array of references.
1278      *
1279      * This function creates a new array of references, optionally initializing it with an array of references.
1280      *
1281      * @param[in] env A pointer to the environment structure.
1282      * @param[in] type The type of the elements of the array.
1283      * @param[in] length The length of the array to be created.
1284      * @param[in] initial_element An optional reference to initialize the array. Can be null.
1285      * @param[out] result A pointer to store the created array of references.
1286      * @return Returns a status code of type `ani_status` indicating success or failure.
1287      */
1288     ani_status (*Array_New_Ref)(ani_env *env, ani_type type, ani_size length, ani_ref initial_element,
1289                                 ani_array_ref *result);
1290 
1291     /**
1292      * @brief Sets a reference at a specific index in an array.
1293      *
1294      * This function sets the value of a reference at the specified index in the array.
1295      *
1296      * @param[in] env A pointer to the environment structure.
1297      * @param[in] array The array of references to modify.
1298      * @param[in] index The index at which to set the reference.
1299      * @param[in] ref The reference to set at the specified index.
1300      * @return Returns a status code of type `ani_status` indicating success or failure.
1301      */
1302     ani_status (*Array_Set_Ref)(ani_env *env, ani_array_ref array, ani_size index, ani_ref ref);
1303 
1304     /**
1305      * @brief Retrieves a reference from a specific index in an array.
1306      *
1307      * This function retrieves the value of a reference at the specified index in the array.
1308      *
1309      * @param[in] env A pointer to the environment structure.
1310      * @param[in] array The array of references to query.
1311      * @param[in] index The index from which to retrieve the reference.
1312      * @param[out] result A pointer to store the retrieved reference.
1313      * @return Returns a status code of type `ani_status` indicating success or failure.
1314      */
1315     ani_status (*Array_Get_Ref)(ani_env *env, ani_array_ref array, ani_size index, ani_ref *result);
1316 
1317     /**
1318      * @brief Retrieves an enum item by its name.
1319      *
1320      * This function retrieves an enum item associated with the specified name.
1321      *
1322      * @param[in] env A pointer to the environment structure.
1323      * @param[in] enm The enum to search within.
1324      * @param[in] name The name of the enum item to retrieve.
1325      * @param[out] result A pointer to store the retrieved enum item.
1326      * @return Returns a status code of type `ani_status` indicating success or failure.
1327      */
1328     ani_status (*Enum_GetEnumItemByName)(ani_env *env, ani_enum enm, const char *name, ani_enum_item *result);
1329 
1330     /**
1331      * @brief Retrieves an enum item by its index.
1332      *
1333      * This function retrieves an enum item located at the specified index.
1334      *
1335      * @param[in] env A pointer to the environment structure.
1336      * @param[in] enm The enum to search within.
1337      * @param[in] index The index of the enum item to retrieve.
1338      * @param[out] result A pointer to store the retrieved enum item.
1339      * @return Returns a status code of type `ani_status` indicating success or failure.
1340      */
1341     ani_status (*Enum_GetEnumItemByIndex)(ani_env *env, ani_enum enm, ani_size index, ani_enum_item *result);
1342 
1343     /**
1344      * @brief Retrieves the enum associated with an enum item.
1345      *
1346      * This function retrieves the enum to which the specified enum item belongs.
1347      *
1348      * @param[in] env A pointer to the environment structure.
1349      * @param[in] enum_item The enum item whose associated enum is to be retrieved.
1350      * @param[out] result A pointer to store the retrieved enum.
1351      * @return Returns a status code of type `ani_status` indicating success or failure.
1352      */
1353     ani_status (*EnumItem_GetEnum)(ani_env *env, ani_enum_item enum_item, ani_enum *result);
1354 
1355     /**
1356      * @brief Retrieves the integer value of an enum item.
1357      *
1358      * This function retrieves the integer representing the value of the specified enum item.
1359      *
1360      * @param[in] env A pointer to the environment structure.
1361      * @param[in] enum_item The enum item whose underlying value is to be retrieved.
1362      * @param[out] result A pointer to store the retrieved integer.
1363      * @return Returns a status code of type `ani_status` indicating success or failure.
1364      */
1365     ani_status (*EnumItem_GetValue_Int)(ani_env *env, ani_enum_item enum_item, ani_int *result);
1366 
1367     /**
1368      * @brief Retrieves the string value of an enum item.
1369      *
1370      * This function retrieves the string representing the value of the specified enum item.
1371      *
1372      * @param[in] env A pointer to the environment structure.
1373      * @param[in] enum_item The enum item whose underlying value is to be retrieved.
1374      * @param[out] result A pointer to store the retrieved string.
1375      * @return Returns a status code of type `ani_status` indicating success or failure.
1376      */
1377     ani_status (*EnumItem_GetValue_String)(ani_env *env, ani_enum_item enum_item, ani_string *result);
1378 
1379     /**
1380      * @brief Retrieves the name of an enum item.
1381      *
1382      * This function retrieves the name associated with the specified enum item.
1383      *
1384      * @param[in] env A pointer to the environment structure.
1385      * @param[in] enum_item The enum item whose name is to be retrieved.
1386      * @param[out] result A pointer to store the retrieved name.
1387      * @return Returns a status code of type `ani_status` indicating success or failure.
1388      */
1389     ani_status (*EnumItem_GetName)(ani_env *env, ani_enum_item enum_item, ani_string *result);
1390 
1391     /**
1392      * @brief Retrieves the index of an enum item.
1393      *
1394      * This function retrieves the index of the specified enum item within its enum.
1395      *
1396      * @param[in] env A pointer to the environment structure.
1397      * @param[in] enum_item The enum item whose index is to be retrieved.
1398      * @param[out] result A pointer to store the retrieved index.
1399      * @return Returns a status code of type `ani_status` indicating success or failure.
1400      */
1401     ani_status (*EnumItem_GetIndex)(ani_env *env, ani_enum_item enum_item, ani_size *result);
1402 
1403     /**
1404      * @brief Invokes a functional object.
1405      *
1406      * This function invokes a functional object (e.g., a function or callable object) with the specified arguments.
1407      *
1408      * @param[in] env A pointer to the environment structure.
1409      * @param[in] fn The functional object to invoke.
1410      * @param[in] argc The number of arguments being passed to the functional object.
1411      * @param[in] argv A pointer to an array of references representing the arguments. Can be null if `argc` is 0.
1412      * @param[out] result A pointer to store the result of the invocation. Can be null if the functional object does not
1413      * return a value.
1414      * @return Returns a status code of type `ani_status` indicating success or failure.
1415      */
1416     ani_status (*FunctionalObject_Call)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result);
1417 
1418     /**
1419      * @brief Sets a boolean value to a variable.
1420      *
1421      * This function assigns a boolean value to the specified variable.
1422      *
1423      * @param[in] env A pointer to the environment structure.
1424      * @param[in] variable The variable to modify.
1425      * @param[in] value The boolean value to assign to the variable.
1426      * @return Returns a status code of type `ani_status` indicating success or failure.
1427      */
1428     ani_status (*Variable_SetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean value);
1429 
1430     /**
1431      * @brief Sets a character value to a variable.
1432      *
1433      * This function assigns a character value to the specified variable.
1434      *
1435      * @param[in] env A pointer to the environment structure.
1436      * @param[in] variable The variable to modify.
1437      * @param[in] value The character value to assign to the variable.
1438      * @return Returns a status code of type `ani_status` indicating success or failure.
1439      */
1440     ani_status (*Variable_SetValue_Char)(ani_env *env, ani_variable variable, ani_char value);
1441 
1442     /**
1443      * @brief Sets a byte value to a variable.
1444      *
1445      * This function assigns a byte value to the specified variable.
1446      *
1447      * @param[in] env A pointer to the environment structure.
1448      * @param[in] variable The variable to modify.
1449      * @param[in] value The byte value to assign to the variable.
1450      * @return Returns a status code of type `ani_status` indicating success or failure.
1451      */
1452     ani_status (*Variable_SetValue_Byte)(ani_env *env, ani_variable variable, ani_byte value);
1453 
1454     /**
1455      * @brief Sets a short value to a variable.
1456      *
1457      * This function assigns a short integer value to the specified variable.
1458      *
1459      * @param[in] env A pointer to the environment structure.
1460      * @param[in] variable The variable to modify.
1461      * @param[in] value The short integer value to assign to the variable.
1462      * @return Returns a status code of type `ani_status` indicating success or failure.
1463      */
1464     ani_status (*Variable_SetValue_Short)(ani_env *env, ani_variable variable, ani_short value);
1465 
1466     /**
1467      * @brief Sets an integer value to a variable.
1468      *
1469      * This function assigns an integer value to the specified variable.
1470      *
1471      * @param[in] env A pointer to the environment structure.
1472      * @param[in] variable The variable to modify.
1473      * @param[in] value The integer value to assign to the variable.
1474      * @return Returns a status code of type `ani_status` indicating success or failure.
1475      */
1476     ani_status (*Variable_SetValue_Int)(ani_env *env, ani_variable variable, ani_int value);
1477 
1478     /**
1479      * @brief Sets a long value to a variable.
1480      *
1481      * This function assigns a long integer value to the specified variable.
1482      *
1483      * @param[in] env A pointer to the environment structure.
1484      * @param[in] variable The variable to modify.
1485      * @param[in] value The long integer value to assign to the variable.
1486      * @return Returns a status code of type `ani_status` indicating success or failure.
1487      */
1488     ani_status (*Variable_SetValue_Long)(ani_env *env, ani_variable variable, ani_long value);
1489 
1490     /**
1491      * @brief Sets a float value to a variable.
1492      *
1493      * This function assigns a float value to the specified variable.
1494      *
1495      * @param[in] env A pointer to the environment structure.
1496      * @param[in] variable The variable to modify.
1497      * @param[in] value The float value to assign to the variable.
1498      * @return Returns a status code of type `ani_status` indicating success or failure.
1499      */
1500     ani_status (*Variable_SetValue_Float)(ani_env *env, ani_variable variable, ani_float value);
1501 
1502     /**
1503      * @brief Sets a double value to a variable.
1504      *
1505      * This function assigns a double value to the specified variable.
1506      *
1507      * @param[in] env A pointer to the environment structure.
1508      * @param[in] variable The variable to modify.
1509      * @param[in] value The double value to assign to the variable.
1510      * @return Returns a status code of type `ani_status` indicating success or failure.
1511      */
1512     ani_status (*Variable_SetValue_Double)(ani_env *env, ani_variable variable, ani_double value);
1513 
1514     /**
1515      * @brief Sets a reference value to a variable.
1516      *
1517      * This function assigns a reference value to the specified variable.
1518      *
1519      * @param[in] env A pointer to the environment structure.
1520      * @param[in] variable The variable to modify.
1521      * @param[in] value The reference value to assign to the variable.
1522      * @return Returns a status code of type `ani_status` indicating success or failure.
1523      */
1524     ani_status (*Variable_SetValue_Ref)(ani_env *env, ani_variable variable, ani_ref value);
1525 
1526     /**
1527      * @brief Retrieves a boolean value from a variable.
1528      *
1529      * This function fetches a boolean value from the specified variable.
1530      *
1531      * @param[in] env A pointer to the environment structure.
1532      * @param[in] variable The variable to query.
1533      * @param[out] result A pointer to store the retrieved boolean value.
1534      * @return Returns a status code of type `ani_status` indicating success or failure.
1535      */
1536     ani_status (*Variable_GetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean *result);
1537 
1538     /**
1539      * @brief Retrieves a character value from a variable.
1540      *
1541      * This function fetches a character value from the specified variable.
1542      *
1543      * @param[in] env A pointer to the environment structure.
1544      * @param[in] variable The variable to query.
1545      * @param[out] result A pointer to store the retrieved character value.
1546      * @return Returns a status code of type `ani_status` indicating success or failure.
1547      */
1548     ani_status (*Variable_GetValue_Char)(ani_env *env, ani_variable variable, ani_char *result);
1549 
1550     /**
1551      * @brief Retrieves a byte value from a variable.
1552      *
1553      * This function fetches a byte value from the specified variable.
1554      *
1555      * @param[in] env A pointer to the environment structure.
1556      * @param[in] variable The variable to query.
1557      * @param[out] result A pointer to store the retrieved byte value.
1558      * @return Returns a status code of type `ani_status` indicating success or failure.
1559      */
1560     ani_status (*Variable_GetValue_Byte)(ani_env *env, ani_variable variable, ani_byte *result);
1561 
1562     /**
1563      * @brief Retrieves a short value from a variable.
1564      *
1565      * This function fetches a short integer value from the specified variable.
1566      *
1567      * @param[in] env A pointer to the environment structure.
1568      * @param[in] variable The variable to query.
1569      * @param[out] result A pointer to store the retrieved short integer value.
1570      * @return Returns a status code of type `ani_status` indicating success or failure.
1571      */
1572     ani_status (*Variable_GetValue_Short)(ani_env *env, ani_variable variable, ani_short *result);
1573 
1574     /**
1575      * @brief Retrieves an integer value from a variable.
1576      *
1577      * This function fetches an integer value from the specified variable.
1578      *
1579      * @param[in] env A pointer to the environment structure.
1580      * @param[in] variable The variable to query.
1581      * @param[out] result A pointer to store the retrieved integer value.
1582      * @return Returns a status code of type `ani_status` indicating success or failure.
1583      */
1584     ani_status (*Variable_GetValue_Int)(ani_env *env, ani_variable variable, ani_int *result);
1585 
1586     /**
1587      * @brief Retrieves a long value from a variable.
1588      *
1589      * This function fetches a long integer value from the specified variable.
1590      *
1591      * @param[in] env A pointer to the environment structure.
1592      * @param[in] variable The variable to query.
1593      * @param[out] result A pointer to store the retrieved long integer value.
1594      * @return Returns a status code of type `ani_status` indicating success or failure.
1595      */
1596     ani_status (*Variable_GetValue_Long)(ani_env *env, ani_variable variable, ani_long *result);
1597 
1598     /**
1599      * @brief Retrieves a float value from a variable.
1600      *
1601      * This function fetches a float value from the specified variable.
1602      *
1603      * @param[in] env A pointer to the environment structure.
1604      * @param[in] variable The variable to query.
1605      * @param[out] result A pointer to store the retrieved float value.
1606      * @return Returns a status code of type `ani_status` indicating success or failure.
1607      */
1608     ani_status (*Variable_GetValue_Float)(ani_env *env, ani_variable variable, ani_float *result);
1609 
1610     /**
1611      * @brief Retrieves a double value from a variable.
1612      *
1613      * This function fetches a double value from the specified variable.
1614      *
1615      * @param[in] env A pointer to the environment structure.
1616      * @param[in] variable The variable to query.
1617      * @param[out] result A pointer to store the retrieved double value.
1618      * @return Returns a status code of type `ani_status` indicating success or failure.
1619      */
1620     ani_status (*Variable_GetValue_Double)(ani_env *env, ani_variable variable, ani_double *result);
1621 
1622     /**
1623      * @brief Retrieves a reference value from a variable.
1624      *
1625      * This function fetches a reference value from the specified variable.
1626      *
1627      * @param[in] env A pointer to the environment structure.
1628      * @param[in] variable The variable to query.
1629      * @param[out] result A pointer to store the retrieved reference value.
1630      * @return Returns a status code of type `ani_status` indicating success or failure.
1631      */
1632     ani_status (*Variable_GetValue_Ref)(ani_env *env, ani_variable variable, ani_ref *result);
1633 
1634     /**
1635      * @brief Calls a function and retrieves a boolean result.
1636      *
1637      * This function calls the specified function with variadic arguments and retrieves a boolean result.
1638      *
1639      * @param[in] env A pointer to the environment structure.
1640      * @param[in] fn The function to call.
1641      * @param[out] result A pointer to store the boolean result.
1642      * @param[in] ... Variadic arguments to pass to the function.
1643      * @return Returns a status code of type `ani_status` indicating success or failure.
1644      */
1645     ani_status (*Function_Call_Boolean)(ani_env *env, ani_function fn, ani_boolean *result, ...);
1646 
1647     /**
1648      * @brief Calls a function and retrieves a boolean result (array-based).
1649      *
1650      * This function calls the specified function with arguments provided in an array and retrieves a boolean result.
1651      *
1652      * @param[in] env A pointer to the environment structure.
1653      * @param[in] fn The function to call.
1654      * @param[out] result A pointer to store the boolean result.
1655      * @param[in] args A pointer to an array of arguments to pass to the function.
1656      * @return Returns a status code of type `ani_status` indicating success or failure.
1657      */
1658     ani_status (*Function_Call_Boolean_A)(ani_env *env, ani_function fn, ani_boolean *result, const ani_value *args);
1659 
1660     /**
1661      * @brief Calls a function and retrieves a boolean result (variadic arguments).
1662      *
1663      * This function calls the specified function with arguments provided in a `va_list` and retrieves a boolean result.
1664      *
1665      * @param[in] env A pointer to the environment structure.
1666      * @param[in] fn The function to call.
1667      * @param[out] result A pointer to store the boolean result.
1668      * @param[in] args A `va_list` containing the arguments to pass to the function.
1669      * @return Returns a status code of type `ani_status` indicating success or failure.
1670      */
1671     ani_status (*Function_Call_Boolean_V)(ani_env *env, ani_function fn, ani_boolean *result, va_list args);
1672 
1673     /**
1674      * @brief Calls a function and retrieves a character result.
1675      *
1676      * This function calls the specified function with variadic arguments and retrieves a character result.
1677      *
1678      * @param[in] env A pointer to the environment structure.
1679      * @param[in] fn The function to call.
1680      * @param[out] result A pointer to store the character result.
1681      * @param[in] ... Variadic arguments to pass to the function.
1682      * @return Returns a status code of type `ani_status` indicating success or failure.
1683      */
1684     ani_status (*Function_Call_Char)(ani_env *env, ani_function fn, ani_char *result, ...);
1685 
1686     /**
1687      * @brief Calls a function and retrieves a character result (array-based).
1688      *
1689      * This function calls the specified function with arguments provided in an array and retrieves a character result.
1690      *
1691      * @param[in] env A pointer to the environment structure.
1692      * @param[in] fn The function to call.
1693      * @param[out] result A pointer to store the character result.
1694      * @param[in] args A pointer to an array of arguments to pass to the function.
1695      * @return Returns a status code of type `ani_status` indicating success or failure.
1696      */
1697     ani_status (*Function_Call_Char_A)(ani_env *env, ani_function fn, ani_char *result, const ani_value *args);
1698 
1699     /**
1700      * @brief Calls a function and retrieves a character result (variadic arguments).
1701      *
1702      * This function calls the specified function with arguments provided in a `va_list` and retrieves a character
1703      * result.
1704      *
1705      * @param[in] env A pointer to the environment structure.
1706      * @param[in] fn The function to call.
1707      * @param[out] result A pointer to store the character result.
1708      * @param[in] args A `va_list` containing the arguments to pass to the function.
1709      * @return Returns a status code of type `ani_status` indicating success or failure.
1710      */
1711     ani_status (*Function_Call_Char_V)(ani_env *env, ani_function fn, ani_char *result, va_list args);
1712 
1713     /**
1714      * @brief Calls a function and retrieves a byte result.
1715      *
1716      * This function calls the specified function with variadic arguments and retrieves a byte result.
1717      *
1718      * @param[in] env A pointer to the environment structure.
1719      * @param[in] fn The function to call.
1720      * @param[out] result A pointer to store the byte result.
1721      * @param[in] ... Variadic arguments to pass to the function.
1722      * @return Returns a status code of type `ani_status` indicating success or failure.
1723      */
1724     ani_status (*Function_Call_Byte)(ani_env *env, ani_function fn, ani_byte *result, ...);
1725 
1726     /**
1727      * @brief Calls a function and retrieves a byte result (array-based).
1728      *
1729      * This function calls the specified function with arguments provided in an array and retrieves a byte result.
1730      *
1731      * @param[in] env A pointer to the environment structure.
1732      * @param[in] fn The function to call.
1733      * @param[out] result A pointer to store the byte result.
1734      * @param[in] args A pointer to an array of arguments to pass to the function.
1735      * @return Returns a status code of type `ani_status` indicating success or failure.
1736      */
1737     ani_status (*Function_Call_Byte_A)(ani_env *env, ani_function fn, ani_byte *result, const ani_value *args);
1738 
1739     /**
1740      * @brief Calls a function and retrieves a byte result (variadic arguments).
1741      *
1742      * This function calls the specified function with arguments provided in a `va_list` and retrieves a byte result.
1743      *
1744      * @param[in] env A pointer to the environment structure.
1745      * @param[in] fn The function to call.
1746      * @param[out] result A pointer to store the byte result.
1747      * @param[in] args A `va_list` containing the arguments to pass to the function.
1748      * @return Returns a status code of type `ani_status` indicating success or failure.
1749      */
1750     ani_status (*Function_Call_Byte_V)(ani_env *env, ani_function fn, ani_byte *result, va_list args);
1751 
1752     /**
1753      * @brief Calls a function and retrieves a short result.
1754      *
1755      * This function calls the specified function with variadic arguments and retrieves a short result.
1756      *
1757      * @param[in] env A pointer to the environment structure.
1758      * @param[in] fn The function to call.
1759      * @param[out] result A pointer to store the short result.
1760      * @param[in] ... Variadic arguments to pass to the function.
1761      * @return Returns a status code of type `ani_status` indicating success or failure.
1762      */
1763     ani_status (*Function_Call_Short)(ani_env *env, ani_function fn, ani_short *result, ...);
1764 
1765     /**
1766      * @brief Calls a function and retrieves a short result (array-based).
1767      *
1768      * This function calls the specified function with arguments provided in an array and retrieves a short result.
1769      *
1770      * @param[in] env A pointer to the environment structure.
1771      * @param[in] fn The function to call.
1772      * @param[out] result A pointer to store the short result.
1773      * @param[in] args A pointer to an array of arguments to pass to the function.
1774      * @return Returns a status code of type `ani_status` indicating success or failure.
1775      */
1776     ani_status (*Function_Call_Short_A)(ani_env *env, ani_function fn, ani_short *result, const ani_value *args);
1777 
1778     /**
1779      * @brief Calls a function and retrieves a short result (variadic arguments).
1780      *
1781      * This function calls the specified function with arguments provided in a `va_list` and retrieves a short result.
1782      *
1783      * @param[in] env A pointer to the environment structure.
1784      * @param[in] fn The function to call.
1785      * @param[out] result A pointer to store the short result.
1786      * @param[in] args A `va_list` containing the arguments to pass to the function.
1787      * @return Returns a status code of type `ani_status` indicating success or failure.
1788      */
1789     ani_status (*Function_Call_Short_V)(ani_env *env, ani_function fn, ani_short *result, va_list args);
1790 
1791     /**
1792      * @brief Calls a function and retrieves an integer result.
1793      *
1794      * This function calls the specified function with variadic arguments and retrieves an integer result.
1795      *
1796      * @param[in] env A pointer to the environment structure.
1797      * @param[in] fn The function to call.
1798      * @param[out] result A pointer to store the integer result.
1799      * @param[in] ... Variadic arguments to pass to the function.
1800      * @return Returns a status code of type `ani_status` indicating success or failure.
1801      */
1802     ani_status (*Function_Call_Int)(ani_env *env, ani_function fn, ani_int *result, ...);
1803 
1804     /**
1805      * @brief Calls a function and retrieves an integer result (array-based).
1806      *
1807      * This function calls the specified function with arguments provided in an array and retrieves an integer result.
1808      *
1809      * @param[in] env A pointer to the environment structure.
1810      * @param[in] fn The function to call.
1811      * @param[out] result A pointer to store the integer result.
1812      * @param[in] args A pointer to an array of arguments to pass to the function.
1813      * @return Returns a status code of type `ani_status` indicating success or failure.
1814      */
1815     ani_status (*Function_Call_Int_A)(ani_env *env, ani_function fn, ani_int *result, const ani_value *args);
1816 
1817     /**
1818      * @brief Calls a function and retrieves an integer result (variadic arguments).
1819      *
1820      * This function calls the specified function with arguments provided in a `va_list` and retrieves an integer
1821      * result.
1822      *
1823      * @param[in] env A pointer to the environment structure.
1824      * @param[in] fn The function to call.
1825      * @param[out] result A pointer to store the integer result.
1826      * @param[in] args A `va_list` containing the arguments to pass to the function.
1827      * @return Returns a status code of type `ani_status` indicating success or failure.
1828      */
1829     ani_status (*Function_Call_Int_V)(ani_env *env, ani_function fn, ani_int *result, va_list args);
1830 
1831     /**
1832      * @brief Calls a function and retrieves a long result.
1833      *
1834      * This function calls the specified function with variadic arguments and retrieves a long result.
1835      *
1836      * @param[in] env A pointer to the environment structure.
1837      * @param[in] fn The function to call.
1838      * @param[out] result A pointer to store the long result.
1839      * @param[in] ... Variadic arguments to pass to the function.
1840      * @return Returns a status code of type `ani_status` indicating success or failure.
1841      */
1842     ani_status (*Function_Call_Long)(ani_env *env, ani_function fn, ani_long *result, ...);
1843 
1844     /**
1845      * @brief Calls a function and retrieves a long result (array-based).
1846      *
1847      * This function calls the specified function with arguments provided in an array and retrieves a long result.
1848      *
1849      * @param[in] env A pointer to the environment structure.
1850      * @param[in] fn The function to call.
1851      * @param[out] result A pointer to store the long result.
1852      * @param[in] args A pointer to an array of arguments to pass to the function.
1853      * @return Returns a status code of type `ani_status` indicating success or failure.
1854      */
1855     ani_status (*Function_Call_Long_A)(ani_env *env, ani_function fn, ani_long *result, const ani_value *args);
1856 
1857     /**
1858      * @brief Calls a function and retrieves a long result (variadic arguments).
1859      *
1860      * This function calls the specified function with arguments provided in a `va_list` and retrieves a long result.
1861      *
1862      * @param[in] env A pointer to the environment structure.
1863      * @param[in] fn The function to call.
1864      * @param[out] result A pointer to store the long result.
1865      * @param[in] args A `va_list` containing the arguments to pass to the function.
1866      * @return Returns a status code of type `ani_status` indicating success or failure.
1867      */
1868     ani_status (*Function_Call_Long_V)(ani_env *env, ani_function fn, ani_long *result, va_list args);
1869 
1870     /**
1871      * @brief Calls a function and retrieves a float result.
1872      *
1873      * This function calls the specified function with variadic arguments and retrieves a float result.
1874      *
1875      * @param[in] env A pointer to the environment structure.
1876      * @param[in] fn The function to call.
1877      * @param[out] result A pointer to store the float result.
1878      * @param[in] ... Variadic arguments to pass to the function.
1879      * @return Returns a status code of type `ani_status` indicating success or failure.
1880      */
1881     ani_status (*Function_Call_Float)(ani_env *env, ani_function fn, ani_float *result, ...);
1882 
1883     /**
1884      * @brief Calls a function and retrieves a float result (array-based).
1885      *
1886      * This function calls the specified function with arguments provided in an array and retrieves a float result.
1887      *
1888      * @param[in] env A pointer to the environment structure.
1889      * @param[in] fn The function to call.
1890      * @param[out] result A pointer to store the float result.
1891      * @param[in] args A pointer to an array of arguments to pass to the function.
1892      * @return Returns a status code of type `ani_status` indicating success or failure.
1893      */
1894     ani_status (*Function_Call_Float_A)(ani_env *env, ani_function fn, ani_float *result, const ani_value *args);
1895 
1896     /**
1897      * @brief Calls a function and retrieves a float result (variadic arguments).
1898      *
1899      * This function calls the specified function with arguments provided in a `va_list` and retrieves a float result.
1900      *
1901      * @param[in] env A pointer to the environment structure.
1902      * @param[in] fn The function to call.
1903      * @param[out] result A pointer to store the float result.
1904      * @param[in] args A `va_list` containing the arguments to pass to the function.
1905      * @return Returns a status code of type `ani_status` indicating success or failure.
1906      */
1907     ani_status (*Function_Call_Float_V)(ani_env *env, ani_function fn, ani_float *result, va_list args);
1908 
1909     /**
1910      * @brief Calls a function and retrieves a double result.
1911      *
1912      * This function calls the specified function with variadic arguments and retrieves a double result.
1913      *
1914      * @param[in] env A pointer to the environment structure.
1915      * @param[in] fn The function to call.
1916      * @param[out] result A pointer to store the double result.
1917      * @param[in] ... Variadic arguments to pass to the function.
1918      * @return Returns a status code of type `ani_status` indicating success or failure.
1919      */
1920     ani_status (*Function_Call_Double)(ani_env *env, ani_function fn, ani_double *result, ...);
1921 
1922     /**
1923      * @brief Calls a function and retrieves a double result (array-based).
1924      *
1925      * This function calls the specified function with arguments provided in an array and retrieves a double result.
1926      *
1927      * @param[in] env A pointer to the environment structure.
1928      * @param[in] fn The function to call.
1929      * @param[out] result A pointer to store the double result.
1930      * @param[in] args A pointer to an array of arguments to pass to the function.
1931      * @return Returns a status code of type `ani_status` indicating success or failure.
1932      */
1933     ani_status (*Function_Call_Double_A)(ani_env *env, ani_function fn, ani_double *result, const ani_value *args);
1934 
1935     /**
1936      * @brief Calls a function and retrieves a double result (variadic arguments).
1937      *
1938      * This function calls the specified function with arguments provided in a `va_list` and retrieves a double result.
1939      *
1940      * @param[in] env A pointer to the environment structure.
1941      * @param[in] fn The function to call.
1942      * @param[out] result A pointer to store the double result.
1943      * @param[in] args A `va_list` containing the arguments to pass to the function.
1944      * @return Returns a status code of type `ani_status` indicating success or failure.
1945      */
1946     ani_status (*Function_Call_Double_V)(ani_env *env, ani_function fn, ani_double *result, va_list args);
1947 
1948     /**
1949      * @brief Calls a function and retrieves a reference result.
1950      *
1951      * This function calls the specified function with variadic arguments and retrieves a reference result.
1952      *
1953      * @param[in] env A pointer to the environment structure.
1954      * @param[in] fn The function to call.
1955      * @param[out] result A pointer to store the reference result.
1956      * @param[in] ... Variadic arguments to pass to the function.
1957      * @return Returns a status code of type `ani_status` indicating success or failure.
1958      */
1959     ani_status (*Function_Call_Ref)(ani_env *env, ani_function fn, ani_ref *result, ...);
1960 
1961     /**
1962      * @brief Calls a function and retrieves a reference result (array-based).
1963      *
1964      * This function calls the specified function with arguments provided in an array and retrieves a reference result.
1965      *
1966      * @param[in] env A pointer to the environment structure.
1967      * @param[in] fn The function to call.
1968      * @param[out] result A pointer to store the reference result.
1969      * @param[in] args A pointer to an array of arguments to pass to the function.
1970      * @return Returns a status code of type `ani_status` indicating success or failure.
1971      */
1972     ani_status (*Function_Call_Ref_A)(ani_env *env, ani_function fn, ani_ref *result, const ani_value *args);
1973 
1974     /**
1975      * @brief Calls a function and retrieves a reference result (variadic arguments).
1976      *
1977      * This function calls the specified function with arguments provided in a `va_list` and retrieves a reference
1978      * result.
1979      *
1980      * @param[in] env A pointer to the environment structure.
1981      * @param[in] fn The function to call.
1982      * @param[out] result A pointer to store the reference result.
1983      * @param[in] args A `va_list` containing the arguments to pass to the function.
1984      * @return Returns a status code of type `ani_status` indicating success or failure.
1985      */
1986     ani_status (*Function_Call_Ref_V)(ani_env *env, ani_function fn, ani_ref *result, va_list args);
1987 
1988     /**
1989      * @brief Calls a function without returning a result.
1990      *
1991      * This function calls the specified function with variadic arguments and does not return a result.
1992      *
1993      * @param[in] env A pointer to the environment structure.
1994      * @param[in] fn The function to call.
1995      * @param[in] ... Variadic arguments to pass to the function.
1996      * @return Returns a status code of type `ani_status` indicating success or failure.
1997      */
1998     ani_status (*Function_Call_Void)(ani_env *env, ani_function fn, ...);
1999 
2000     /**
2001      * @brief Calls a function without returning a result (array-based).
2002      *
2003      * This function calls the specified function with arguments provided in an array and does not return a result.
2004      *
2005      * @param[in] env A pointer to the environment structure.
2006      * @param[in] fn The function to call.
2007      * @param[in] args A pointer to an array of arguments to pass to the function.
2008      * @return Returns a status code of type `ani_status` indicating success or failure.
2009      */
2010     ani_status (*Function_Call_Void_A)(ani_env *env, ani_function fn, const ani_value *args);
2011 
2012     /**
2013      * @brief Calls a function without returning a result (variadic arguments).
2014      *
2015      * This function calls the specified function with arguments provided in a `va_list` and does not return a result.
2016      *
2017      * @param[in] env A pointer to the environment structure.
2018      * @param[in] fn The function to call.
2019      * @param[in] args A `va_list` containing the arguments to pass to the function.
2020      * @return Returns a status code of type `ani_status` indicating success or failure.
2021      */
2022     ani_status (*Function_Call_Void_V)(ani_env *env, ani_function fn, va_list args);
2023 
2024     /**
2025      * @brief Finds a field from by its name.
2026      *
2027      * This function locates a field based on its name and stores it in the result parameter.
2028      *
2029      * @param[in] env A pointer to the environment structure.
2030      * @param[in] cls The class to query.
2031      * @param[in] name The name of the field to find.
2032      * @param[out] result A pointer to the field to be populated.
2033      * @return Returns a status code of type `ani_status` indicating success or failure.
2034      */
2035     ani_status (*Class_FindField)(ani_env *env, ani_class cls, const char *name, ani_field *result);
2036 
2037     /**
2038      * @brief Finds a static field by its name.
2039      *
2040      * This function locates a static field based on its name and stores it in the result parameter.
2041      *
2042      * @param[in] env A pointer to the environment structure.
2043      * @param[in] cls The class to query.
2044      * @param[in] name The name of the static field to find.
2045      * @param[out] result A pointer to the static field to be populated.
2046      * @return Returns a status code of type `ani_status` indicating success or failure.
2047      */
2048     ani_status (*Class_FindStaticField)(ani_env *env, ani_class cls, const char *name, ani_static_field *result);
2049 
2050     /**
2051      * @brief Finds a method from by its name and signature.
2052      *
2053      * This function locates a method based on its name and signature and stores it in the result parameter.
2054      *
2055      * @param[in] env A pointer to the environment structure.
2056      * @param[in] cls The class to query.
2057      * @param[in] name The name of the method to find.
2058      * @param[in] signature The signature of the method to find.
2059      * @param[out] result A pointer to the method to be populated.
2060      * @return Returns a status code of type `ani_status` indicating success or failure.
2061      */
2062     ani_status (*Class_FindMethod)(ani_env *env, ani_class cls, const char *name, const char *signature,
2063                                    ani_method *result);
2064 
2065     /**
2066      * @brief Finds a static method from by its name and signature.
2067      *
2068      * This function locates a static method based on its name and signature and stores it in the result parameter.
2069      *
2070      * @param[in] env A pointer to the environment structure.
2071      * @param[in] cls The class to query.
2072      * @param[in] name The name of the static method to find.
2073      * @param[in] signature The signature of the static method to find.
2074      * @param[out] result A pointer to the static method to be populated.
2075      * @return Returns a status code of type `ani_status` indicating success or failure.
2076      */
2077     ani_status (*Class_FindStaticMethod)(ani_env *env, ani_class cls, const char *name, const char *signature,
2078                                          ani_static_method *result);
2079 
2080     /**
2081      * @brief Finds a setter method from by its name.
2082      *
2083      * This function locates a setter method based on its name and stores it in the result parameter.
2084      *
2085      * @param[in] env A pointer to the environment structure.
2086      * @param[in] cls The class to query.
2087      * @param[in] name The name of the property whose setter is to be found.
2088      * @param[out] result A pointer to the method to be populated.
2089      * @return Returns a status code of type `ani_status` indicating success or failure.
2090      */
2091     ani_status (*Class_FindSetter)(ani_env *env, ani_class cls, const char *name, ani_method *result);
2092 
2093     /**
2094      * @brief Finds a getter method from by its name.
2095      *
2096      * This function locates a getter method based on its name and stores it in the result parameter.
2097      *
2098      * @param[in] env A pointer to the environment structure.
2099      * @param[in] cls The class to query.
2100      * @param[in] name The name of the property whose getter is to be found.
2101      * @param[out] result A pointer to the method to be populated.
2102      * @return Returns a status code of type `ani_status` indicating success or failure.
2103      */
2104     ani_status (*Class_FindGetter)(ani_env *env, ani_class cls, const char *name, ani_method *result);
2105 
2106     /**
2107      * @brief Finds an indexable getter method from by its signature.
2108      *
2109      * This function locates an indexable getter method based on its signature and stores it in the result parameter.
2110      *
2111      * @param[in] env A pointer to the environment structure.
2112      * @param[in] cls The class to query.
2113      * @param[in] signature The signature of the indexable getter to find.
2114      * @param[out] result A pointer to the method to be populated.
2115      * @return Returns a status code of type `ani_status` indicating success or failure.
2116      */
2117     ani_status (*Class_FindIndexableGetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result);
2118 
2119     /**
2120      * @brief Finds an indexable setter method from by its signature.
2121      *
2122      * This function locates an indexable setter method based on its signature and stores it in the result parameter.
2123      *
2124      * @param[in] env A pointer to the environment structure.
2125      * @param[in] cls The class to query.
2126      * @param[in] signature The signature of the indexable setter to find.
2127      * @param[out] result A pointer to the method to be populated.
2128      * @return Returns a status code of type `ani_status` indicating success or failure.
2129      */
2130     ani_status (*Class_FindIndexableSetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result);
2131 
2132     /**
2133      * @brief Finds an iterator method.
2134      *
2135      * This function locates an iterator method
2136      *
2137      * @param[in] env A pointer to the environment structure.
2138      * @param[in] cls The class to query.
2139      * @param[out] result A pointer to the method to be populated.
2140      * @return Returns a status code of type `ani_status` indicating success or failure.
2141      */
2142     ani_status (*Class_FindIterator)(ani_env *env, ani_class cls, ani_method *result);
2143 
2144     /**
2145      * @brief Retrieves a boolean value from a static field of a class.
2146      *
2147      * This function retrieves the boolean value of the specified static field from the given class.
2148      *
2149      * @param[in] env A pointer to the environment structure.
2150      * @param[in] cls The class containing the static field.
2151      * @param[in] field The static field to retrieve.
2152      * @param[out] result A pointer to store the retrieved boolean value.
2153      * @return Returns a status code of type `ani_status` indicating success or failure.
2154      */
2155     ani_status (*Class_GetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field,
2156                                                ani_boolean *result);
2157 
2158     /**
2159      * @brief Retrieves a character value from a static field of a class.
2160      *
2161      * This function retrieves the character value of the specified static field from the given class.
2162      *
2163      * @param[in] env A pointer to the environment structure.
2164      * @param[in] cls The class containing the static field.
2165      * @param[in] field The static field to retrieve.
2166      * @param[out] result A pointer to store the retrieved character value.
2167      * @return Returns a status code of type `ani_status` indicating success or failure.
2168      */
2169     ani_status (*Class_GetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char *result);
2170 
2171     /**
2172      * @brief Retrieves a byte value from a static field of a class.
2173      *
2174      * This function retrieves the byte value of the specified static field from the given class.
2175      *
2176      * @param[in] env A pointer to the environment structure.
2177      * @param[in] cls The class containing the static field.
2178      * @param[in] field The static field to retrieve.
2179      * @param[out] result A pointer to store the retrieved byte value.
2180      * @return Returns a status code of type `ani_status` indicating success or failure.
2181      */
2182     ani_status (*Class_GetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte *result);
2183 
2184     /**
2185      * @brief Retrieves a short value from a static field of a class.
2186      *
2187      * This function retrieves the short value of the specified static field from the given class.
2188      *
2189      * @param[in] env A pointer to the environment structure.
2190      * @param[in] cls The class containing the static field.
2191      * @param[in] field The static field to retrieve.
2192      * @param[out] result A pointer to store the retrieved short value.
2193      * @return Returns a status code of type `ani_status` indicating success or failure.
2194      */
2195     ani_status (*Class_GetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short *result);
2196 
2197     /**
2198      * @brief Retrieves an integer value from a static field of a class.
2199      *
2200      * This function retrieves the integer value of the specified static field from the given class.
2201      *
2202      * @param[in] env A pointer to the environment structure.
2203      * @param[in] cls The class containing the static field.
2204      * @param[in] field The static field to retrieve.
2205      * @param[out] result A pointer to store the retrieved integer value.
2206      * @return Returns a status code of type `ani_status` indicating success or failure.
2207      */
2208     ani_status (*Class_GetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int *result);
2209 
2210     /**
2211      * @brief Retrieves a long value from a static field of a class.
2212      *
2213      * This function retrieves the long value of the specified static field from the given class.
2214      *
2215      * @param[in] env A pointer to the environment structure.
2216      * @param[in] cls The class containing the static field.
2217      * @param[in] field The static field to retrieve.
2218      * @param[out] result A pointer to store the retrieved long value.
2219      * @return Returns a status code of type `ani_status` indicating success or failure.
2220      */
2221     ani_status (*Class_GetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long *result);
2222 
2223     /**
2224      * @brief Retrieves a float value from a static field of a class.
2225      *
2226      * This function retrieves the float value of the specified static field from the given class.
2227      *
2228      * @param[in] env A pointer to the environment structure.
2229      * @param[in] cls The class containing the static field.
2230      * @param[in] field The static field to retrieve.
2231      * @param[out] result A pointer to store the retrieved float value.
2232      * @return Returns a status code of type `ani_status` indicating success or failure.
2233      */
2234     ani_status (*Class_GetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float *result);
2235 
2236     /**
2237      * @brief Retrieves a double value from a static field of a class.
2238      *
2239      * This function retrieves the double value of the specified static field from the given class.
2240      *
2241      * @param[in] env A pointer to the environment structure.
2242      * @param[in] cls The class containing the static field.
2243      * @param[in] field The static field to retrieve.
2244      * @param[out] result A pointer to store the retrieved double value.
2245      * @return Returns a status code of type `ani_status` indicating success or failure.
2246      */
2247     ani_status (*Class_GetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double *result);
2248 
2249     /**
2250      * @brief Retrieves a reference value from a static field of a class.
2251      *
2252      * This function retrieves the reference value of the specified static field from the given class.
2253      *
2254      * @param[in] env A pointer to the environment structure.
2255      * @param[in] cls The class containing the static field.
2256      * @param[in] field The static field to retrieve.
2257      * @param[out] result A pointer to store the retrieved reference value.
2258      * @return Returns a status code of type `ani_status` indicating success or failure.
2259      */
2260     ani_status (*Class_GetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref *result);
2261 
2262     /**
2263      * @brief Sets a boolean value to a static field of a class.
2264      *
2265      * This function assigns a boolean value to the specified static field of the given class.
2266      *
2267      * @param[in] env A pointer to the environment structure.
2268      * @param[in] cls The class containing the static field.
2269      * @param[in] field The static field to modify.
2270      * @param[in] value The boolean value to assign.
2271      * @return Returns a status code of type `ani_status` indicating success or failure.
2272      */
2273     ani_status (*Class_SetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, ani_boolean value);
2274 
2275     /**
2276      * @brief Sets a character value to a static field of a class.
2277      *
2278      * This function assigns a character value to the specified static field of the given class.
2279      *
2280      * @param[in] env A pointer to the environment structure.
2281      * @param[in] cls The class containing the static field.
2282      * @param[in] field The static field to modify.
2283      * @param[in] value The character value to assign.
2284      * @return Returns a status code of type `ani_status` indicating success or failure.
2285      */
2286     ani_status (*Class_SetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char value);
2287 
2288     /**
2289      * @brief Sets a byte value to a static field of a class.
2290      *
2291      * This function assigns a byte value to the specified static field of the given class.
2292      *
2293      * @param[in] env A pointer to the environment structure.
2294      * @param[in] cls The class containing the static field.
2295      * @param[in] field The static field to modify.
2296      * @param[in] value The byte value to assign.
2297      * @return Returns a status code of type `ani_status` indicating success or failure.
2298      */
2299     ani_status (*Class_SetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte value);
2300 
2301     /**
2302      * @brief Sets a short value to a static field of a class.
2303      *
2304      * This function assigns a short value to the specified static field of the given class.
2305      *
2306      * @param[in] env A pointer to the environment structure.
2307      * @param[in] cls The class containing the static field.
2308      * @param[in] field The static field to modify.
2309      * @param[in] value The short value to assign.
2310      * @return Returns a status code of type `ani_status` indicating success or failure.
2311      */
2312     ani_status (*Class_SetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short value);
2313 
2314     /**
2315      * @brief Sets an integer value to a static field of a class.
2316      *
2317      * This function assigns an integer value to the specified static field of the given class.
2318      *
2319      * @param[in] env A pointer to the environment structure.
2320      * @param[in] cls The class containing the static field.
2321      * @param[in] field The static field to modify.
2322      * @param[in] value The integer value to assign.
2323      * @return Returns a status code of type `ani_status` indicating success or failure.
2324      */
2325     ani_status (*Class_SetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int value);
2326 
2327     /**
2328      * @brief Sets a long value to a static field of a class.
2329      *
2330      * This function assigns a long value to the specified static field of the given class.
2331      *
2332      * @param[in] env A pointer to the environment structure.
2333      * @param[in] cls The class containing the static field.
2334      * @param[in] field The static field to modify.
2335      * @param[in] value The long value to assign.
2336      * @return Returns a status code of type `ani_status` indicating success or failure.
2337      */
2338     ani_status (*Class_SetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long value);
2339 
2340     /**
2341      * @brief Sets a float value to a static field of a class.
2342      *
2343      * This function assigns a float value to the specified static field of the given class.
2344      *
2345      * @param[in] env A pointer to the environment structure.
2346      * @param[in] cls The class containing the static field.
2347      * @param[in] field The static field to modify.
2348      * @param[in] value The float value to assign.
2349      * @return Returns a status code of type `ani_status` indicating success or failure.
2350      */
2351     ani_status (*Class_SetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float value);
2352 
2353     /**
2354      * @brief Sets a double value to a static field of a class.
2355      *
2356      * This function assigns a double value to the specified static field of the given class.
2357      *
2358      * @param[in] env A pointer to the environment structure.
2359      * @param[in] cls The class containing the static field.
2360      * @param[in] field The static field to modify.
2361      * @param[in] value The double value to assign.
2362      * @return Returns a status code of type `ani_status` indicating success or failure.
2363      */
2364     ani_status (*Class_SetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double value);
2365 
2366     /**
2367      * @brief Sets a reference value to a static field of a class.
2368      *
2369      * This function assigns a reference value to the specified static field of the given class.
2370      *
2371      * @param[in] env A pointer to the environment structure.
2372      * @param[in] cls The class containing the static field.
2373      * @param[in] field The static field to modify.
2374      * @param[in] value The reference value to assign.
2375      * @return Returns a status code of type `ani_status` indicating success or failure.
2376      */
2377     ani_status (*Class_SetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref value);
2378 
2379     /**
2380      * @brief Retrieves a boolean value from a static field of a class by its name.
2381      *
2382      * This function retrieves the boolean value of the specified static field from the given class by its name.
2383      *
2384      * @param[in] env A pointer to the environment structure.
2385      * @param[in] cls The class containing the static field.
2386      * @param[in] name The name of the static field to retrieve.
2387      * @param[out] result A pointer to store the retrieved boolean value.
2388      * @return Returns a status code of type `ani_status` indicating success or failure.
2389      */
2390     ani_status (*Class_GetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name,
2391                                                      ani_boolean *result);
2392 
2393     /**
2394      * @brief Retrieves a character value from a static field of a class by its name.
2395      *
2396      * This function retrieves the character value of the specified static field from the given class by its name.
2397      *
2398      * @param[in] env A pointer to the environment structure.
2399      * @param[in] cls The class containing the static field.
2400      * @param[in] name The name of the static field to retrieve.
2401      * @param[out] result A pointer to store the retrieved character value.
2402      * @return Returns a status code of type `ani_status` indicating success or failure.
2403      */
2404     ani_status (*Class_GetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result);
2405 
2406     /**
2407      * @brief Retrieves a byte value from a static field of a class by its name.
2408      *
2409      * This function retrieves the byte value of the specified static field from the given class by its name.
2410      *
2411      * @param[in] env A pointer to the environment structure.
2412      * @param[in] cls The class containing the static field.
2413      * @param[in] name The name of the static field to retrieve.
2414      * @param[out] result A pointer to store the retrieved byte value.
2415      * @return Returns a status code of type `ani_status` indicating success or failure.
2416      */
2417     ani_status (*Class_GetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result);
2418 
2419     /**
2420      * @brief Retrieves a short value from a static field of a class by its name.
2421      *
2422      * This function retrieves the short value of the specified static field from the given class by its name.
2423      *
2424      * @param[in] env A pointer to the environment structure.
2425      * @param[in] cls The class containing the static field.
2426      * @param[in] name The name of the static field to retrieve.
2427      * @param[out] result A pointer to store the retrieved short value.
2428      * @return Returns a status code of type `ani_status` indicating success or failure.
2429      */
2430     ani_status (*Class_GetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result);
2431 
2432     /**
2433      * @brief Retrieves an integer value from a static field of a class by its name.
2434      *
2435      * This function retrieves the integer value of the specified static field from the given class by its name.
2436      *
2437      * @param[in] env A pointer to the environment structure.
2438      * @param[in] cls The class containing the static field.
2439      * @param[in] name The name of the static field to retrieve.
2440      * @param[out] result A pointer to store the retrieved integer value.
2441      * @return Returns a status code of type `ani_status` indicating success or failure.
2442      */
2443     ani_status (*Class_GetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result);
2444 
2445     /**
2446      * @brief Retrieves a long value from a static field of a class by its name.
2447      *
2448      * This function retrieves the long value of the specified static field from the given class by its name.
2449      *
2450      * @param[in] env A pointer to the environment structure.
2451      * @param[in] cls The class containing the static field.
2452      * @param[in] name The name of the static field to retrieve.
2453      * @param[out] result A pointer to store the retrieved long value.
2454      * @return Returns a status code of type `ani_status` indicating success or failure.
2455      */
2456     ani_status (*Class_GetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result);
2457 
2458     /**
2459      * @brief Retrieves a float value from a static field of a class by its name.
2460      *
2461      * This function retrieves the float value of the specified static field from the given class by its name.
2462      *
2463      * @param[in] env A pointer to the environment structure.
2464      * @param[in] cls The class containing the static field.
2465      * @param[in] name The name of the static field to retrieve.
2466      * @param[out] result A pointer to store the retrieved float value.
2467      * @return Returns a status code of type `ani_status` indicating success or failure.
2468      */
2469     ani_status (*Class_GetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result);
2470 
2471     /**
2472      * @brief Retrieves a double value from a static field of a class by its name.
2473      *
2474      * This function retrieves the double value of the specified static field from the given class by its name.
2475      *
2476      * @param[in] env A pointer to the environment structure.
2477      * @param[in] cls The class containing the static field.
2478      * @param[in] name The name of the static field to retrieve.
2479      * @param[out] result A pointer to store the retrieved double value.
2480      * @return Returns a status code of type `ani_status` indicating success or failure.
2481      */
2482     ani_status (*Class_GetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result);
2483 
2484     /**
2485      * @brief Retrieves a reference value from a static field of a class by its name.
2486      *
2487      * This function retrieves the reference value of the specified static field from the given class by its name.
2488      *
2489      * @param[in] env A pointer to the environment structure.
2490      * @param[in] cls The class containing the static field.
2491      * @param[in] name The name of the static field to retrieve.
2492      * @param[out] result A pointer to store the retrieved reference value.
2493      * @return Returns a status code of type `ani_status` indicating success or failure.
2494      */
2495     ani_status (*Class_GetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result);
2496 
2497     /**
2498      * @brief Sets a boolean value to a static field of a class by its name.
2499      *
2500      * This function assigns a boolean value to the specified static field of the given class by its name.
2501      *
2502      * @param[in] env A pointer to the environment structure.
2503      * @param[in] cls The class containing the static field.
2504      * @param[in] name The name of the static field to modify.
2505      * @param[in] value The boolean value to assign.
2506      * @return Returns a status code of type `ani_status` indicating success or failure.
2507      */
2508     ani_status (*Class_SetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, ani_boolean value);
2509 
2510     /**
2511      * @brief Sets a character value to a static field of a class by its name.
2512      *
2513      * This function assigns a character value to the specified static field of the given class by its name.
2514      *
2515      * @param[in] env A pointer to the environment structure.
2516      * @param[in] cls The class containing the static field.
2517      * @param[in] name The name of the static field to modify.
2518      * @param[in] value The character value to assign.
2519      * @return Returns a status code of type `ani_status` indicating success or failure.
2520      */
2521     ani_status (*Class_SetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char value);
2522 
2523     /**
2524      * @brief Sets a byte value to a static field of a class by its name.
2525      *
2526      * This function assigns a byte value to the specified static field of the given class by its name.
2527      *
2528      * @param[in] env A pointer to the environment structure.
2529      * @param[in] cls The class containing the static field.
2530      * @param[in] name The name of the static field to modify.
2531      * @param[in] value The byte value to assign.
2532      * @return Returns a status code of type `ani_status` indicating success or failure.
2533      */
2534     ani_status (*Class_SetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte value);
2535 
2536     /**
2537      * @brief Sets a short value to a static field of a class by its name.
2538      *
2539      * This function assigns a short value to the specified static field of the given class by its name.
2540      *
2541      * @param[in] env A pointer to the environment structure.
2542      * @param[in] cls The class containing the static field.
2543      * @param[in] name The name of the static field to modify.
2544      * @param[in] value The short value to assign.
2545      * @return Returns a status code of type `ani_status` indicating success or failure.
2546      */
2547     ani_status (*Class_SetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short value);
2548 
2549     /**
2550      * @brief Sets an integer value to a static field of a class by its name.
2551      *
2552      * This function assigns an integer value to the specified static field of the given class by its name.
2553      *
2554      * @param[in] env A pointer to the environment structure.
2555      * @param[in] cls The class containing the static field.
2556      * @param[in] name The name of the static field to modify.
2557      * @param[in] value The integer value to assign.
2558      * @return Returns a status code of type `ani_status` indicating success or failure.
2559      */
2560     ani_status (*Class_SetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int value);
2561 
2562     /**
2563      * @brief Sets a long value to a static field of a class by its name.
2564      *
2565      * This function assigns a long value to the specified static field of the given class by its name.
2566      *
2567      * @param[in] env A pointer to the environment structure.
2568      * @param[in] cls The class containing the static field.
2569      * @param[in] name The name of the static field to modify.
2570      * @param[in] value The long value to assign.
2571      * @return Returns a status code of type `ani_status` indicating success or failure.
2572      */
2573     ani_status (*Class_SetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long value);
2574 
2575     /**
2576      * @brief Sets a float value to a static field of a class by its name.
2577      *
2578      * This function assigns a float value to the specified static field of the given class by its name.
2579      *
2580      * @param[in] env A pointer to the environment structure.
2581      * @param[in] cls The class containing the static field.
2582      * @param[in] name The name of the static field to modify.
2583      * @param[in] value The float value to assign.
2584      * @return Returns a status code of type `ani_status` indicating success or failure.
2585      */
2586     ani_status (*Class_SetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float value);
2587 
2588     /**
2589      * @brief Sets a double value to a static field of a class by its name.
2590      *
2591      * This function assigns a double value to the specified static field of the given class by its name.
2592      *
2593      * @param[in] env A pointer to the environment structure.
2594      * @param[in] cls The class containing the static field.
2595      * @param[in] name The name of the static field to modify.
2596      * @param[in] value The double value to assign.
2597      * @return Returns a status code of type `ani_status` indicating success or failure.
2598      */
2599     ani_status (*Class_SetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double value);
2600 
2601     /**
2602      * @brief Sets a reference value to a static field of a class by its name.
2603      *
2604      * This function assigns a reference value to the specified static field of the given class by its name.
2605      *
2606      * @param[in] env A pointer to the environment structure.
2607      * @param[in] cls The class containing the static field.
2608      * @param[in] name The name of the static field to modify.
2609      * @param[in] value The reference value to assign.
2610      * @return Returns a status code of type `ani_status` indicating success or failure.
2611      */
2612     ani_status (*Class_SetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref value);
2613 
2614     /**
2615      * @brief Calls a static method with a boolean return type.
2616      *
2617      * This function calls the specified static method of a class and retrieves a boolean result using variadic
2618      * arguments.
2619      *
2620      * @param[in] env A pointer to the environment structure.
2621      * @param[in] cls The class containing the static method.
2622      * @param[in] method The static method to call.
2623      * @param[out] result A pointer to store the boolean result.
2624      * @param[in] ... Variadic arguments to pass to the method.
2625      * @return Returns a status code of type `ani_status` indicating success or failure.
2626      */
2627     ani_status (*Class_CallStaticMethod_Boolean)(ani_env *env, ani_class cls, ani_static_method method,
2628                                                  ani_boolean *result, ...);
2629 
2630     /**
2631      * @brief Calls a static method with a boolean return type (array-based).
2632      *
2633      * This function calls the specified static method of a class and retrieves a boolean result using arguments from an
2634      * array.
2635      *
2636      * @param[in] env A pointer to the environment structure.
2637      * @param[in] cls The class containing the static method.
2638      * @param[in] method The static method to call.
2639      * @param[out] result A pointer to store the boolean result.
2640      * @param[in] args An array of arguments to pass to the method.
2641      * @return Returns a status code of type `ani_status` indicating success or failure.
2642      */
2643     ani_status (*Class_CallStaticMethod_Boolean_A)(ani_env *env, ani_class cls, ani_static_method method,
2644                                                    ani_boolean *result, const ani_value *args);
2645 
2646     /**
2647      * @brief Calls a static method with a boolean return type (variadic arguments).
2648      *
2649      * This function calls the specified static method of a class and retrieves a boolean result using a `va_list`.
2650      *
2651      * @param[in] env A pointer to the environment structure.
2652      * @param[in] cls The class containing the static method.
2653      * @param[in] method The static method to call.
2654      * @param[out] result A pointer to store the boolean result.
2655      * @param[in] args A `va_list` of arguments to pass to the method.
2656      * @return Returns a status code of type `ani_status` indicating success or failure.
2657      */
2658     ani_status (*Class_CallStaticMethod_Boolean_V)(ani_env *env, ani_class cls, ani_static_method method,
2659                                                    ani_boolean *result, va_list args);
2660 
2661     /**
2662      * @brief Calls a static method with a character return type.
2663      *
2664      * This function calls the specified static method of a class and retrieves a character result using variadic
2665      * arguments.
2666      *
2667      * @param[in] env A pointer to the environment structure.
2668      * @param[in] cls The class containing the static method.
2669      * @param[in] method The static method to call.
2670      * @param[out] result A pointer to store the character result.
2671      * @param[in] ... Variadic arguments to pass to the method.
2672      * @return Returns a status code of type `ani_status` indicating success or failure.
2673      */
2674     ani_status (*Class_CallStaticMethod_Char)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
2675                                               ...);
2676 
2677     /**
2678      * @brief Calls a static method with a character return type (array-based).
2679      *
2680      * This function calls the specified static method of a class and retrieves a character result using arguments from
2681      * an array.
2682      *
2683      * @param[in] env A pointer to the environment structure.
2684      * @param[in] cls The class containing the static method.
2685      * @param[in] method The static method to call.
2686      * @param[out] result A pointer to store the character result.
2687      * @param[in] args An array of arguments to pass to the method.
2688      * @return Returns a status code of type `ani_status` indicating success or failure.
2689      */
2690     ani_status (*Class_CallStaticMethod_Char_A)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
2691                                                 const ani_value *args);
2692 
2693     /**
2694      * @brief Calls a static method with a character return type (variadic arguments).
2695      *
2696      * This function calls the specified static method of a class and retrieves a character result using a `va_list`.
2697      *
2698      * @param[in] env A pointer to the environment structure.
2699      * @param[in] cls The class containing the static method.
2700      * @param[in] method The static method to call.
2701      * @param[out] result A pointer to store the character result.
2702      * @param[in] args A `va_list` of arguments to pass to the method.
2703      * @return Returns a status code of type `ani_status` indicating success or failure.
2704      */
2705     ani_status (*Class_CallStaticMethod_Char_V)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
2706                                                 va_list args);
2707 
2708     /**
2709      * @brief Calls a static method with a byte return type.
2710      *
2711      * This function calls the specified static method of a class and retrieves a byte result using variadic arguments.
2712      *
2713      * @param[in] env A pointer to the environment structure.
2714      * @param[in] cls The class containing the static method.
2715      * @param[in] method The static method to call.
2716      * @param[out] result A pointer to store the byte result.
2717      * @param[in] ... Variadic arguments to pass to the method.
2718      * @return Returns a status code of type `ani_status` indicating success or failure.
2719      */
2720     ani_status (*Class_CallStaticMethod_Byte)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
2721                                               ...);
2722 
2723     /**
2724      * @brief Calls a static method with a byte return type (array-based).
2725      *
2726      * This function calls the specified static method of a class and retrieves a byte result using arguments from an
2727      * array.
2728      *
2729      * @param[in] env A pointer to the environment structure.
2730      * @param[in] cls The class containing the static method.
2731      * @param[in] method The static method to call.
2732      * @param[out] result A pointer to store the byte result.
2733      * @param[in] args An array of arguments to pass to the method.
2734      * @return Returns a status code of type `ani_status` indicating success or failure.
2735      */
2736     ani_status (*Class_CallStaticMethod_Byte_A)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
2737                                                 const ani_value *args);
2738 
2739     /**
2740      * @brief Calls a static method with a byte return type (variadic arguments).
2741      *
2742      * This function calls the specified static method of a class and retrieves a byte result using a `va_list`.
2743      *
2744      * @param[in] env A pointer to the environment structure.
2745      * @param[in] cls The class containing the static method.
2746      * @param[in] method The static method to call.
2747      * @param[out] result A pointer to store the byte result.
2748      * @param[in] args A `va_list` of arguments to pass to the method.
2749      * @return Returns a status code of type `ani_status` indicating success or failure.
2750      */
2751     ani_status (*Class_CallStaticMethod_Byte_V)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
2752                                                 va_list args);
2753 
2754     /**
2755      * @brief Calls a static method with a short return type.
2756      *
2757      * This function calls the specified static method of a class and retrieves a short result using variadic arguments.
2758      *
2759      * @param[in] env A pointer to the environment structure.
2760      * @param[in] cls The class containing the static method.
2761      * @param[in] method The static method to call.
2762      * @param[out] result A pointer to store the short result.
2763      * @param[in] ... Variadic arguments to pass to the method.
2764      * @return Returns a status code of type `ani_status` indicating success or failure.
2765      */
2766     ani_status (*Class_CallStaticMethod_Short)(ani_env *env, ani_class cls, ani_static_method method, ani_short *result,
2767                                                ...);
2768 
2769     /**
2770      * @brief Calls a static method with a short return type (array-based).
2771      *
2772      * This function calls the specified static method of a class and retrieves a short result using arguments from an
2773      * array.
2774      *
2775      * @param[in] env A pointer to the environment structure.
2776      * @param[in] cls The class containing the static method.
2777      * @param[in] method The static method to call.
2778      * @param[out] result A pointer to store the short result.
2779      * @param[in] args An array of arguments to pass to the method.
2780      * @return Returns a status code of type `ani_status` indicating success or failure.
2781      */
2782     ani_status (*Class_CallStaticMethod_Short_A)(ani_env *env, ani_class cls, ani_static_method method,
2783                                                  ani_short *result, const ani_value *args);
2784 
2785     /**
2786      * @brief Calls a static method with a short return type (variadic arguments).
2787      *
2788      * This function calls the specified static method of a class and retrieves a short result using a `va_list`.
2789      *
2790      * @param[in] env A pointer to the environment structure.
2791      * @param[in] cls The class containing the static method.
2792      * @param[in] method The static method to call.
2793      * @param[out] result A pointer to store the short result.
2794      * @param[in] args A `va_list` of arguments to pass to the method.
2795      * @return Returns a status code of type `ani_status` indicating success or failure.
2796      */
2797     ani_status (*Class_CallStaticMethod_Short_V)(ani_env *env, ani_class cls, ani_static_method method,
2798                                                  ani_short *result, va_list args);
2799 
2800     /**
2801      * @brief Calls a static method with an integer return type.
2802      *
2803      * This function calls the specified static method of a class and retrieves an integer result using variadic
2804      * arguments.
2805      *
2806      * @param[in] env A pointer to the environment structure.
2807      * @param[in] cls The class containing the static method.
2808      * @param[in] method The static method to call.
2809      * @param[out] result A pointer to store the integer result.
2810      * @param[in] ... Variadic arguments to pass to the method.
2811      * @return Returns a status code of type `ani_status` indicating success or failure.
2812      */
2813     ani_status (*Class_CallStaticMethod_Int)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
2814                                              ...);
2815 
2816     /**
2817      * @brief Calls a static method with an integer return type (array-based).
2818      *
2819      * This function calls the specified static method of a class and retrieves an integer result using arguments from
2820      * an array.
2821      *
2822      * @param[in] env A pointer to the environment structure.
2823      * @param[in] cls The class containing the static method.
2824      * @param[in] method The static method to call.
2825      * @param[out] result A pointer to store the integer result.
2826      * @param[in] args An array of arguments to pass to the method.
2827      * @return Returns a status code of type `ani_status` indicating success or failure.
2828      */
2829     ani_status (*Class_CallStaticMethod_Int_A)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
2830                                                const ani_value *args);
2831 
2832     /**
2833      * @brief Calls a static method with an integer return type (variadic arguments).
2834      *
2835      * This function calls the specified static method of a class and retrieves an integer result using a `va_list`.
2836      *
2837      * @param[in] env A pointer to the environment structure.
2838      * @param[in] cls The class containing the static method.
2839      * @param[in] method The static method to call.
2840      * @param[out] result A pointer to store the integer result.
2841      * @param[in] args A `va_list` of arguments to pass to the method.
2842      * @return Returns a status code of type `ani_status` indicating success or failure.
2843      */
2844     ani_status (*Class_CallStaticMethod_Int_V)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
2845                                                va_list args);
2846 
2847     /**
2848      * @brief Calls a static method with a long return type.
2849      *
2850      * This function calls the specified static method of a class and retrieves a long result using variadic arguments.
2851      *
2852      * @param[in] env A pointer to the environment structure.
2853      * @param[in] cls The class containing the static method.
2854      * @param[in] method The static method to call.
2855      * @param[out] result A pointer to store the long result.
2856      * @param[in] ... Variadic arguments to pass to the method.
2857      * @return Returns a status code of type `ani_status` indicating success or failure.
2858      */
2859     ani_status (*Class_CallStaticMethod_Long)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
2860                                               ...);
2861 
2862     /**
2863      * @brief Calls a static method with a long return type (array-based).
2864      *
2865      * This function calls the specified static method of a class and retrieves a long result using arguments from an
2866      * array.
2867      *
2868      * @param[in] env A pointer to the environment structure.
2869      * @param[in] cls The class containing the static method.
2870      * @param[in] method The static method to call.
2871      * @param[out] result A pointer to store the long result.
2872      * @param[in] args An array of arguments to pass to the method.
2873      * @return Returns a status code of type `ani_status` indicating success or failure.
2874      */
2875     ani_status (*Class_CallStaticMethod_Long_A)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
2876                                                 const ani_value *args);
2877 
2878     /**
2879      * @brief Calls a static method with a long return type (variadic arguments).
2880      *
2881      * This function calls the specified static method of a class and retrieves a long result using a `va_list`.
2882      *
2883      * @param[in] env A pointer to the environment structure.
2884      * @param[in] cls The class containing the static method.
2885      * @param[in] method The static method to call.
2886      * @param[out] result A pointer to store the long result.
2887      * @param[in] args A `va_list` of arguments to pass to the method.
2888      * @return Returns a status code of type `ani_status` indicating success or failure.
2889      */
2890     ani_status (*Class_CallStaticMethod_Long_V)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
2891                                                 va_list args);
2892 
2893     /**
2894      * @brief Calls a static method with a float return type.
2895      *
2896      * This function calls the specified static method of a class and retrieves a float result using variadic arguments.
2897      *
2898      * @param[in] env A pointer to the environment structure.
2899      * @param[in] cls The class containing the static method.
2900      * @param[in] method The static method to call.
2901      * @param[out] result A pointer to store the float result.
2902      * @param[in] ... Variadic arguments to pass to the method.
2903      * @return Returns a status code of type `ani_status` indicating success or failure.
2904      */
2905     ani_status (*Class_CallStaticMethod_Float)(ani_env *env, ani_class cls, ani_static_method method, ani_float *result,
2906                                                ...);
2907 
2908     /**
2909      * @brief Calls a static method with a float return type (array-based).
2910      *
2911      * This function calls the specified static method of a class and retrieves a float result using arguments from an
2912      * array.
2913      *
2914      * @param[in] env A pointer to the environment structure.
2915      * @param[in] cls The class containing the static method.
2916      * @param[in] method The static method to call.
2917      * @param[out] result A pointer to store the float result.
2918      * @param[in] args An array of arguments to pass to the method.
2919      * @return Returns a status code of type `ani_status` indicating success or failure.
2920      */
2921     ani_status (*Class_CallStaticMethod_Float_A)(ani_env *env, ani_class cls, ani_static_method method,
2922                                                  ani_float *result, const ani_value *args);
2923 
2924     /**
2925      * @brief Calls a static method with a float return type (variadic arguments).
2926      *
2927      * This function calls the specified static method of a class and retrieves a float result using a `va_list`.
2928      *
2929      * @param[in] env A pointer to the environment structure.
2930      * @param[in] cls The class containing the static method.
2931      * @param[in] method The static method to call.
2932      * @param[out] result A pointer to store the float result.
2933      * @param[in] args A `va_list` of arguments to pass to the method.
2934      * @return Returns a status code of type `ani_status` indicating success or failure.
2935      */
2936     ani_status (*Class_CallStaticMethod_Float_V)(ani_env *env, ani_class cls, ani_static_method method,
2937                                                  ani_float *result, va_list args);
2938 
2939     /**
2940      * @brief Calls a static method with a double return type.
2941      *
2942      * This function calls the specified static method of a class and retrieves a double result using variadic
2943      * arguments.
2944      *
2945      * @param[in] env A pointer to the environment structure.
2946      * @param[in] cls The class containing the static method.
2947      * @param[in] method The static method to call.
2948      * @param[out] result A pointer to store the double result.
2949      * @param[in] ... Variadic arguments to pass to the method.
2950      * @return Returns a status code of type `ani_status` indicating success or failure.
2951      */
2952     ani_status (*Class_CallStaticMethod_Double)(ani_env *env, ani_class cls, ani_static_method method,
2953                                                 ani_double *result, ...);
2954 
2955     /**
2956      * @brief Calls a static method with a double return type (array-based).
2957      *
2958      * This function calls the specified static method of a class and retrieves a double result using arguments from an
2959      * array.
2960      *
2961      * @param[in] env A pointer to the environment structure.
2962      * @param[in] cls The class containing the static method.
2963      * @param[in] method The static method to call.
2964      * @param[out] result A pointer to store the double result.
2965      * @param[in] args An array of arguments to pass to the method.
2966      * @return Returns a status code of type `ani_status` indicating success or failure.
2967      */
2968     ani_status (*Class_CallStaticMethod_Double_A)(ani_env *env, ani_class cls, ani_static_method method,
2969                                                   ani_double *result, const ani_value *args);
2970 
2971     /**
2972      * @brief Calls a static method with a double return type (variadic arguments).
2973      *
2974      * This function calls the specified static method of a class and retrieves a double result using a `va_list`.
2975      *
2976      * @param[in] env A pointer to the environment structure.
2977      * @param[in] cls The class containing the static method.
2978      * @param[in] method The static method to call.
2979      * @param[out] result A pointer to store the double result.
2980      * @param[in] args A `va_list` of arguments to pass to the method.
2981      * @return Returns a status code of type `ani_status` indicating success or failure.
2982      */
2983     ani_status (*Class_CallStaticMethod_Double_V)(ani_env *env, ani_class cls, ani_static_method method,
2984                                                   ani_double *result, va_list args);
2985 
2986     /**
2987      * @brief Calls a static method with a reference return type.
2988      *
2989      * This function calls the specified static method of a class and retrieves a reference result using variadic
2990      * arguments.
2991      *
2992      * @param[in] env A pointer to the environment structure.
2993      * @param[in] cls The class containing the static method.
2994      * @param[in] method The static method to call.
2995      * @param[out] result A pointer to store the reference result.
2996      * @param[in] ... Variadic arguments to pass to the method.
2997      * @return Returns a status code of type `ani_status` indicating success or failure.
2998      */
2999     ani_status (*Class_CallStaticMethod_Ref)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3000                                              ...);
3001 
3002     /**
3003      * @brief Calls a static method with a reference return type (array-based).
3004      *
3005      * This function calls the specified static method of a class and retrieves a reference result using arguments from
3006      * an array.
3007      *
3008      * @param[in] env A pointer to the environment structure.
3009      * @param[in] cls The class containing the static method.
3010      * @param[in] method The static method to call.
3011      * @param[out] result A pointer to store the reference result.
3012      * @param[in] args An array of arguments to pass to the method.
3013      * @return Returns a status code of type `ani_status` indicating success or failure.
3014      */
3015     ani_status (*Class_CallStaticMethod_Ref_A)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3016                                                const ani_value *args);
3017 
3018     /**
3019      * @brief Calls a static method with a reference return type (variadic arguments).
3020      *
3021      * This function calls the specified static method of a class and retrieves a reference result using a `va_list`.
3022      *
3023      * @param[in] env A pointer to the environment structure.
3024      * @param[in] cls The class containing the static method.
3025      * @param[in] method The static method to call.
3026      * @param[out] result A pointer to store the reference result.
3027      * @param[in] args A `va_list` of arguments to pass to the method.
3028      * @return Returns a status code of type `ani_status` indicating success or failure.
3029      */
3030     ani_status (*Class_CallStaticMethod_Ref_V)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3031                                                va_list args);
3032 
3033     /**
3034      * @brief Calls a static method with no return value.
3035      *
3036      * This function calls the specified static method of a class using variadic arguments. The method does not return a
3037      * value.
3038      *
3039      * @param[in] env A pointer to the environment structure.
3040      * @param[in] cls The class containing the static method.
3041      * @param[in] method The static method to call.
3042      * @param[in] ... Variadic arguments to pass to the method.
3043      * @return Returns a status code of type `ani_status` indicating success or failure.
3044      */
3045     ani_status (*Class_CallStaticMethod_Void)(ani_env *env, ani_class cls, ani_static_method method, ...);
3046 
3047     /**
3048      * @brief Calls a static method with no return value (array-based).
3049      *
3050      * This function calls the specified static method of a class using arguments from an array. The method does not
3051      * return a value.
3052      *
3053      * @param[in] env A pointer to the environment structure.
3054      * @param[in] cls The class containing the static method.
3055      * @param[in] method The static method to call.
3056      * @param[in] args An array of arguments to pass to the method.
3057      * @return Returns a status code of type `ani_status` indicating success or failure.
3058      */
3059     ani_status (*Class_CallStaticMethod_Void_A)(ani_env *env, ani_class cls, ani_static_method method,
3060                                                 const ani_value *args);
3061 
3062     /**
3063      * @brief Calls a static method with no return value (variadic arguments).
3064      *
3065      * This function calls the specified static method of a class using a `va_list`. The method does not return a value.
3066      *
3067      * @param[in] env A pointer to the environment structure.
3068      * @param[in] cls The class containing the static method.
3069      * @param[in] method The static method to call.
3070      * @param[in] args A `va_list` of arguments to pass to the method.
3071      * @return Returns a status code of type `ani_status` indicating success or failure.
3072      */
3073     ani_status (*Class_CallStaticMethod_Void_V)(ani_env *env, ani_class cls, ani_static_method method, va_list args);
3074 
3075     /**
3076      * @brief Calls a static method by name with a boolean return type.
3077      *
3078      * This function calls the specified static method of a class by its name and retrieves a boolean result using
3079      * variadic arguments.
3080      *
3081      * @param[in] env A pointer to the environment structure.
3082      * @param[in] cls The class containing the static method.
3083      * @param[in] name The name of the static method to call.
3084      * @param[in] signature The signature of the static method to call.
3085      * @param[out] result A pointer to store the boolean result.
3086      * @param[in] ... Variadic arguments to pass to the method.
3087      * @return Returns a status code of type `ani_status` indicating success or failure.
3088      */
3089     ani_status (*Class_CallStaticMethodByName_Boolean)(ani_env *env, ani_class cls, const char *name,
3090                                                        const char *signature, ani_boolean *result, ...);
3091 
3092     /**
3093      * @brief Calls a static method by name with a boolean return type (array-based).
3094      *
3095      * This function calls the specified static method of a class by its name and retrieves a boolean result using
3096      * arguments from an array.
3097      *
3098      * @param[in] env A pointer to the environment structure.
3099      * @param[in] cls The class containing the static method.
3100      * @param[in] name The name of the static method to call.
3101      * @param[in] signature The signature of the static method to call.
3102      * @param[out] result A pointer to store the boolean result.
3103      * @param[in] args An array of arguments to pass to the method.
3104      * @return Returns a status code of type `ani_status` indicating success or failure.
3105      */
3106     ani_status (*Class_CallStaticMethodByName_Boolean_A)(ani_env *env, ani_class cls, const char *name,
3107                                                          const char *signature, ani_boolean *result,
3108                                                          const ani_value *args);
3109 
3110     /**
3111      * @brief Calls a static method by name with a boolean return type (variadic arguments).
3112      *
3113      * This function calls the specified static method of a class by its name and retrieves a boolean result using a
3114      * `va_list`.
3115      *
3116      * @param[in] env A pointer to the environment structure.
3117      * @param[in] cls The class containing the static method.
3118      * @param[in] name The name of the static method to call.
3119      * @param[in] signature The signature of the static method to call.
3120      * @param[out] result A pointer to store the boolean result.
3121      * @param[in] args A `va_list` of arguments to pass to the method.
3122      * @return Returns a status code of type `ani_status` indicating success or failure.
3123      */
3124     ani_status (*Class_CallStaticMethodByName_Boolean_V)(ani_env *env, ani_class cls, const char *name,
3125                                                          const char *signature, ani_boolean *result, va_list args);
3126 
3127     /**
3128      * @brief Calls a static method by name with a char return type.
3129      *
3130      * This function calls the specified static method of a class by its name and retrieves a char result using variadic
3131      * arguments.
3132      *
3133      * @param[in] env A pointer to the environment structure.
3134      * @param[in] cls The class containing the static method.
3135      * @param[in] name The name of the static method to call.
3136      * @param[in] signature The signature of the static method to call.
3137      * @param[out] result A pointer to store the char result.
3138      * @param[in] ... Variadic arguments to pass to the method.
3139      * @return Returns a status code of type `ani_status` indicating success or failure.
3140      */
3141     ani_status (*Class_CallStaticMethodByName_Char)(ani_env *env, ani_class cls, const char *name,
3142                                                     const char *signature, ani_char *result, ...);
3143 
3144     /**
3145      * @brief Calls a static method by name with a char return type (array-based).
3146      *
3147      * This function calls the specified static method of a class by its name and retrieves a char result using
3148      * arguments from an array.
3149      *
3150      * @param[in] env A pointer to the environment structure.
3151      * @param[in] cls The class containing the static method.
3152      * @param[in] name The name of the static method to call.
3153      * @param[in] signature The signature of the static method to call.
3154      * @param[out] result A pointer to store the char result.
3155      * @param[in] args An array of arguments to pass to the method.
3156      * @return Returns a status code of type `ani_status` indicating success or failure.
3157      */
3158     ani_status (*Class_CallStaticMethodByName_Char_A)(ani_env *env, ani_class cls, const char *name,
3159                                                       const char *signature, ani_char *result, const ani_value *args);
3160 
3161     /**
3162      * @brief Calls a static method by name with a char return type (variadic arguments).
3163      *
3164      * This function calls the specified static method of a class by its name and retrieves a char result using a
3165      * `va_list`.
3166      *
3167      * @param[in] env A pointer to the environment structure.
3168      * @param[in] cls The class containing the static method.
3169      * @param[in] name The name of the static method to call.
3170      * @param[in] signature The signature of the static method to call.
3171      * @param[out] result A pointer to store the char result.
3172      * @param[in] args A `va_list` of arguments to pass to the method.
3173      * @return Returns a status code of type `ani_status` indicating success or failure.
3174      */
3175     ani_status (*Class_CallStaticMethodByName_Char_V)(ani_env *env, ani_class cls, const char *name,
3176                                                       const char *signature, ani_char *result, va_list args);
3177 
3178     /**
3179      * @brief Calls a static method by name with a byte return type.
3180      *
3181      * This function calls the specified static method of a class by its name and retrieves a byte result using variadic
3182      * arguments.
3183      *
3184      * @param[in] env A pointer to the environment structure.
3185      * @param[in] cls The class containing the static method.
3186      * @param[in] name The name of the static method to call.
3187      * @param[in] signature The signature of the static method to call.
3188      * @param[out] result A pointer to store the byte result.
3189      * @param[in] ... Variadic arguments to pass to the method.
3190      * @return Returns a status code of type `ani_status` indicating success or failure.
3191      */
3192     ani_status (*Class_CallStaticMethodByName_Byte)(ani_env *env, ani_class cls, const char *name,
3193                                                     const char *signature, ani_byte *result, ...);
3194 
3195     /**
3196      * @brief Calls a static method by name with a byte return type (array-based).
3197      *
3198      * This function calls the specified static method of a class by its name and retrieves a byte result using
3199      * arguments from an array.
3200      *
3201      * @param[in] env A pointer to the environment structure.
3202      * @param[in] cls The class containing the static method.
3203      * @param[in] name The name of the static method to call.
3204      * @param[in] signature The signature of the static method to call.
3205      * @param[out] result A pointer to store the byte result.
3206      * @param[in] args An array of arguments to pass to the method.
3207      * @return Returns a status code of type `ani_status` indicating success or failure.
3208      */
3209     ani_status (*Class_CallStaticMethodByName_Byte_A)(ani_env *env, ani_class cls, const char *name,
3210                                                       const char *signature, ani_byte *result, const ani_value *args);
3211 
3212     /**
3213      * @brief Calls a static method by name with a byte return type (variadic arguments).
3214      *
3215      * This function calls the specified static method of a class by its name and retrieves a byte result using a
3216      * `va_list`.
3217      *
3218      * @param[in] env A pointer to the environment structure.
3219      * @param[in] cls The class containing the static method.
3220      * @param[in] name The name of the static method to call.
3221      * @param[in] signature The signature of the static method to call.
3222      * @param[out] result A pointer to store the byte result.
3223      * @param[in] args A `va_list` of arguments to pass to the method.
3224      * @return Returns a status code of type `ani_status` indicating success or failure.
3225      */
3226     ani_status (*Class_CallStaticMethodByName_Byte_V)(ani_env *env, ani_class cls, const char *name,
3227                                                       const char *signature, ani_byte *result, va_list args);
3228 
3229     /**
3230      * @brief Calls a static method by name with a short return type.
3231      *
3232      * This function calls the specified static method of a class by its name and retrieves a short result using
3233      * variadic arguments.
3234      *
3235      * @param[in] env A pointer to the environment structure.
3236      * @param[in] cls The class containing the static method.
3237      * @param[in] name The name of the static method to call.
3238      * @param[in] signature The signature of the static method to call.
3239      * @param[out] result A pointer to store the short result.
3240      * @param[in] ... Variadic arguments to pass to the method.
3241      * @return Returns a status code of type `ani_status` indicating success or failure.
3242      */
3243     ani_status (*Class_CallStaticMethodByName_Short)(ani_env *env, ani_class cls, const char *name,
3244                                                      const char *signature, ani_short *result, ...);
3245 
3246     /**
3247      * @brief Calls a static method by name with a short return type (array-based).
3248      *
3249      * This function calls the specified static method of a class by its name and retrieves a short result using
3250      * arguments from an array.
3251      *
3252      * @param[in] env A pointer to the environment structure.
3253      * @param[in] cls The class containing the static method.
3254      * @param[in] name The name of the static method to call.
3255      * @param[in] signature The signature of the static method to call.
3256      * @param[out] result A pointer to store the short result.
3257      * @param[in] args An array of arguments to pass to the method.
3258      * @return Returns a status code of type `ani_status` indicating success or failure.
3259      */
3260     ani_status (*Class_CallStaticMethodByName_Short_A)(ani_env *env, ani_class cls, const char *name,
3261                                                        const char *signature, ani_short *result, const ani_value *args);
3262 
3263     /**
3264      * @brief Calls a static method by name with a short return type (variadic arguments).
3265      *
3266      * This function calls the specified static method of a class by its name and retrieves a short result using a
3267      * `va_list`.
3268      *
3269      * @param[in] env A pointer to the environment structure.
3270      * @param[in] cls The class containing the static method.
3271      * @param[in] name The name of the static method to call.
3272      * @param[in] signature The signature of 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_CallStaticMethodByName_Short_V)(ani_env *env, ani_class cls, const char *name,
3278                                                        const char *signature, ani_short *result, va_list args);
3279 
3280     /**
3281      * @brief Calls a static method by name with a integer return type.
3282      *
3283      * This function calls the specified static method of a class by its name and retrieves a integer result using
3284      * variadic 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] name The name of the static method to call.
3289      * @param[in] signature The signature of the static method to call.
3290      * @param[out] result A pointer to store the integer result.
3291      * @param[in] ... Variadic arguments to pass to the method.
3292      * @return Returns a status code of type `ani_status` indicating success or failure.
3293      */
3294     ani_status (*Class_CallStaticMethodByName_Int)(ani_env *env, ani_class cls, const char *name, const char *signature,
3295                                                    ani_int *result, ...);
3296 
3297     /**
3298      * @brief Calls a static method by name with a integer return type (array-based).
3299      *
3300      * This function calls the specified static method of a class by its name and retrieves a integer result using
3301      * arguments from an array.
3302      *
3303      * @param[in] env A pointer to the environment structure.
3304      * @param[in] cls The class containing the static method.
3305      * @param[in] name The name of the static method to call.
3306      * @param[in] signature The signature of the static method to call.
3307      * @param[out] result A pointer to store the integer result.
3308      * @param[in] args An array of arguments to pass to the method.
3309      * @return Returns a status code of type `ani_status` indicating success or failure.
3310      */
3311     ani_status (*Class_CallStaticMethodByName_Int_A)(ani_env *env, ani_class cls, const char *name,
3312                                                      const char *signature, ani_int *result, const ani_value *args);
3313 
3314     /**
3315      * @brief Calls a static method by name with a integer return type (variadic arguments).
3316      *
3317      * This function calls the specified static method of a class by its name and retrieves a integer result using a
3318      * `va_list`.
3319      *
3320      * @param[in] env A pointer to the environment structure.
3321      * @param[in] cls The class containing the static method.
3322      * @param[in] name The name of the static method to call.
3323      * @param[in] signature The signature of the static method to call.
3324      * @param[out] result A pointer to store the integer result.
3325      * @param[in] args A `va_list` of arguments to pass to the method.
3326      * @return Returns a status code of type `ani_status` indicating success or failure.
3327      */
3328     ani_status (*Class_CallStaticMethodByName_Int_V)(ani_env *env, ani_class cls, const char *name,
3329                                                      const char *signature, ani_int *result, va_list args);
3330 
3331     /**
3332      * @brief Calls a static method by name with a long return type.
3333      *
3334      * This function calls the specified static method of a class by its name and retrieves a long result using variadic
3335      * arguments.
3336      *
3337      * @param[in] env A pointer to the environment structure.
3338      * @param[in] cls The class containing the static method.
3339      * @param[in] name The name of the static method to call.
3340      * @param[in] signature The signature of the static method to call.
3341      * @param[out] result A pointer to store the long result.
3342      * @param[in] ... Variadic arguments to pass to the method.
3343      * @return Returns a status code of type `ani_status` indicating success or failure.
3344      */
3345     ani_status (*Class_CallStaticMethodByName_Long)(ani_env *env, ani_class cls, const char *name,
3346                                                     const char *signature, ani_long *result, ...);
3347 
3348     /**
3349      * @brief Calls a static method by name with a long return type (array-based).
3350      *
3351      * This function calls the specified static method of a class by its name and retrieves a long result using
3352      * arguments from an array.
3353      *
3354      * @param[in] env A pointer to the environment structure.
3355      * @param[in] cls The class containing the static method.
3356      * @param[in] name The name of the static method to call.
3357      * @param[in] signature The signature of the static method to call.
3358      * @param[out] result A pointer to store the long result.
3359      * @param[in] args An array of arguments to pass to the method.
3360      * @return Returns a status code of type `ani_status` indicating success or failure.
3361      */
3362     ani_status (*Class_CallStaticMethodByName_Long_A)(ani_env *env, ani_class cls, const char *name,
3363                                                       const char *signature, ani_long *result, const ani_value *args);
3364 
3365     /**
3366      * @brief Calls a static method by name with a long return type (variadic arguments).
3367      *
3368      * This function calls the specified static method of a class by its name and retrieves a long result using a
3369      * `va_list`.
3370      *
3371      * @param[in] env A pointer to the environment structure.
3372      * @param[in] cls The class containing the static method.
3373      * @param[in] name The name of the static method to call.
3374      * @param[in] signature The signature of the static method to call.
3375      * @param[out] result A pointer to store the long result.
3376      * @param[in] args A `va_list` of arguments to pass to the method.
3377      * @return Returns a status code of type `ani_status` indicating success or failure.
3378      */
3379     ani_status (*Class_CallStaticMethodByName_Long_V)(ani_env *env, ani_class cls, const char *name,
3380                                                       const char *signature, ani_long *result, va_list args);
3381 
3382     /**
3383      * @brief Calls a static method by name with a float return type.
3384      *
3385      * This function calls the specified static method of a class by its name and retrieves a float result using
3386      * variadic arguments.
3387      *
3388      * @param[in] env A pointer to the environment structure.
3389      * @param[in] cls The class containing the static method.
3390      * @param[in] name The name of the static method to call.
3391      * @param[in] signature The signature of the static method to call.
3392      * @param[out] result A pointer to store the float result.
3393      * @param[in] ... Variadic arguments to pass to the method.
3394      * @return Returns a status code of type `ani_status` indicating success or failure.
3395      */
3396     ani_status (*Class_CallStaticMethodByName_Float)(ani_env *env, ani_class cls, const char *name,
3397                                                      const char *signature, ani_float *result, ...);
3398 
3399     /**
3400      * @brief Calls a static method by name with a float return type (array-based).
3401      *
3402      * This function calls the specified static method of a class by its name and retrieves a float result using
3403      * arguments from an array.
3404      *
3405      * @param[in] env A pointer to the environment structure.
3406      * @param[in] cls The class containing the static method.
3407      * @param[in] name The name of the static method to call.
3408      * @param[in] signature The signature of the static method to call.
3409      * @param[out] result A pointer to store the float result.
3410      * @param[in] args An array of arguments to pass to the method.
3411      * @return Returns a status code of type `ani_status` indicating success or failure.
3412      */
3413     ani_status (*Class_CallStaticMethodByName_Float_A)(ani_env *env, ani_class cls, const char *name,
3414                                                        const char *signature, ani_float *result, const ani_value *args);
3415 
3416     /**
3417      * @brief Calls a static method by name with a float return type (variadic arguments).
3418      *
3419      * This function calls the specified static method of a class by its name and retrieves a float result using a
3420      * `va_list`.
3421      *
3422      * @param[in] env A pointer to the environment structure.
3423      * @param[in] cls The class containing the static method.
3424      * @param[in] name The name of the static method to call.
3425      * @param[in] signature The signature of the static method to call.
3426      * @param[out] result A pointer to store the float result.
3427      * @param[in] args A `va_list` of arguments to pass to the method.
3428      * @return Returns a status code of type `ani_status` indicating success or failure.
3429      */
3430     ani_status (*Class_CallStaticMethodByName_Float_V)(ani_env *env, ani_class cls, const char *name,
3431                                                        const char *signature, ani_float *result, va_list args);
3432 
3433     /**
3434      * @brief Calls a static method by name with a double return type.
3435      *
3436      * This function calls the specified static method of a class by its name and retrieves a double result using
3437      * variadic arguments.
3438      *
3439      * @param[in] env A pointer to the environment structure.
3440      * @param[in] cls The class containing the static method.
3441      * @param[in] name The name of the static method to call.
3442      * @param[in] signature The signature of the static method to call.
3443      * @param[out] result A pointer to store the double result.
3444      * @param[in] ... Variadic arguments to pass to the method.
3445      * @return Returns a status code of type `ani_status` indicating success or failure.
3446      */
3447     ani_status (*Class_CallStaticMethodByName_Double)(ani_env *env, ani_class cls, const char *name,
3448                                                       const char *signature, ani_double *result, ...);
3449 
3450     /**
3451      * @brief Calls a static method by name with a double return type (array-based).
3452      *
3453      * This function calls the specified static method of a class by its name and retrieves a double result using
3454      * arguments from an array.
3455      *
3456      * @param[in] env A pointer to the environment structure.
3457      * @param[in] cls The class containing the static method.
3458      * @param[in] name The name of the static method to call.
3459      * @param[in] signature The signature of the static method to call.
3460      * @param[out] result A pointer to store the double result.
3461      * @param[in] args An array of arguments to pass to the method.
3462      * @return Returns a status code of type `ani_status` indicating success or failure.
3463      */
3464     ani_status (*Class_CallStaticMethodByName_Double_A)(ani_env *env, ani_class cls, const char *name,
3465                                                         const char *signature, ani_double *result,
3466                                                         const ani_value *args);
3467 
3468     /**
3469      * @brief Calls a static method by name with a double return type (variadic arguments).
3470      *
3471      * This function calls the specified static method of a class by its name and retrieves a double result using a
3472      * `va_list`.
3473      *
3474      * @param[in] env A pointer to the environment structure.
3475      * @param[in] cls The class containing the static method.
3476      * @param[in] name The name of the static method to call.
3477      * @param[in] signature The signature of the static method to call.
3478      * @param[out] result A pointer to store the double result.
3479      * @param[in] args A `va_list` of arguments to pass to the method.
3480      * @return Returns a status code of type `ani_status` indicating success or failure.
3481      */
3482     ani_status (*Class_CallStaticMethodByName_Double_V)(ani_env *env, ani_class cls, const char *name,
3483                                                         const char *signature, ani_double *result, va_list args);
3484 
3485     /**
3486      * @brief Calls a static method by name with a reference return type.
3487      *
3488      * This function calls the specified static method of a class by its name and retrieves a reference result using
3489      * variadic arguments.
3490      *
3491      * @param[in] env A pointer to the environment structure.
3492      * @param[in] cls The class containing the static method.
3493      * @param[in] name The name of the static method to call.
3494      * @param[in] signature The signature of the static method to call.
3495      * @param[out] result A pointer to store the reference result.
3496      * @param[in] ... Variadic arguments to pass to the method.
3497      * @return Returns a status code of type `ani_status` indicating success or failure.
3498      */
3499     ani_status (*Class_CallStaticMethodByName_Ref)(ani_env *env, ani_class cls, const char *name, const char *signature,
3500                                                    ani_ref *result, ...);
3501 
3502     /**
3503      * @brief Calls a static method by name with a reference return type (array-based).
3504      *
3505      * This function calls the specified static method of a class by its name and retrieves a reference result using
3506      * arguments from an array.
3507      *
3508      * @param[in] env A pointer to the environment structure.
3509      * @param[in] cls The class containing the static method.
3510      * @param[in] name The name of the static method to call.
3511      * @param[in] signature The signature of the static method to call.
3512      * @param[out] result A pointer to store the reference result.
3513      * @param[in] args An array of arguments to pass to the method.
3514      * @return Returns a status code of type `ani_status` indicating success or failure.
3515      */
3516     ani_status (*Class_CallStaticMethodByName_Ref_A)(ani_env *env, ani_class cls, const char *name,
3517                                                      const char *signature, ani_ref *result, const ani_value *args);
3518 
3519     /**
3520      * @brief Calls a static method by name with a reference return type (variadic arguments).
3521      *
3522      * This function calls the specified static method of a class by its name and retrieves a reference result using a
3523      * `va_list`.
3524      *
3525      * @param[in] env A pointer to the environment structure.
3526      * @param[in] cls The class containing the static method.
3527      * @param[in] name The name of the static method to call.
3528      * @param[in] signature The signature of the static method to call.
3529      * @param[out] result A pointer to store the reference result.
3530      * @param[in] args A `va_list` of arguments to pass to the method.
3531      * @return Returns a status code of type `ani_status` indicating success or failure.
3532      */
3533     ani_status (*Class_CallStaticMethodByName_Ref_V)(ani_env *env, ani_class cls, const char *name,
3534                                                      const char *signature, ani_ref *result, va_list args);
3535 
3536     /**
3537      * @brief Calls a static method by name with no return value.
3538      *
3539      * This function calls the specified static method of a class by its name using variadic arguments. The method does
3540      * not return a value.
3541      *
3542      * @param[in] env A pointer to the environment structure.
3543      * @param[in] cls The class containing the static method.
3544      * @param[in] name The name of the static method to call.
3545      * @param[in] signature The signature of the static method to call.
3546      * @param[in] ... Variadic arguments to pass to the method.
3547      * @return Returns a status code of type `ani_status` indicating success or failure.
3548      */
3549     ani_status (*Class_CallStaticMethodByName_Void)(ani_env *env, ani_class cls, const char *name,
3550                                                     const char *signature, ...);
3551 
3552     /**
3553      * @brief Calls a static method by name with no return value (array-based).
3554      *
3555      * This function calls the specified static method of a class by its name using arguments from an array. The method
3556      * does not return a value.
3557      *
3558      * @param[in] env A pointer to the environment structure.
3559      * @param[in] cls The class containing the static method.
3560      * @param[in] name The name of the static method to call.
3561      * @param[in] signature The signature of the static method to call.
3562      * @param[in] args An array of arguments to pass to the method.
3563      * @return Returns a status code of type `ani_status` indicating success or failure.
3564      */
3565     ani_status (*Class_CallStaticMethodByName_Void_A)(ani_env *env, ani_class cls, const char *name,
3566                                                       const char *signature, const ani_value *args);
3567 
3568     /**
3569      * @brief Calls a static method by name with no return value (variadic arguments).
3570      *
3571      * This function calls the specified static method of a class by its name using a `va_list`. The method does not
3572      * return a value.
3573      *
3574      * @param[in] env A pointer to the environment structure.
3575      * @param[in] cls The class containing the static method.
3576      * @param[in] name The name of the static method to call.
3577      * @param[in] signature The signature of the static method to call.
3578      * @param[in] args A `va_list` of arguments to pass to the method.
3579      * @return Returns a status code of type `ani_status` indicating success or failure.
3580      */
3581     ani_status (*Class_CallStaticMethodByName_Void_V)(ani_env *env, ani_class cls, const char *name,
3582                                                       const char *signature, va_list args);
3583 
3584     /**
3585      * @brief Retrieves a boolean value from a field of an object.
3586      *
3587      * This function retrieves the boolean value of the specified field from the given object.
3588      *
3589      * @param[in] env A pointer to the environment structure.
3590      * @param[in] object The object containing the field.
3591      * @param[in] field The field to retrieve the boolean value from.
3592      * @param[out] result A pointer to store the retrieved boolean value.
3593      * @return Returns a status code of type `ani_status` indicating success or failure.
3594      */
3595     ani_status (*Object_GetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean *result);
3596 
3597     /**
3598      * @brief Retrieves a char value from a field of an object.
3599      *
3600      * This function retrieves the char value of the specified field from the given object.
3601      *
3602      * @param[in] env A pointer to the environment structure.
3603      * @param[in] object The object containing the field.
3604      * @param[in] field The field to retrieve the char value from.
3605      * @param[out] result A pointer to store the retrieved char value.
3606      * @return Returns a status code of type `ani_status` indicating success or failure.
3607      */
3608     ani_status (*Object_GetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char *result);
3609 
3610     /**
3611      * @brief Retrieves a byte value from a field of an object.
3612      *
3613      * This function retrieves the byte value of the specified field from the given object.
3614      *
3615      * @param[in] env A pointer to the environment structure.
3616      * @param[in] object The object containing the field.
3617      * @param[in] field The field to retrieve the byte value from.
3618      * @param[out] result A pointer to store the retrieved byte value.
3619      * @return Returns a status code of type `ani_status` indicating success or failure.
3620      */
3621     ani_status (*Object_GetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte *result);
3622 
3623     /**
3624      * @brief Retrieves a short value from a field of an object.
3625      *
3626      * This function retrieves the short value of the specified field from the given object.
3627      *
3628      * @param[in] env A pointer to the environment structure.
3629      * @param[in] object The object containing the field.
3630      * @param[in] field The field to retrieve the short value from.
3631      * @param[out] result A pointer to store the retrieved short value.
3632      * @return Returns a status code of type `ani_status` indicating success or failure.
3633      */
3634     ani_status (*Object_GetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short *result);
3635 
3636     /**
3637      * @brief Retrieves a integer value from a field of an object.
3638      *
3639      * This function retrieves the integer value of the specified field from the given object.
3640      *
3641      * @param[in] env A pointer to the environment structure.
3642      * @param[in] object The object containing the field.
3643      * @param[in] field The field to retrieve the integer value from.
3644      * @param[out] result A pointer to store the retrieved integer value.
3645      * @return Returns a status code of type `ani_status` indicating success or failure.
3646      */
3647     ani_status (*Object_GetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int *result);
3648 
3649     /**
3650      * @brief Retrieves a long value from a field of an object.
3651      *
3652      * This function retrieves the long value of the specified field from the given object.
3653      *
3654      * @param[in] env A pointer to the environment structure.
3655      * @param[in] object The object containing the field.
3656      * @param[in] field The field to retrieve the long value from.
3657      * @param[out] result A pointer to store the retrieved long value.
3658      * @return Returns a status code of type `ani_status` indicating success or failure.
3659      */
3660     ani_status (*Object_GetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long *result);
3661 
3662     /**
3663      * @brief Retrieves a float value from a field of an object.
3664      *
3665      * This function retrieves the float value of the specified field from the given object.
3666      *
3667      * @param[in] env A pointer to the environment structure.
3668      * @param[in] object The object containing the field.
3669      * @param[in] field The field to retrieve the float value from.
3670      * @param[out] result A pointer to store the retrieved float value.
3671      * @return Returns a status code of type `ani_status` indicating success or failure.
3672      */
3673     ani_status (*Object_GetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float *result);
3674 
3675     /**
3676      * @brief Retrieves a double value from a field of an object.
3677      *
3678      * This function retrieves the double value of the specified field from the given object.
3679      *
3680      * @param[in] env A pointer to the environment structure.
3681      * @param[in] object The object containing the field.
3682      * @param[in] field The field to retrieve the double value from.
3683      * @param[out] result A pointer to store the retrieved double value.
3684      * @return Returns a status code of type `ani_status` indicating success or failure.
3685      */
3686     ani_status (*Object_GetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double *result);
3687 
3688     /**
3689      * @brief Retrieves a reference value from a field of an object.
3690      *
3691      * This function retrieves the reference value of the specified field from the given object.
3692      *
3693      * @param[in] env A pointer to the environment structure.
3694      * @param[in] object The object containing the field.
3695      * @param[in] field The field to retrieve the reference value from.
3696      * @param[out] result A pointer to store the retrieved reference value.
3697      * @return Returns a status code of type `ani_status` indicating success or failure.
3698      */
3699     ani_status (*Object_GetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref *result);
3700 
3701     /**
3702      * @brief Sets a boolean value to a field of an object.
3703      *
3704      * This function assigns a boolean value to the specified field of the given object.
3705      *
3706      * @param[in] env A pointer to the environment structure.
3707      * @param[in] object The object containing the field.
3708      * @param[in] field The field to set the boolean value to.
3709      * @param[in] value The boolean value to assign to the field.
3710      * @return Returns a status code of type `ani_status` indicating success or failure.
3711      */
3712     ani_status (*Object_SetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean value);
3713 
3714     /**
3715      * @brief Sets a char value to a field of an object.
3716      *
3717      * This function assigns a char value to the specified field of the given object.
3718      *
3719      * @param[in] env A pointer to the environment structure.
3720      * @param[in] object The object containing the field.
3721      * @param[in] field The field to set the char value to.
3722      * @param[in] value The char value to assign to the field.
3723      * @return Returns a status code of type `ani_status` indicating success or failure.
3724      */
3725     ani_status (*Object_SetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char value);
3726 
3727     /**
3728      * @brief Sets a byte value to a field of an object.
3729      *
3730      * This function assigns a byte value to the specified field of the given object.
3731      *
3732      * @param[in] env A pointer to the environment structure.
3733      * @param[in] object The object containing the field.
3734      * @param[in] field The field to set the byte value to.
3735      * @param[in] value The byte value to assign to the field.
3736      * @return Returns a status code of type `ani_status` indicating success or failure.
3737      */
3738     ani_status (*Object_SetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte value);
3739 
3740     /**
3741      * @brief Sets a short value to a field of an object.
3742      *
3743      * This function assigns a short value to the specified field of the given object.
3744      *
3745      * @param[in] env A pointer to the environment structure.
3746      * @param[in] object The object containing the field.
3747      * @param[in] field The field to set the short value to.
3748      * @param[in] value The short value to assign to the field.
3749      * @return Returns a status code of type `ani_status` indicating success or failure.
3750      */
3751     ani_status (*Object_SetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short value);
3752 
3753     /**
3754      * @brief Sets a integer value to a field of an object.
3755      *
3756      * This function assigns a integer value to the specified field of the given object.
3757      *
3758      * @param[in] env A pointer to the environment structure.
3759      * @param[in] object The object containing the field.
3760      * @param[in] field The field to set the integer value to.
3761      * @param[in] value The integer value to assign to the field.
3762      * @return Returns a status code of type `ani_status` indicating success or failure.
3763      */
3764     ani_status (*Object_SetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int value);
3765 
3766     /**
3767      * @brief Sets a long value to a field of an object.
3768      *
3769      * This function assigns a long value to the specified field of the given object.
3770      *
3771      * @param[in] env A pointer to the environment structure.
3772      * @param[in] object The object containing the field.
3773      * @param[in] field The field to set the long value to.
3774      * @param[in] value The long value to assign to the field.
3775      * @return Returns a status code of type `ani_status` indicating success or failure.
3776      */
3777     ani_status (*Object_SetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long value);
3778 
3779     /**
3780      * @brief Sets a float value to a field of an object.
3781      *
3782      * This function assigns a float value to the specified field of the given object.
3783      *
3784      * @param[in] env A pointer to the environment structure.
3785      * @param[in] object The object containing the field.
3786      * @param[in] field The field to set the float value to.
3787      * @param[in] value The float value to assign to the field.
3788      * @return Returns a status code of type `ani_status` indicating success or failure.
3789      */
3790     ani_status (*Object_SetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float value);
3791 
3792     /**
3793      * @brief Sets a double value to a field of an object.
3794      *
3795      * This function assigns a double value to the specified field of the given object.
3796      *
3797      * @param[in] env A pointer to the environment structure.
3798      * @param[in] object The object containing the field.
3799      * @param[in] field The field to set the double value to.
3800      * @param[in] value The double value to assign to the field.
3801      * @return Returns a status code of type `ani_status` indicating success or failure.
3802      */
3803     ani_status (*Object_SetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double value);
3804 
3805     /**
3806      * @brief Sets a reference value to a field of an object.
3807      *
3808      * This function assigns a reference value to the specified field of the given object.
3809      *
3810      * @param[in] env A pointer to the environment structure.
3811      * @param[in] object The object containing the field.
3812      * @param[in] field The field to set the reference value to.
3813      * @param[in] value The reference value to assign to the field.
3814      * @return Returns a status code of type `ani_status` indicating success or failure.
3815      */
3816     ani_status (*Object_SetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref value);
3817 
3818     /**
3819      * @brief Retrieves a boolean value from a field of an object by its name.
3820      *
3821      * This function retrieves the boolean value of the specified field from the given object by its name.
3822      *
3823      * @param[in] env A pointer to the environment structure.
3824      * @param[in] object The object containing the field.
3825      * @param[in] name The name of the field to retrieve the boolean value from.
3826      * @param[out] result A pointer to store the retrieved boolean value.
3827      * @return Returns a status code of type `ani_status` indicating success or failure.
3828      */
3829     ani_status (*Object_GetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean *result);
3830 
3831     /**
3832      * @brief Retrieves a char value from a field of an object by its name.
3833      *
3834      * This function retrieves the char value of the specified field from the given object by its name.
3835      *
3836      * @param[in] env A pointer to the environment structure.
3837      * @param[in] object The object containing the field.
3838      * @param[in] name The name of the field to retrieve the char value from.
3839      * @param[out] result A pointer to store the retrieved char value.
3840      * @return Returns a status code of type `ani_status` indicating success or failure.
3841      */
3842     ani_status (*Object_GetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result);
3843 
3844     /**
3845      * @brief Retrieves a byte value from a field of an object by its name.
3846      *
3847      * This function retrieves the byte value of the specified field from the given object by its name.
3848      *
3849      * @param[in] env A pointer to the environment structure.
3850      * @param[in] object The object containing the field.
3851      * @param[in] name The name of the field to retrieve the byte value from.
3852      * @param[out] result A pointer to store the retrieved byte value.
3853      * @return Returns a status code of type `ani_status` indicating success or failure.
3854      */
3855     ani_status (*Object_GetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result);
3856 
3857     /**
3858      * @brief Retrieves a short value from a field of an object by its name.
3859      *
3860      * This function retrieves the short value of the specified field from the given object by its name.
3861      *
3862      * @param[in] env A pointer to the environment structure.
3863      * @param[in] object The object containing the field.
3864      * @param[in] name The name of the field to retrieve the short value from.
3865      * @param[out] result A pointer to store the retrieved short value.
3866      * @return Returns a status code of type `ani_status` indicating success or failure.
3867      */
3868     ani_status (*Object_GetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result);
3869 
3870     /**
3871      * @brief Retrieves a integer value from a field of an object by its name.
3872      *
3873      * This function retrieves the integer value of the specified field from the given object by its name.
3874      *
3875      * @param[in] env A pointer to the environment structure.
3876      * @param[in] object The object containing the field.
3877      * @param[in] name The name of the field to retrieve the integer value from.
3878      * @param[out] result A pointer to store the retrieved integer value.
3879      * @return Returns a status code of type `ani_status` indicating success or failure.
3880      */
3881     ani_status (*Object_GetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result);
3882 
3883     /**
3884      * @brief Retrieves a long value from a field of an object by its name.
3885      *
3886      * This function retrieves the long value of the specified field from the given object by its name.
3887      *
3888      * @param[in] env A pointer to the environment structure.
3889      * @param[in] object The object containing the field.
3890      * @param[in] name The name of the field to retrieve the long value from.
3891      * @param[out] result A pointer to store the retrieved long value.
3892      * @return Returns a status code of type `ani_status` indicating success or failure.
3893      */
3894     ani_status (*Object_GetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result);
3895 
3896     /**
3897      * @brief Retrieves a float value from a field of an object by its name.
3898      *
3899      * This function retrieves the float value of the specified field from the given object by its name.
3900      *
3901      * @param[in] env A pointer to the environment structure.
3902      * @param[in] object The object containing the field.
3903      * @param[in] name The name of the field to retrieve the float value from.
3904      * @param[out] result A pointer to store the retrieved float value.
3905      * @return Returns a status code of type `ani_status` indicating success or failure.
3906      */
3907     ani_status (*Object_GetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result);
3908 
3909     /**
3910      * @brief Retrieves a double value from a field of an object by its name.
3911      *
3912      * This function retrieves the double value of the specified field from the given object by its name.
3913      *
3914      * @param[in] env A pointer to the environment structure.
3915      * @param[in] object The object containing the field.
3916      * @param[in] name The name of the field to retrieve the double value from.
3917      * @param[out] result A pointer to store the retrieved double value.
3918      * @return Returns a status code of type `ani_status` indicating success or failure.
3919      */
3920     ani_status (*Object_GetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double *result);
3921 
3922     /**
3923      * @brief Retrieves a reference value from a field of an object by its name.
3924      *
3925      * This function retrieves the reference value of the specified field from the given object by its name.
3926      *
3927      * @param[in] env A pointer to the environment structure.
3928      * @param[in] object The object containing the field.
3929      * @param[in] name The name of the field to retrieve the reference value from.
3930      * @param[out] result A pointer to store the retrieved reference value.
3931      * @return Returns a status code of type `ani_status` indicating success or failure.
3932      */
3933     ani_status (*Object_GetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result);
3934 
3935     /**
3936      * @brief Sets a boolean value to a field of an object by its name.
3937      *
3938      * This function assigns a boolean value to the specified field of the given object by its name.
3939      *
3940      * @param[in] env A pointer to the environment structure.
3941      * @param[in] object The object containing the field.
3942      * @param[in] name The name of the field to set the boolean value to.
3943      * @param[in] value The boolean value to assign to the field.
3944      * @return Returns a status code of type `ani_status` indicating success or failure.
3945      */
3946     ani_status (*Object_SetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean value);
3947 
3948     /**
3949      * @brief Sets a char value to a field of an object by its name.
3950      *
3951      * This function assigns a char value to the specified field of the given object by its name.
3952      *
3953      * @param[in] env A pointer to the environment structure.
3954      * @param[in] object The object containing the field.
3955      * @param[in] name The name of the field to set the char value to.
3956      * @param[in] value The char value to assign to the field.
3957      * @return Returns a status code of type `ani_status` indicating success or failure.
3958      */
3959     ani_status (*Object_SetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value);
3960 
3961     /**
3962      * @brief Sets a byte value to a field of an object by its name.
3963      *
3964      * This function assigns a byte value to the specified field of the given object by its name.
3965      *
3966      * @param[in] env A pointer to the environment structure.
3967      * @param[in] object The object containing the field.
3968      * @param[in] name The name of the field to set the byte value to.
3969      * @param[in] value The byte value to assign to the field.
3970      * @return Returns a status code of type `ani_status` indicating success or failure.
3971      */
3972     ani_status (*Object_SetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value);
3973 
3974     /**
3975      * @brief Sets a short value to a field of an object by its name.
3976      *
3977      * This function assigns a short value to the specified field of the given object by its name.
3978      *
3979      * @param[in] env A pointer to the environment structure.
3980      * @param[in] object The object containing the field.
3981      * @param[in] name The name of the field to set the short value to.
3982      * @param[in] value The short value to assign to the field.
3983      * @return Returns a status code of type `ani_status` indicating success or failure.
3984      */
3985     ani_status (*Object_SetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value);
3986 
3987     /**
3988      * @brief Sets a integer value to a field of an object by its name.
3989      *
3990      * This function assigns a integer value to the specified field of the given object by its name.
3991      *
3992      * @param[in] env A pointer to the environment structure.
3993      * @param[in] object The object containing the field.
3994      * @param[in] name The name of the field to set the integer value to.
3995      * @param[in] value The integer value to assign to the field.
3996      * @return Returns a status code of type `ani_status` indicating success or failure.
3997      */
3998     ani_status (*Object_SetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value);
3999 
4000     /**
4001      * @brief Sets a long value to a field of an object by its name.
4002      *
4003      * This function assigns a long value to the specified field of the given object by its name.
4004      *
4005      * @param[in] env A pointer to the environment structure.
4006      * @param[in] object The object containing the field.
4007      * @param[in] name The name of the field to set the long value to.
4008      * @param[in] value The long value to assign to the field.
4009      * @return Returns a status code of type `ani_status` indicating success or failure.
4010      */
4011     ani_status (*Object_SetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value);
4012 
4013     /**
4014      * @brief Sets a float value to a field of an object by its name.
4015      *
4016      * This function assigns a float value to the specified field of the given object by its name.
4017      *
4018      * @param[in] env A pointer to the environment structure.
4019      * @param[in] object The object containing the field.
4020      * @param[in] name The name of the field to set the float value to.
4021      * @param[in] value The float value to assign to the field.
4022      * @return Returns a status code of type `ani_status` indicating success or failure.
4023      */
4024     ani_status (*Object_SetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value);
4025 
4026     /**
4027      * @brief Sets a double value to a field of an object by its name.
4028      *
4029      * This function assigns a double value to the specified field of the given object by its name.
4030      *
4031      * @param[in] env A pointer to the environment structure.
4032      * @param[in] object The object containing the field.
4033      * @param[in] name The name of the field to set the double value to.
4034      * @param[in] value The double value to assign to the field.
4035      * @return Returns a status code of type `ani_status` indicating success or failure.
4036      */
4037     ani_status (*Object_SetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value);
4038 
4039     /**
4040      * @brief Sets a reference value to a field of an object by its name.
4041      *
4042      * This function assigns a reference value to the specified field of the given object by its name.
4043      *
4044      * @param[in] env A pointer to the environment structure.
4045      * @param[in] object The object containing the field.
4046      * @param[in] name The name of the field to set the reference value to.
4047      * @param[in] value The reference value to assign to the field.
4048      * @return Returns a status code of type `ani_status` indicating success or failure.
4049      */
4050     ani_status (*Object_SetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value);
4051 
4052     /**
4053      * @brief Retrieves a boolean value from a property of an object by its name.
4054      *
4055      * This function retrieves the boolean value of the specified property from the given object by its name.
4056      *
4057      * @param[in] env A pointer to the environment structure.
4058      * @param[in] object The object containing the property.
4059      * @param[in] name The name of the property to retrieve the boolean value from.
4060      * @param[out] result A pointer to store the retrieved boolean value.
4061      * @return Returns a status code of type `ani_status` indicating success or failure.
4062      */
4063     ani_status (*Object_GetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name,
4064                                                    ani_boolean *result);
4065 
4066     /**
4067      * @brief Retrieves a char value from a property of an object by its name.
4068      *
4069      * This function retrieves the char value of the specified property from the given object by its name.
4070      *
4071      * @param[in] env A pointer to the environment structure.
4072      * @param[in] object The object containing the property.
4073      * @param[in] name The name of the property to retrieve the char value from.
4074      * @param[out] result A pointer to store the retrieved char value.
4075      * @return Returns a status code of type `ani_status` indicating success or failure.
4076      */
4077     ani_status (*Object_GetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result);
4078 
4079     /**
4080      * @brief Retrieves a byte value from a property of an object by its name.
4081      *
4082      * This function retrieves the byte value of the specified property from the given object by its name.
4083      *
4084      * @param[in] env A pointer to the environment structure.
4085      * @param[in] object The object containing the property.
4086      * @param[in] name The name of the property to retrieve the byte value from.
4087      * @param[out] result A pointer to store the retrieved byte value.
4088      * @return Returns a status code of type `ani_status` indicating success or failure.
4089      */
4090     ani_status (*Object_GetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result);
4091 
4092     /**
4093      * @brief Retrieves a short value from a property of an object by its name.
4094      *
4095      * This function retrieves the short value of the specified property from the given object by its name.
4096      *
4097      * @param[in] env A pointer to the environment structure.
4098      * @param[in] object The object containing the property.
4099      * @param[in] name The name of the property to retrieve the short value from.
4100      * @param[out] result A pointer to store the retrieved short value.
4101      * @return Returns a status code of type `ani_status` indicating success or failure.
4102      */
4103     ani_status (*Object_GetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result);
4104 
4105     /**
4106      * @brief Retrieves a integer value from a property of an object by its name.
4107      *
4108      * This function retrieves the integer value of the specified property from the given object by its name.
4109      *
4110      * @param[in] env A pointer to the environment structure.
4111      * @param[in] object The object containing the property.
4112      * @param[in] name The name of the property to retrieve the integer value from.
4113      * @param[out] result A pointer to store the retrieved integer value.
4114      * @return Returns a status code of type `ani_status` indicating success or failure.
4115      */
4116     ani_status (*Object_GetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result);
4117 
4118     /**
4119      * @brief Retrieves a long value from a property of an object by its name.
4120      *
4121      * This function retrieves the long value of the specified property from the given object by its name.
4122      *
4123      * @param[in] env A pointer to the environment structure.
4124      * @param[in] object The object containing the property.
4125      * @param[in] name The name of the property to retrieve the long value from.
4126      * @param[out] result A pointer to store the retrieved long value.
4127      * @return Returns a status code of type `ani_status` indicating success or failure.
4128      */
4129     ani_status (*Object_GetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result);
4130 
4131     /**
4132      * @brief Retrieves a float value from a property of an object by its name.
4133      *
4134      * This function retrieves the float value of the specified property from the given object by its name.
4135      *
4136      * @param[in] env A pointer to the environment structure.
4137      * @param[in] object The object containing the property.
4138      * @param[in] name The name of the property to retrieve the float value from.
4139      * @param[out] result A pointer to store the retrieved float value.
4140      * @return Returns a status code of type `ani_status` indicating success or failure.
4141      */
4142     ani_status (*Object_GetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result);
4143 
4144     /**
4145      * @brief Retrieves a double value from a property of an object by its name.
4146      *
4147      * This function retrieves the double value of the specified property from the given object by its name.
4148      *
4149      * @param[in] env A pointer to the environment structure.
4150      * @param[in] object The object containing the property.
4151      * @param[in] name The name of the property to retrieve the double value from.
4152      * @param[out] result A pointer to store the retrieved double value.
4153      * @return Returns a status code of type `ani_status` indicating success or failure.
4154      */
4155     ani_status (*Object_GetPropertyByName_Double)(ani_env *env, ani_object object, const char *name,
4156                                                   ani_double *result);
4157 
4158     /**
4159      * @brief Retrieves a reference value from a property of an object by its name.
4160      *
4161      * This function retrieves the reference value of the specified property from the given object by its name.
4162      *
4163      * @param[in] env A pointer to the environment structure.
4164      * @param[in] object The object containing the property.
4165      * @param[in] name The name of the property to retrieve the reference value from.
4166      * @param[out] result A pointer to store the retrieved reference value.
4167      * @return Returns a status code of type `ani_status` indicating success or failure.
4168      */
4169     ani_status (*Object_GetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result);
4170 
4171     /**
4172      * @brief Sets a boolean value to a property of an object by its name.
4173      *
4174      * This function assigns a boolean value to the specified property of the given object by its name.
4175      *
4176      * @param[in] env A pointer to the environment structure.
4177      * @param[in] object The object containing the property.
4178      * @param[in] name The name of the property to set the boolean value to.
4179      * @param[in] value The boolean value to assign to the property.
4180      * @return Returns a status code of type `ani_status` indicating success or failure.
4181      */
4182     ani_status (*Object_SetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name,
4183                                                    ani_boolean value);
4184 
4185     /**
4186      * @brief Sets a char value to a property of an object by its name.
4187      *
4188      * This function assigns a char value to the specified property of the given object by its name.
4189      *
4190      * @param[in] env A pointer to the environment structure.
4191      * @param[in] object The object containing the property.
4192      * @param[in] name The name of the property to set the char value to.
4193      * @param[in] value The char value to assign to the property.
4194      * @return Returns a status code of type `ani_status` indicating success or failure.
4195      */
4196     ani_status (*Object_SetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value);
4197 
4198     /**
4199      * @brief Sets a byte value to a property of an object by its name.
4200      *
4201      * This function assigns a byte value to the specified property of the given object by its name.
4202      *
4203      * @param[in] env A pointer to the environment structure.
4204      * @param[in] object The object containing the property.
4205      * @param[in] name The name of the property to set the byte value to.
4206      * @param[in] value The byte value to assign to the property.
4207      * @return Returns a status code of type `ani_status` indicating success or failure.
4208      */
4209     ani_status (*Object_SetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value);
4210 
4211     /**
4212      * @brief Sets a short value to a property of an object by its name.
4213      *
4214      * This function assigns a short value to the specified property of the given object by its name.
4215      *
4216      * @param[in] env A pointer to the environment structure.
4217      * @param[in] object The object containing the property.
4218      * @param[in] name The name of the property to set the short value to.
4219      * @param[in] value The short value to assign to the property.
4220      * @return Returns a status code of type `ani_status` indicating success or failure.
4221      */
4222     ani_status (*Object_SetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value);
4223 
4224     /**
4225      * @brief Sets a integer value to a property of an object by its name.
4226      *
4227      * This function assigns a integer value to the specified property of the given object by its name.
4228      *
4229      * @param[in] env A pointer to the environment structure.
4230      * @param[in] object The object containing the property.
4231      * @param[in] name The name of the property to set the integer value to.
4232      * @param[in] value The integer value to assign to the property.
4233      * @return Returns a status code of type `ani_status` indicating success or failure.
4234      */
4235     ani_status (*Object_SetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value);
4236 
4237     /**
4238      * @brief Sets a long value to a property of an object by its name.
4239      *
4240      * This function assigns a long value to the specified property of the given object by its name.
4241      *
4242      * @param[in] env A pointer to the environment structure.
4243      * @param[in] object The object containing the property.
4244      * @param[in] name The name of the property to set the long value to.
4245      * @param[in] value The long value to assign to the property.
4246      * @return Returns a status code of type `ani_status` indicating success or failure.
4247      */
4248     ani_status (*Object_SetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value);
4249 
4250     /**
4251      * @brief Sets a float value to a property of an object by its name.
4252      *
4253      * This function assigns a float value to the specified property of the given object by its name.
4254      *
4255      * @param[in] env A pointer to the environment structure.
4256      * @param[in] object The object containing the property.
4257      * @param[in] name The name of the property to set the float value to.
4258      * @param[in] value The float value to assign to the property.
4259      * @return Returns a status code of type `ani_status` indicating success or failure.
4260      */
4261     ani_status (*Object_SetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value);
4262 
4263     /**
4264      * @brief Sets a double value to a property of an object by its name.
4265      *
4266      * This function assigns a double value to the specified property of the given object by its name.
4267      *
4268      * @param[in] env A pointer to the environment structure.
4269      * @param[in] object The object containing the property.
4270      * @param[in] name The name of the property to set the double value to.
4271      * @param[in] value The double value to assign to the property.
4272      * @return Returns a status code of type `ani_status` indicating success or failure.
4273      */
4274     ani_status (*Object_SetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value);
4275 
4276     /**
4277      * @brief Sets a reference value to a property of an object by its name.
4278      *
4279      * This function assigns a reference value to the specified property of the given object by its name.
4280      *
4281      * @param[in] env A pointer to the environment structure.
4282      * @param[in] object The object containing the property.
4283      * @param[in] name The name of the property to set the reference value to.
4284      * @param[in] value The reference value to assign to the property.
4285      * @return Returns a status code of type `ani_status` indicating success or failure.
4286      */
4287     ani_status (*Object_SetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value);
4288 
4289     /**
4290      * @brief Calls a method on an object and retrieves a boolean return value.
4291      *
4292      * This function calls the specified method of an object using variadic arguments and retrieves a boolean result.
4293      *
4294      * @param[in] env A pointer to the environment structure.
4295      * @param[in] object The object on which the method is to be called.
4296      * @param[in] method The method to call.
4297      * @param[out] result A pointer to store the boolean return value.
4298      * @param[in] ... Variadic arguments to pass to the method.
4299      * @return Returns a status code of type `ani_status` indicating success or failure.
4300      */
4301     ani_status (*Object_CallMethod_Boolean)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4302                                             ...);
4303 
4304     /**
4305      * @brief Calls a method on an object and retrieves a boolean return value (array-based).
4306      *
4307      * This function calls the specified method of an object using arguments provided in an array and retrieves a
4308      * boolean result.
4309      *
4310      * @param[in] env A pointer to the environment structure.
4311      * @param[in] object The object on which the method is to be called.
4312      * @param[in] method The method to call.
4313      * @param[out] result A pointer to store the boolean return value.
4314      * @param[in] args An array of arguments to pass to the method.
4315      * @return Returns a status code of type `ani_status` indicating success or failure.
4316      */
4317     ani_status (*Object_CallMethod_Boolean_A)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4318                                               const ani_value *args);
4319 
4320     /**
4321      * @brief Calls a method on an object and retrieves a boolean return value (variadic arguments).
4322      *
4323      * This function calls the specified method of an object using a `va_list` and retrieves a boolean result.
4324      *
4325      * @param[in] env A pointer to the environment structure.
4326      * @param[in] object The object on which the method is to be called.
4327      * @param[in] method The method to call.
4328      * @param[out] result A pointer to store the boolean return value.
4329      * @param[in] args A `va_list` of arguments to pass to the method.
4330      * @return Returns a status code of type `ani_status` indicating success or failure.
4331      */
4332     ani_status (*Object_CallMethod_Boolean_V)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4333                                               va_list args);
4334 
4335     /**
4336      * @brief Calls a method on an object and retrieves a char return value.
4337      *
4338      * This function calls the specified method of an object using variadic arguments and retrieves a char result.
4339      *
4340      * @param[in] env A pointer to the environment structure.
4341      * @param[in] object The object on which the method is to be called.
4342      * @param[in] method The method to call.
4343      * @param[out] result A pointer to store the char return value.
4344      * @param[in] ... Variadic arguments to pass to the method.
4345      * @return Returns a status code of type `ani_status` indicating success or failure.
4346      */
4347     ani_status (*Object_CallMethod_Char)(ani_env *env, ani_object object, ani_method method, ani_char *result, ...);
4348 
4349     /**
4350      * @brief Calls a method on an object and retrieves a char return value (array-based).
4351      *
4352      * This function calls the specified method of an object using arguments provided in an array and retrieves a char
4353      * result.
4354      *
4355      * @param[in] env A pointer to the environment structure.
4356      * @param[in] object The object on which the method is to be called.
4357      * @param[in] method The method to call.
4358      * @param[out] result A pointer to store the char return value.
4359      * @param[in] args An array of arguments to pass to the method.
4360      * @return Returns a status code of type `ani_status` indicating success or failure.
4361      */
4362     ani_status (*Object_CallMethod_Char_A)(ani_env *env, ani_object object, ani_method method, ani_char *result,
4363                                            const ani_value *args);
4364 
4365     /**
4366      * @brief Calls a method on an object and retrieves a char return value (variadic arguments).
4367      *
4368      * This function calls the specified method of an object using a `va_list` and retrieves a char result.
4369      *
4370      * @param[in] env A pointer to the environment structure.
4371      * @param[in] object The object on which the method is to be called.
4372      * @param[in] method The method to call.
4373      * @param[out] result A pointer to store the char return value.
4374      * @param[in] args A `va_list` of arguments to pass to the method.
4375      * @return Returns a status code of type `ani_status` indicating success or failure.
4376      */
4377     ani_status (*Object_CallMethod_Char_V)(ani_env *env, ani_object object, ani_method method, ani_char *result,
4378                                            va_list args);
4379 
4380     /**
4381      * @brief Calls a method on an object and retrieves a byte return value.
4382      *
4383      * This function calls the specified method of an object using variadic arguments and retrieves a byte result.
4384      *
4385      * @param[in] env A pointer to the environment structure.
4386      * @param[in] object The object on which the method is to be called.
4387      * @param[in] method The method to call.
4388      * @param[out] result A pointer to store the byte return value.
4389      * @param[in] ... Variadic arguments to pass to the method.
4390      * @return Returns a status code of type `ani_status` indicating success or failure.
4391      */
4392     ani_status (*Object_CallMethod_Byte)(ani_env *env, ani_object object, ani_method method, ani_byte *result, ...);
4393 
4394     /**
4395      * @brief Calls a method on an object and retrieves a byte return value (array-based).
4396      *
4397      * This function calls the specified method of an object using arguments provided in an array and retrieves a byte
4398      * result.
4399      *
4400      * @param[in] env A pointer to the environment structure.
4401      * @param[in] object The object on which the method is to be called.
4402      * @param[in] method The method to call.
4403      * @param[out] result A pointer to store the byte return value.
4404      * @param[in] args An array of arguments to pass to the method.
4405      * @return Returns a status code of type `ani_status` indicating success or failure.
4406      */
4407     ani_status (*Object_CallMethod_Byte_A)(ani_env *env, ani_object object, ani_method method, ani_byte *result,
4408                                            const ani_value *args);
4409 
4410     /**
4411      * @brief Calls a method on an object and retrieves a byte return value (variadic arguments).
4412      *
4413      * This function calls the specified method of an object using a `va_list` and retrieves a byte result.
4414      *
4415      * @param[in] env A pointer to the environment structure.
4416      * @param[in] object The object on which the method is to be called.
4417      * @param[in] method The method to call.
4418      * @param[out] result A pointer to store the byte return value.
4419      * @param[in] args A `va_list` of arguments to pass to the method.
4420      * @return Returns a status code of type `ani_status` indicating success or failure.
4421      */
4422     ani_status (*Object_CallMethod_Byte_V)(ani_env *env, ani_object object, ani_method method, ani_byte *result,
4423                                            va_list args);
4424 
4425     /**
4426      * @brief Calls a method on an object and retrieves a short return value.
4427      *
4428      * This function calls the specified method of an object using variadic arguments and retrieves a short result.
4429      *
4430      * @param[in] env A pointer to the environment structure.
4431      * @param[in] object The object on which the method is to be called.
4432      * @param[in] method The method to call.
4433      * @param[out] result A pointer to store the short return value.
4434      * @param[in] ... Variadic arguments to pass to the method.
4435      * @return Returns a status code of type `ani_status` indicating success or failure.
4436      */
4437     ani_status (*Object_CallMethod_Short)(ani_env *env, ani_object object, ani_method method, ani_short *result, ...);
4438 
4439     /**
4440      * @brief Calls a method on an object and retrieves a short return value (array-based).
4441      *
4442      * This function calls the specified method of an object using arguments provided in an array and retrieves a short
4443      * result.
4444      *
4445      * @param[in] env A pointer to the environment structure.
4446      * @param[in] object The object on which the method is to be called.
4447      * @param[in] method The method to call.
4448      * @param[out] result A pointer to store the short return value.
4449      * @param[in] args An array of arguments to pass to the method.
4450      * @return Returns a status code of type `ani_status` indicating success or failure.
4451      */
4452     ani_status (*Object_CallMethod_Short_A)(ani_env *env, ani_object object, ani_method method, ani_short *result,
4453                                             const ani_value *args);
4454 
4455     /**
4456      * @brief Calls a method on an object and retrieves a short return value (variadic arguments).
4457      *
4458      * This function calls the specified method of an object using a `va_list` and retrieves a short result.
4459      *
4460      * @param[in] env A pointer to the environment structure.
4461      * @param[in] object The object on which the method is to be called.
4462      * @param[in] method The method to call.
4463      * @param[out] result A pointer to store the short return value.
4464      * @param[in] args A `va_list` of arguments to pass to the method.
4465      * @return Returns a status code of type `ani_status` indicating success or failure.
4466      */
4467     ani_status (*Object_CallMethod_Short_V)(ani_env *env, ani_object object, ani_method method, ani_short *result,
4468                                             va_list args);
4469 
4470     /**
4471      * @brief Calls a method on an object and retrieves a integer return value.
4472      *
4473      * This function calls the specified method of an object using variadic arguments and retrieves a integer result.
4474      *
4475      * @param[in] env A pointer to the environment structure.
4476      * @param[in] object The object on which the method is to be called.
4477      * @param[in] method The method to call.
4478      * @param[out] result A pointer to store the integer return value.
4479      * @param[in] ... Variadic arguments to pass to the method.
4480      * @return Returns a status code of type `ani_status` indicating success or failure.
4481      */
4482     ani_status (*Object_CallMethod_Int)(ani_env *env, ani_object object, ani_method method, ani_int *result, ...);
4483 
4484     /**
4485      * @brief Calls a method on an object and retrieves a integer return value (array-based).
4486      *
4487      * This function calls the specified method of an object using arguments provided in an array and retrieves a
4488      * integer result.
4489      *
4490      * @param[in] env A pointer to the environment structure.
4491      * @param[in] object The object on which the method is to be called.
4492      * @param[in] method The method to call.
4493      * @param[out] result A pointer to store the integer return value.
4494      * @param[in] args An array of arguments to pass to the method.
4495      * @return Returns a status code of type `ani_status` indicating success or failure.
4496      */
4497     ani_status (*Object_CallMethod_Int_A)(ani_env *env, ani_object object, ani_method method, ani_int *result,
4498                                           const ani_value *args);
4499 
4500     /**
4501      * @brief Calls a method on an object and retrieves a integer return value (variadic arguments).
4502      *
4503      * This function calls the specified method of an object using a `va_list` and retrieves a integer result.
4504      *
4505      * @param[in] env A pointer to the environment structure.
4506      * @param[in] object The object on which the method is to be called.
4507      * @param[in] method The method to call.
4508      * @param[out] result A pointer to store the integer return value.
4509      * @param[in] args A `va_list` of arguments to pass to the method.
4510      * @return Returns a status code of type `ani_status` indicating success or failure.
4511      */
4512     ani_status (*Object_CallMethod_Int_V)(ani_env *env, ani_object object, ani_method method, ani_int *result,
4513                                           va_list args);
4514 
4515     /**
4516      * @brief Calls a method on an object and retrieves a long return value.
4517      *
4518      * This function calls the specified method of an object using variadic arguments and retrieves a long result.
4519      *
4520      * @param[in] env A pointer to the environment structure.
4521      * @param[in] object The object on which the method is to be called.
4522      * @param[in] method The method to call.
4523      * @param[out] result A pointer to store the long return value.
4524      * @param[in] ... Variadic arguments to pass to the method.
4525      * @return Returns a status code of type `ani_status` indicating success or failure.
4526      */
4527     ani_status (*Object_CallMethod_Long)(ani_env *env, ani_object object, ani_method method, ani_long *result, ...);
4528 
4529     /**
4530      * @brief Calls a method on an object and retrieves a long return value (array-based).
4531      *
4532      * This function calls the specified method of an object using arguments provided in an array and retrieves a long
4533      * result.
4534      *
4535      * @param[in] env A pointer to the environment structure.
4536      * @param[in] object The object on which the method is to be called.
4537      * @param[in] method The method to call.
4538      * @param[out] result A pointer to store the long return value.
4539      * @param[in] args An array of arguments to pass to the method.
4540      * @return Returns a status code of type `ani_status` indicating success or failure.
4541      */
4542     ani_status (*Object_CallMethod_Long_A)(ani_env *env, ani_object object, ani_method method, ani_long *result,
4543                                            const ani_value *args);
4544 
4545     /**
4546      * @brief Calls a method on an object and retrieves a long return value (variadic arguments).
4547      *
4548      * This function calls the specified method of an object using a `va_list` and retrieves a long result.
4549      *
4550      * @param[in] env A pointer to the environment structure.
4551      * @param[in] object The object on which the method is to be called.
4552      * @param[in] method The method to call.
4553      * @param[out] result A pointer to store the long return value.
4554      * @param[in] args A `va_list` of arguments to pass to the method.
4555      * @return Returns a status code of type `ani_status` indicating success or failure.
4556      */
4557     ani_status (*Object_CallMethod_Long_V)(ani_env *env, ani_object object, ani_method method, ani_long *result,
4558                                            va_list args);
4559 
4560     /**
4561      * @brief Calls a method on an object and retrieves a float return value.
4562      *
4563      * This function calls the specified method of an object using variadic arguments and retrieves a float result.
4564      *
4565      * @param[in] env A pointer to the environment structure.
4566      * @param[in] object The object on which the method is to be called.
4567      * @param[in] method The method to call.
4568      * @param[out] result A pointer to store the float return value.
4569      * @param[in] ... Variadic arguments to pass to the method.
4570      * @return Returns a status code of type `ani_status` indicating success or failure.
4571      */
4572     ani_status (*Object_CallMethod_Float)(ani_env *env, ani_object object, ani_method method, ani_float *result, ...);
4573 
4574     /**
4575      * @brief Calls a method on an object and retrieves a float return value (array-based).
4576      *
4577      * This function calls the specified method of an object using arguments provided in an array and retrieves a float
4578      * result.
4579      *
4580      * @param[in] env A pointer to the environment structure.
4581      * @param[in] object The object on which the method is to be called.
4582      * @param[in] method The method to call.
4583      * @param[out] result A pointer to store the float return value.
4584      * @param[in] args An array of arguments to pass to the method.
4585      * @return Returns a status code of type `ani_status` indicating success or failure.
4586      */
4587     ani_status (*Object_CallMethod_Float_A)(ani_env *env, ani_object object, ani_method method, ani_float *result,
4588                                             const ani_value *args);
4589 
4590     /**
4591      * @brief Calls a method on an object and retrieves a float return value (variadic arguments).
4592      *
4593      * This function calls the specified method of an object using a `va_list` and retrieves a float result.
4594      *
4595      * @param[in] env A pointer to the environment structure.
4596      * @param[in] object The object on which the method is to be called.
4597      * @param[in] method The method to call.
4598      * @param[out] result A pointer to store the float return value.
4599      * @param[in] args A `va_list` of arguments to pass to the method.
4600      * @return Returns a status code of type `ani_status` indicating success or failure.
4601      */
4602     ani_status (*Object_CallMethod_Float_V)(ani_env *env, ani_object object, ani_method method, ani_float *result,
4603                                             va_list args);
4604 
4605     /**
4606      * @brief Calls a method on an object and retrieves a double return value.
4607      *
4608      * This function calls the specified method of an object using variadic arguments and retrieves a double result.
4609      *
4610      * @param[in] env A pointer to the environment structure.
4611      * @param[in] object The object on which the method is to be called.
4612      * @param[in] method The method to call.
4613      * @param[out] result A pointer to store the double return value.
4614      * @param[in] ... Variadic arguments to pass to the method.
4615      * @return Returns a status code of type `ani_status` indicating success or failure.
4616      */
4617     ani_status (*Object_CallMethod_Double)(ani_env *env, ani_object object, ani_method method, ani_double *result, ...);
4618 
4619     /**
4620      * @brief Calls a method on an object and retrieves a double return value (array-based).
4621      *
4622      * This function calls the specified method of an object using arguments provided in an array and retrieves a double
4623      * result.
4624      *
4625      * @param[in] env A pointer to the environment structure.
4626      * @param[in] object The object on which the method is to be called.
4627      * @param[in] method The method to call.
4628      * @param[out] result A pointer to store the double return value.
4629      * @param[in] args An array of arguments to pass to the method.
4630      * @return Returns a status code of type `ani_status` indicating success or failure.
4631      */
4632     ani_status (*Object_CallMethod_Double_A)(ani_env *env, ani_object object, ani_method method, ani_double *result,
4633                                              const ani_value *args);
4634 
4635     /**
4636      * @brief Calls a method on an object and retrieves a double return value (variadic arguments).
4637      *
4638      * This function calls the specified method of an object using a `va_list` and retrieves a double result.
4639      *
4640      * @param[in] env A pointer to the environment structure.
4641      * @param[in] object The object on which the method is to be called.
4642      * @param[in] method The method to call.
4643      * @param[out] result A pointer to store the double return value.
4644      * @param[in] args A `va_list` of arguments to pass to the method.
4645      * @return Returns a status code of type `ani_status` indicating success or failure.
4646      */
4647     ani_status (*Object_CallMethod_Double_V)(ani_env *env, ani_object object, ani_method method, ani_double *result,
4648                                              va_list args);
4649 
4650     /**
4651      * @brief Calls a method on an object and retrieves a reference return value.
4652      *
4653      * This function calls the specified method of an object using variadic arguments and retrieves a reference result.
4654      *
4655      * @param[in] env A pointer to the environment structure.
4656      * @param[in] object The object on which the method is to be called.
4657      * @param[in] method The method to call.
4658      * @param[out] result A pointer to store the reference return value.
4659      * @param[in] ... Variadic arguments to pass to the method.
4660      * @return Returns a status code of type `ani_status` indicating success or failure.
4661      */
4662     ani_status (*Object_CallMethod_Ref)(ani_env *env, ani_object object, ani_method method, ani_ref *result, ...);
4663 
4664     /**
4665      * @brief Calls a method on an object and retrieves a reference return value (array-based).
4666      *
4667      * This function calls the specified method of an object using arguments provided in an array and retrieves a
4668      * reference result.
4669      *
4670      * @param[in] env A pointer to the environment structure.
4671      * @param[in] object The object on which the method is to be called.
4672      * @param[in] method The method to call.
4673      * @param[out] result A pointer to store the reference return value.
4674      * @param[in] args An array of arguments to pass to the method.
4675      * @return Returns a status code of type `ani_status` indicating success or failure.
4676      */
4677     ani_status (*Object_CallMethod_Ref_A)(ani_env *env, ani_object object, ani_method method, ani_ref *result,
4678                                           const ani_value *args);
4679 
4680     /**
4681      * @brief Calls a method on an object and retrieves a reference return value (variadic arguments).
4682      *
4683      * This function calls the specified method of an object using a `va_list` and retrieves a reference result.
4684      *
4685      * @param[in] env A pointer to the environment structure.
4686      * @param[in] object The object on which the method is to be called.
4687      * @param[in] method The method to call.
4688      * @param[out] result A pointer to store the reference return value.
4689      * @param[in] args A `va_list` of arguments to pass to the method.
4690      * @return Returns a status code of type `ani_status` indicating success or failure.
4691      */
4692     ani_status (*Object_CallMethod_Ref_V)(ani_env *env, ani_object object, ani_method method, ani_ref *result,
4693                                           va_list args);
4694 
4695     /**
4696      * @brief Calls a method on an object with no return value.
4697      *
4698      * This function calls the specified method of an object using variadic arguments. The method does not return a
4699      * value.
4700      *
4701      * @param[in] env A pointer to the environment structure.
4702      * @param[in] object The object on which the method is to be called.
4703      * @param[in] method The method to call.
4704      * @param[in] ... Variadic arguments to pass to the method.
4705      * @return Returns a status code of type `ani_status` indicating success or failure.
4706      */
4707     ani_status (*Object_CallMethod_Void)(ani_env *env, ani_object object, ani_method method, ...);
4708 
4709     /**
4710      * @brief Calls a method on an object with no return value (array-based).
4711      *
4712      * This function calls the specified method of an object using arguments provided in an array. The method does not
4713      * return a value.
4714      *
4715      * @param[in] env A pointer to the environment structure.
4716      * @param[in] object The object on which the method is to be called.
4717      * @param[in] method The method to call.
4718      * @param[in] args An array of arguments to pass to the method.
4719      * @return Returns a status code of type `ani_status` indicating success or failure.
4720      */
4721     ani_status (*Object_CallMethod_Void_A)(ani_env *env, ani_object object, ani_method method, const ani_value *args);
4722 
4723     /**
4724      * @brief Calls a method on an object with no return value (variadic arguments).
4725      *
4726      * This function calls the specified method of an object using a `va_list`. The method does not return a value.
4727      *
4728      * @param[in] env A pointer to the environment structure.
4729      * @param[in] object The object on which the method is to be called.
4730      * @param[in] method The method to call.
4731      * @param[in] args A `va_list` of arguments to pass to the method.
4732      * @return Returns a status code of type `ani_status` indicating success or failure.
4733      */
4734     ani_status (*Object_CallMethod_Void_V)(ani_env *env, ani_object object, ani_method method, va_list args);
4735 
4736     /**
4737      * @brief Calls a method by name on an object and retrieves a boolean return value.
4738      *
4739      * This function calls the specified method by its name and signature on an object using variadic arguments and
4740      * retrieves a boolean result.
4741      *
4742      * @param[in] env A pointer to the environment structure.
4743      * @param[in] object The object on which the method is to be called.
4744      * @param[in] name The name of the method to call.
4745      * @param[in] signature The signature of the method to call.
4746      * @param[out] result A pointer to store the boolean return value.
4747      * @param[in] ... Variadic arguments to pass to the method.
4748      * @return Returns a status code of type `ani_status` indicating success or failure.
4749      */
4750     ani_status (*Object_CallMethodByName_Boolean)(ani_env *env, ani_object object, const char *name,
4751                                                   const char *signature, ani_boolean *result, ...);
4752 
4753     /**
4754      * @brief Calls a method by name on an object and retrieves a boolean return value (array-based).
4755      *
4756      * This function calls the specified method by its name and signature on an object using arguments provided in an
4757      * array and retrieves a boolean result.
4758      *
4759      * @param[in] env A pointer to the environment structure.
4760      * @param[in] object The object on which the method is to be called.
4761      * @param[in] name The name of the method to call.
4762      * @param[in] signature The signature of the method to call.
4763      * @param[out] result A pointer to store the boolean return value.
4764      * @param[in] args An array of arguments to pass to the method.
4765      * @return Returns a status code of type `ani_status` indicating success or failure.
4766      */
4767     ani_status (*Object_CallMethodByName_Boolean_A)(ani_env *env, ani_object object, const char *name,
4768                                                     const char *signature, ani_boolean *result, const ani_value *args);
4769 
4770     /**
4771      * @brief Calls a method by name on an object and retrieves a boolean return value (variadic arguments).
4772      *
4773      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4774      * boolean result.
4775      *
4776      * @param[in] env A pointer to the environment structure.
4777      * @param[in] object The object on which the method is to be called.
4778      * @param[in] name The name of the method to call.
4779      * @param[in] signature The signature of the method to call.
4780      * @param[out] result A pointer to store the boolean return value.
4781      * @param[in] args A `va_list` of arguments to pass to the method.
4782      * @return Returns a status code of type `ani_status` indicating success or failure.
4783      */
4784     ani_status (*Object_CallMethodByName_Boolean_V)(ani_env *env, ani_object object, const char *name,
4785                                                     const char *signature, ani_boolean *result, va_list args);
4786 
4787     /**
4788      * @brief Calls a method by name on an object and retrieves a char return value.
4789      *
4790      * This function calls the specified method by its name and signature on an object using variadic arguments and
4791      * retrieves a char result.
4792      *
4793      * @param[in] env A pointer to the environment structure.
4794      * @param[in] object The object on which the method is to be called.
4795      * @param[in] name The name of the method to call.
4796      * @param[in] signature The signature of the method to call.
4797      * @param[out] result A pointer to store the char return value.
4798      * @param[in] ... Variadic arguments to pass to the method.
4799      * @return Returns a status code of type `ani_status` indicating success or failure.
4800      */
4801     ani_status (*Object_CallMethodByName_Char)(ani_env *env, ani_object object, const char *name, const char *signature,
4802                                                ani_char *result, ...);
4803 
4804     /**
4805      * @brief Calls a method by name on an object and retrieves a char return value (array-based).
4806      *
4807      * This function calls the specified method by its name and signature on an object using arguments provided in an
4808      * array and retrieves a char result.
4809      *
4810      * @param[in] env A pointer to the environment structure.
4811      * @param[in] object The object on which the method is to be called.
4812      * @param[in] name The name of the method to call.
4813      * @param[in] signature The signature of the method to call.
4814      * @param[out] result A pointer to store the char return value.
4815      * @param[in] args An array of arguments to pass to the method.
4816      * @return Returns a status code of type `ani_status` indicating success or failure.
4817      */
4818     ani_status (*Object_CallMethodByName_Char_A)(ani_env *env, ani_object object, const char *name,
4819                                                  const char *signature, ani_char *result, const ani_value *args);
4820 
4821     /**
4822      * @brief Calls a method by name on an object and retrieves a char return value (variadic arguments).
4823      *
4824      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4825      * char result.
4826      *
4827      * @param[in] env A pointer to the environment structure.
4828      * @param[in] object The object on which the method is to be called.
4829      * @param[in] name The name of the method to call.
4830      * @param[in] signature The signature of the method to call.
4831      * @param[out] result A pointer to store the char return value.
4832      * @param[in] args A `va_list` of arguments to pass to the method.
4833      * @return Returns a status code of type `ani_status` indicating success or failure.
4834      */
4835     ani_status (*Object_CallMethodByName_Char_V)(ani_env *env, ani_object object, const char *name,
4836                                                  const char *signature, ani_char *result, va_list args);
4837 
4838     /**
4839      * @brief Calls a method by name on an object and retrieves a byte return value.
4840      *
4841      * This function calls the specified method by its name and signature on an object using variadic arguments and
4842      * retrieves a byte result.
4843      *
4844      * @param[in] env A pointer to the environment structure.
4845      * @param[in] object The object on which the method is to be called.
4846      * @param[in] name The name of the method to call.
4847      * @param[in] signature The signature of the method to call.
4848      * @param[out] result A pointer to store the byte return value.
4849      * @param[in] ... Variadic arguments to pass to the method.
4850      * @return Returns a status code of type `ani_status` indicating success or failure.
4851      */
4852     ani_status (*Object_CallMethodByName_Byte)(ani_env *env, ani_object object, const char *name, const char *signature,
4853                                                ani_byte *result, ...);
4854 
4855     /**
4856      * @brief Calls a method by name on an object and retrieves a byte return value (array-based).
4857      *
4858      * This function calls the specified method by its name and signature on an object using arguments provided in an
4859      * array and retrieves a byte result.
4860      *
4861      * @param[in] env A pointer to the environment structure.
4862      * @param[in] object The object on which the method is to be called.
4863      * @param[in] name The name of the method to call.
4864      * @param[in] signature The signature of the method to call.
4865      * @param[out] result A pointer to store the byte return value.
4866      * @param[in] args An array of arguments to pass to the method.
4867      * @return Returns a status code of type `ani_status` indicating success or failure.
4868      */
4869     ani_status (*Object_CallMethodByName_Byte_A)(ani_env *env, ani_object object, const char *name,
4870                                                  const char *signature, ani_byte *result, const ani_value *args);
4871 
4872     /**
4873      * @brief Calls a method by name on an object and retrieves a byte return value (variadic arguments).
4874      *
4875      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4876      * byte result.
4877      *
4878      * @param[in] env A pointer to the environment structure.
4879      * @param[in] object The object on which the method is to be called.
4880      * @param[in] name The name of the method to call.
4881      * @param[in] signature The signature of the method to call.
4882      * @param[out] result A pointer to store the byte return value.
4883      * @param[in] args A `va_list` of arguments to pass to the method.
4884      * @return Returns a status code of type `ani_status` indicating success or failure.
4885      */
4886     ani_status (*Object_CallMethodByName_Byte_V)(ani_env *env, ani_object object, const char *name,
4887                                                  const char *signature, ani_byte *result, va_list args);
4888 
4889     /**
4890      * @brief Calls a method by name on an object and retrieves a short return value.
4891      *
4892      * This function calls the specified method by its name and signature on an object using variadic arguments and
4893      * retrieves a short result.
4894      *
4895      * @param[in] env A pointer to the environment structure.
4896      * @param[in] object The object on which the method is to be called.
4897      * @param[in] name The name of the method to call.
4898      * @param[in] signature The signature of the method to call.
4899      * @param[out] result A pointer to store the short return value.
4900      * @param[in] ... Variadic arguments to pass to the method.
4901      * @return Returns a status code of type `ani_status` indicating success or failure.
4902      */
4903     ani_status (*Object_CallMethodByName_Short)(ani_env *env, ani_object object, const char *name,
4904                                                 const char *signature, ani_short *result, ...);
4905 
4906     /**
4907      * @brief Calls a method by name on an object and retrieves a short return value (array-based).
4908      *
4909      * This function calls the specified method by its name and signature on an object using arguments provided in an
4910      * array and retrieves a short result.
4911      *
4912      * @param[in] env A pointer to the environment structure.
4913      * @param[in] object The object on which the method is to be called.
4914      * @param[in] name The name of the method to call.
4915      * @param[in] signature The signature of the method to call.
4916      * @param[out] result A pointer to store the short return value.
4917      * @param[in] args An array of arguments to pass to the method.
4918      * @return Returns a status code of type `ani_status` indicating success or failure.
4919      */
4920     ani_status (*Object_CallMethodByName_Short_A)(ani_env *env, ani_object object, const char *name,
4921                                                   const char *signature, ani_short *result, const ani_value *args);
4922 
4923     /**
4924      * @brief Calls a method by name on an object and retrieves a short return value (variadic arguments).
4925      *
4926      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4927      * short result.
4928      *
4929      * @param[in] env A pointer to the environment structure.
4930      * @param[in] object The object on which the method is to be called.
4931      * @param[in] name The name of the method to call.
4932      * @param[in] signature The signature of the method to call.
4933      * @param[out] result A pointer to store the short return value.
4934      * @param[in] args A `va_list` of arguments to pass to the method.
4935      * @return Returns a status code of type `ani_status` indicating success or failure.
4936      */
4937     ani_status (*Object_CallMethodByName_Short_V)(ani_env *env, ani_object object, const char *name,
4938                                                   const char *signature, ani_short *result, va_list args);
4939 
4940     /**
4941      * @brief Calls a method by name on an object and retrieves a integer return value.
4942      *
4943      * This function calls the specified method by its name and signature on an object using variadic arguments and
4944      * retrieves a integer result.
4945      *
4946      * @param[in] env A pointer to the environment structure.
4947      * @param[in] object The object on which the method is to be called.
4948      * @param[in] name The name of the method to call.
4949      * @param[in] signature The signature of the method to call.
4950      * @param[out] result A pointer to store the integer return value.
4951      * @param[in] ... Variadic arguments to pass to the method.
4952      * @return Returns a status code of type `ani_status` indicating success or failure.
4953      */
4954     ani_status (*Object_CallMethodByName_Int)(ani_env *env, ani_object object, const char *name, const char *signature,
4955                                               ani_int *result, ...);
4956 
4957     /**
4958      * @brief Calls a method by name on an object and retrieves a integer return value (array-based).
4959      *
4960      * This function calls the specified method by its name and signature on an object using arguments provided in an
4961      * array and retrieves a integer result.
4962      *
4963      * @param[in] env A pointer to the environment structure.
4964      * @param[in] object The object on which the method is to be called.
4965      * @param[in] name The name of the method to call.
4966      * @param[in] signature The signature of the method to call.
4967      * @param[out] result A pointer to store the integer return value.
4968      * @param[in] args An array of arguments to pass to the method.
4969      * @return Returns a status code of type `ani_status` indicating success or failure.
4970      */
4971     ani_status (*Object_CallMethodByName_Int_A)(ani_env *env, ani_object object, const char *name,
4972                                                 const char *signature, ani_int *result, const ani_value *args);
4973 
4974     /**
4975      * @brief Calls a method by name on an object and retrieves a integer return value (variadic arguments).
4976      *
4977      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4978      * integer result.
4979      *
4980      * @param[in] env A pointer to the environment structure.
4981      * @param[in] object The object on which the method is to be called.
4982      * @param[in] name The name of the method to call.
4983      * @param[in] signature The signature of the method to call.
4984      * @param[out] result A pointer to store the integer return value.
4985      * @param[in] args A `va_list` of arguments to pass to the method.
4986      * @return Returns a status code of type `ani_status` indicating success or failure.
4987      */
4988     ani_status (*Object_CallMethodByName_Int_V)(ani_env *env, ani_object object, const char *name,
4989                                                 const char *signature, ani_int *result, va_list args);
4990 
4991     /**
4992      * @brief Calls a method by name on an object and retrieves a long return value.
4993      *
4994      * This function calls the specified method by its name and signature on an object using variadic arguments and
4995      * retrieves a long result.
4996      *
4997      * @param[in] env A pointer to the environment structure.
4998      * @param[in] object The object on which the method is to be called.
4999      * @param[in] name The name of the method to call.
5000      * @param[in] signature The signature of the method to call.
5001      * @param[out] result A pointer to store the long return value.
5002      * @param[in] ... Variadic arguments to pass to the method.
5003      * @return Returns a status code of type `ani_status` indicating success or failure.
5004      */
5005     ani_status (*Object_CallMethodByName_Long)(ani_env *env, ani_object object, const char *name, const char *signature,
5006                                                ani_long *result, ...);
5007 
5008     /**
5009      * @brief Calls a method by name on an object and retrieves a long return value (array-based).
5010      *
5011      * This function calls the specified method by its name and signature on an object using arguments provided in an
5012      * array and retrieves a long result.
5013      *
5014      * @param[in] env A pointer to the environment structure.
5015      * @param[in] object The object on which the method is to be called.
5016      * @param[in] name The name of the method to call.
5017      * @param[in] signature The signature of the method to call.
5018      * @param[out] result A pointer to store the long return value.
5019      * @param[in] args An array of arguments to pass to the method.
5020      * @return Returns a status code of type `ani_status` indicating success or failure.
5021      */
5022     ani_status (*Object_CallMethodByName_Long_A)(ani_env *env, ani_object object, const char *name,
5023                                                  const char *signature, ani_long *result, const ani_value *args);
5024 
5025     /**
5026      * @brief Calls a method by name on an object and retrieves a long return value (variadic arguments).
5027      *
5028      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5029      * long result.
5030      *
5031      * @param[in] env A pointer to the environment structure.
5032      * @param[in] object The object on which the method is to be called.
5033      * @param[in] name The name of the method to call.
5034      * @param[in] signature The signature of the method to call.
5035      * @param[out] result A pointer to store the long return value.
5036      * @param[in] args A `va_list` of arguments to pass to the method.
5037      * @return Returns a status code of type `ani_status` indicating success or failure.
5038      */
5039     ani_status (*Object_CallMethodByName_Long_V)(ani_env *env, ani_object object, const char *name,
5040                                                  const char *signature, ani_long *result, va_list args);
5041 
5042     /**
5043      * @brief Calls a method by name on an object and retrieves a float return value.
5044      *
5045      * This function calls the specified method by its name and signature on an object using variadic arguments and
5046      * retrieves a float result.
5047      *
5048      * @param[in] env A pointer to the environment structure.
5049      * @param[in] object The object on which the method is to be called.
5050      * @param[in] name The name of the method to call.
5051      * @param[in] signature The signature of the method to call.
5052      * @param[out] result A pointer to store the float return value.
5053      * @param[in] ... Variadic 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_CallMethodByName_Float)(ani_env *env, ani_object object, const char *name,
5057                                                 const char *signature, ani_float *result, ...);
5058 
5059     /**
5060      * @brief Calls a method by name on an object and retrieves a float return value (array-based).
5061      *
5062      * This function calls the specified method by its name and signature on an object using arguments provided in an
5063      * array and retrieves a float result.
5064      *
5065      * @param[in] env A pointer to the environment structure.
5066      * @param[in] object The object on which the method is to be called.
5067      * @param[in] name The name of the method to call.
5068      * @param[in] signature The signature of the method to call.
5069      * @param[out] result A pointer to store the float return value.
5070      * @param[in] args An array of arguments to pass to the method.
5071      * @return Returns a status code of type `ani_status` indicating success or failure.
5072      */
5073     ani_status (*Object_CallMethodByName_Float_A)(ani_env *env, ani_object object, const char *name,
5074                                                   const char *signature, ani_float *result, const ani_value *args);
5075 
5076     /**
5077      * @brief Calls a method by name on an object and retrieves a float return value (variadic arguments).
5078      *
5079      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5080      * float result.
5081      *
5082      * @param[in] env A pointer to the environment structure.
5083      * @param[in] object The object on which the method is to be called.
5084      * @param[in] name The name of the method to call.
5085      * @param[in] signature The signature of the method to call.
5086      * @param[out] result A pointer to store the float return value.
5087      * @param[in] args A `va_list` of arguments to pass to the method.
5088      * @return Returns a status code of type `ani_status` indicating success or failure.
5089      */
5090     ani_status (*Object_CallMethodByName_Float_V)(ani_env *env, ani_object object, const char *name,
5091                                                   const char *signature, ani_float *result, va_list args);
5092 
5093     /**
5094      * @brief Calls a method by name on an object and retrieves a double return value.
5095      *
5096      * This function calls the specified method by its name and signature on an object using variadic arguments and
5097      * retrieves a double result.
5098      *
5099      * @param[in] env A pointer to the environment structure.
5100      * @param[in] object The object on which the method is to be called.
5101      * @param[in] name The name of the method to call.
5102      * @param[in] signature The signature of the method to call.
5103      * @param[out] result A pointer to store the double return value.
5104      * @param[in] ... Variadic arguments to pass to the method.
5105      * @return Returns a status code of type `ani_status` indicating success or failure.
5106      */
5107     ani_status (*Object_CallMethodByName_Double)(ani_env *env, ani_object object, const char *name,
5108                                                  const char *signature, ani_double *result, ...);
5109 
5110     /**
5111      * @brief Calls a method by name on an object and retrieves a double return value (array-based).
5112      *
5113      * This function calls the specified method by its name and signature on an object using arguments provided in an
5114      * array and retrieves a double result.
5115      *
5116      * @param[in] env A pointer to the environment structure.
5117      * @param[in] object The object on which the method is to be called.
5118      * @param[in] name The name of the method to call.
5119      * @param[in] signature The signature of the method to call.
5120      * @param[out] result A pointer to store the double return value.
5121      * @param[in] args An array of arguments to pass to the method.
5122      * @return Returns a status code of type `ani_status` indicating success or failure.
5123      */
5124     ani_status (*Object_CallMethodByName_Double_A)(ani_env *env, ani_object object, const char *name,
5125                                                    const char *signature, ani_double *result, const ani_value *args);
5126 
5127     /**
5128      * @brief Calls a method by name on an object and retrieves a double return value (variadic arguments).
5129      *
5130      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5131      * double result.
5132      *
5133      * @param[in] env A pointer to the environment structure.
5134      * @param[in] object The object on which the method is to be called.
5135      * @param[in] name The name of the method to call.
5136      * @param[in] signature The signature of the method to call.
5137      * @param[out] result A pointer to store the double return value.
5138      * @param[in] args A `va_list` of arguments to pass to the method.
5139      * @return Returns a status code of type `ani_status` indicating success or failure.
5140      */
5141     ani_status (*Object_CallMethodByName_Double_V)(ani_env *env, ani_object object, const char *name,
5142                                                    const char *signature, ani_double *result, va_list args);
5143 
5144     /**
5145      * @brief Calls a method by name on an object and retrieves a reference return value.
5146      *
5147      * This function calls the specified method by its name and signature on an object using variadic arguments and
5148      * retrieves a reference result.
5149      *
5150      * @param[in] env A pointer to the environment structure.
5151      * @param[in] object The object on which the method is to be called.
5152      * @param[in] name The name of the method to call.
5153      * @param[in] signature The signature of the method to call.
5154      * @param[out] result A pointer to store the reference return value.
5155      * @param[in] ... Variadic arguments to pass to the method.
5156      * @return Returns a status code of type `ani_status` indicating success or failure.
5157      */
5158     ani_status (*Object_CallMethodByName_Ref)(ani_env *env, ani_object object, const char *name, const char *signature,
5159                                               ani_ref *result, ...);
5160 
5161     /**
5162      * @brief Calls a method by name on an object and retrieves a reference return value (array-based).
5163      *
5164      * This function calls the specified method by its name and signature on an object using arguments provided in an
5165      * array and retrieves a reference result.
5166      *
5167      * @param[in] env A pointer to the environment structure.
5168      * @param[in] object The object on which the method is to be called.
5169      * @param[in] name The name of the method to call.
5170      * @param[in] signature The signature of the method to call.
5171      * @param[out] result A pointer to store the reference return value.
5172      * @param[in] args An array of arguments to pass to the method.
5173      * @return Returns a status code of type `ani_status` indicating success or failure.
5174      */
5175     ani_status (*Object_CallMethodByName_Ref_A)(ani_env *env, ani_object object, const char *name,
5176                                                 const char *signature, ani_ref *result, const ani_value *args);
5177 
5178     /**
5179      * @brief Calls a method by name on an object and retrieves a reference return value (variadic arguments).
5180      *
5181      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5182      * reference 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] name The name of the method to call.
5187      * @param[in] signature The signature of the method to call.
5188      * @param[out] result A pointer to store the reference return value.
5189      * @param[in] args A `va_list` of arguments to pass to the method.
5190      * @return Returns a status code of type `ani_status` indicating success or failure.
5191      */
5192     ani_status (*Object_CallMethodByName_Ref_V)(ani_env *env, ani_object object, const char *name,
5193                                                 const char *signature, ani_ref *result, va_list args);
5194 
5195     /**
5196      * @brief Calls a method by name on an object with no return value.
5197      *
5198      * This function calls the specified method by its name and signature on an object using variadic arguments. The
5199      * method does not return a value.
5200      *
5201      * @param[in] env A pointer to the environment structure.
5202      * @param[in] object The object on which the method is to be called.
5203      * @param[in] name The name of the method to call.
5204      * @param[in] signature The signature of the method to call.
5205      * @param[in] ... Variadic arguments to pass to the method.
5206      * @return Returns a status code of type `ani_status` indicating success or failure.
5207      */
5208     ani_status (*Object_CallMethodByName_Void)(ani_env *env, ani_object object, const char *name, const char *signature,
5209                                                ...);
5210 
5211     /**
5212      * @brief Calls a method by name on an object with no return value (array-based).
5213      *
5214      * This function calls the specified method by its name and signature on an object using arguments provided in an
5215      * array. The method does not return a value.
5216      *
5217      * @param[in] env A pointer to the environment structure.
5218      * @param[in] object The object on which the method is to be called.
5219      * @param[in] name The name of the method to call.
5220      * @param[in] signature The signature of the method to call.
5221      * @param[in] args An array of arguments to pass to the method.
5222      * @return Returns a status code of type `ani_status` indicating success or failure.
5223      */
5224     ani_status (*Object_CallMethodByName_Void_A)(ani_env *env, ani_object object, const char *name,
5225                                                  const char *signature, const ani_value *args);
5226 
5227     /**
5228      * @brief Calls a method by name on an object with no return value (variadic arguments).
5229      *
5230      * This function calls the specified method by its name and signature on an object using a `va_list`. The method
5231      * does not return a value.
5232      *
5233      * @param[in] env A pointer to the environment structure.
5234      * @param[in] object The object on which the method is to be called.
5235      * @param[in] name The name of the method to call.
5236      * @param[in] signature The signature of the method to call.
5237      * @param[in] args A `va_list` of arguments to pass to the method.
5238      * @return Returns a status code of type `ani_status` indicating success or failure.
5239      */
5240     ani_status (*Object_CallMethodByName_Void_V)(ani_env *env, ani_object object, const char *name,
5241                                                  const char *signature, va_list args);
5242 
5243     /**
5244      * @brief Retrieves the number of items in a tuple value.
5245      *
5246      * This function retrieves the total number of items in the specified tuple value.
5247      *
5248      * @param[in] env A pointer to the environment structure.
5249      * @param[in] tuple_value The tuple value whose number of items is to be retrieved.
5250      * @param[out] result A pointer to store the number of items.
5251      * @return Returns a status code of type `ani_status` indicating success or failure.
5252      */
5253     ani_status (*TupleValue_GetNumberOfItems)(ani_env *env, ani_tuple_value tuple_value, ani_size *result);
5254 
5255     /**
5256      * @brief Retrieves a boolean item from a tuple value.
5257      *
5258      * This function retrieves the boolean value of the item at the specified index in the tuple value.
5259      *
5260      * @param[in] env A pointer to the environment structure.
5261      * @param[in] tuple_value The tuple value containing the item.
5262      * @param[in] index The index of the item.
5263      * @param[out] result A pointer to store the boolean value of the item.
5264      * @return Returns a status code of type `ani_status` indicating success or failure.
5265      */
5266     ani_status (*TupleValue_GetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5267                                              ani_boolean *result);
5268 
5269     /**
5270      * @brief Retrieves a char item from a tuple value.
5271      *
5272      * This function retrieves the char value of the item at the specified index in the tuple value.
5273      *
5274      * @param[in] env A pointer to the environment structure.
5275      * @param[in] tuple_value The tuple value containing the item.
5276      * @param[in] index The index of the item.
5277      * @param[out] result A pointer to store the char value of the item.
5278      * @return Returns a status code of type `ani_status` indicating success or failure.
5279      */
5280     ani_status (*TupleValue_GetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char *result);
5281 
5282     /**
5283      * @brief Retrieves a byte item from a tuple value.
5284      *
5285      * This function retrieves the byte value of the item at the specified index in the tuple value.
5286      *
5287      * @param[in] env A pointer to the environment structure.
5288      * @param[in] tuple_value The tuple value containing the item.
5289      * @param[in] index The index of the item.
5290      * @param[out] result A pointer to store the byte value of the item.
5291      * @return Returns a status code of type `ani_status` indicating success or failure.
5292      */
5293     ani_status (*TupleValue_GetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte *result);
5294 
5295     /**
5296      * @brief Retrieves a short item from a tuple value.
5297      *
5298      * This function retrieves the short value of the item at the specified index in the tuple value.
5299      *
5300      * @param[in] env A pointer to the environment structure.
5301      * @param[in] tuple_value The tuple value containing the item.
5302      * @param[in] index The index of the item.
5303      * @param[out] result A pointer to store the short value of the item.
5304      * @return Returns a status code of type `ani_status` indicating success or failure.
5305      */
5306     ani_status (*TupleValue_GetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5307                                            ani_short *result);
5308 
5309     /**
5310      * @brief Retrieves a integer item from a tuple value.
5311      *
5312      * This function retrieves the integer value of the item at the specified index in the tuple value.
5313      *
5314      * @param[in] env A pointer to the environment structure.
5315      * @param[in] tuple_value The tuple value containing the item.
5316      * @param[in] index The index of the item.
5317      * @param[out] result A pointer to store the integer value of the item.
5318      * @return Returns a status code of type `ani_status` indicating success or failure.
5319      */
5320     ani_status (*TupleValue_GetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int *result);
5321 
5322     /**
5323      * @brief Retrieves a long item from a tuple value.
5324      *
5325      * This function retrieves the long value of the item at the specified index in the tuple value.
5326      *
5327      * @param[in] env A pointer to the environment structure.
5328      * @param[in] tuple_value The tuple value containing the item.
5329      * @param[in] index The index of the item.
5330      * @param[out] result A pointer to store the long value of the item.
5331      * @return Returns a status code of type `ani_status` indicating success or failure.
5332      */
5333     ani_status (*TupleValue_GetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long *result);
5334 
5335     /**
5336      * @brief Retrieves a float item from a tuple value.
5337      *
5338      * This function retrieves the float value of the item at the specified index in the tuple value.
5339      *
5340      * @param[in] env A pointer to the environment structure.
5341      * @param[in] tuple_value The tuple value containing the item.
5342      * @param[in] index The index of the item.
5343      * @param[out] result A pointer to store the float value of the item.
5344      * @return Returns a status code of type `ani_status` indicating success or failure.
5345      */
5346     ani_status (*TupleValue_GetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5347                                            ani_float *result);
5348 
5349     /**
5350      * @brief Retrieves a double item from a tuple value.
5351      *
5352      * This function retrieves the double value of the item at the specified index in the tuple value.
5353      *
5354      * @param[in] env A pointer to the environment structure.
5355      * @param[in] tuple_value The tuple value containing the item.
5356      * @param[in] index The index of the item.
5357      * @param[out] result A pointer to store the double value of the item.
5358      * @return Returns a status code of type `ani_status` indicating success or failure.
5359      */
5360     ani_status (*TupleValue_GetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5361                                             ani_double *result);
5362 
5363     /**
5364      * @brief Retrieves a reference item from a tuple value.
5365      *
5366      * This function retrieves the reference value of the item at the specified index in the tuple value.
5367      *
5368      * @param[in] env A pointer to the environment structure.
5369      * @param[in] tuple_value The tuple value containing the item.
5370      * @param[in] index The index of the item.
5371      * @param[out] result A pointer to store the reference value of the item.
5372      * @return Returns a status code of type `ani_status` indicating success or failure.
5373      */
5374     ani_status (*TupleValue_GetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref *result);
5375 
5376     /**
5377      * @brief Sets a boolean value to an item in a tuple value.
5378      *
5379      * This function assigns a boolean value to the item at the specified index in the tuple value.
5380      *
5381      * @param[in] env A pointer to the environment structure.
5382      * @param[in] tuple_value The tuple value containing the item.
5383      * @param[in] index The index of the item.
5384      * @param[in] value The boolean value to assign to the item.
5385      * @return Returns a status code of type `ani_status` indicating success or failure.
5386      */
5387     ani_status (*TupleValue_SetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5388                                              ani_boolean value);
5389 
5390     /**
5391      * @brief Sets a char value to an item in a tuple value.
5392      *
5393      * This function assigns a char value to the item at the specified index in the tuple value.
5394      *
5395      * @param[in] env A pointer to the environment structure.
5396      * @param[in] tuple_value The tuple value containing the item.
5397      * @param[in] index The index of the item.
5398      * @param[in] value The char value to assign to the item.
5399      * @return Returns a status code of type `ani_status` indicating success or failure.
5400      */
5401     ani_status (*TupleValue_SetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char value);
5402 
5403     /**
5404      * @brief Sets a byte value to an item in a tuple value.
5405      *
5406      * This function assigns a byte value to the item at the specified index in the tuple value.
5407      *
5408      * @param[in] env A pointer to the environment structure.
5409      * @param[in] tuple_value The tuple value containing the item.
5410      * @param[in] index The index of the item.
5411      * @param[in] value The byte value to assign to the item.
5412      * @return Returns a status code of type `ani_status` indicating success or failure.
5413      */
5414     ani_status (*TupleValue_SetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte value);
5415 
5416     /**
5417      * @brief Sets a short value to an item in a tuple value.
5418      *
5419      * This function assigns a short value to the item at the specified index in the tuple value.
5420      *
5421      * @param[in] env A pointer to the environment structure.
5422      * @param[in] tuple_value The tuple value containing the item.
5423      * @param[in] index The index of the item.
5424      * @param[in] value The short value to assign to the item.
5425      * @return Returns a status code of type `ani_status` indicating success or failure.
5426      */
5427     ani_status (*TupleValue_SetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_short value);
5428 
5429     /**
5430      * @brief Sets a integer value to an item in a tuple value.
5431      *
5432      * This function assigns a integer value to the item at the specified index in the tuple value.
5433      *
5434      * @param[in] env A pointer to the environment structure.
5435      * @param[in] tuple_value The tuple value containing the item.
5436      * @param[in] index The index of the item.
5437      * @param[in] value The integer value to assign to the item.
5438      * @return Returns a status code of type `ani_status` indicating success or failure.
5439      */
5440     ani_status (*TupleValue_SetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int value);
5441 
5442     /**
5443      * @brief Sets a long value to an item in a tuple value.
5444      *
5445      * This function assigns a long value to the item at the specified index in the tuple value.
5446      *
5447      * @param[in] env A pointer to the environment structure.
5448      * @param[in] tuple_value The tuple value containing the item.
5449      * @param[in] index The index of the item.
5450      * @param[in] value The long value to assign to the item.
5451      * @return Returns a status code of type `ani_status` indicating success or failure.
5452      */
5453     ani_status (*TupleValue_SetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long value);
5454 
5455     /**
5456      * @brief Sets a float value to an item in a tuple value.
5457      *
5458      * This function assigns a float value to the item at the specified index in the tuple value.
5459      *
5460      * @param[in] env A pointer to the environment structure.
5461      * @param[in] tuple_value The tuple value containing the item.
5462      * @param[in] index The index of the item.
5463      * @param[in] value The float value to assign to the item.
5464      * @return Returns a status code of type `ani_status` indicating success or failure.
5465      */
5466     ani_status (*TupleValue_SetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_float value);
5467 
5468     /**
5469      * @brief Sets a double value to an item in a tuple value.
5470      *
5471      * This function assigns a double value to the item at the specified index in the tuple value.
5472      *
5473      * @param[in] env A pointer to the environment structure.
5474      * @param[in] tuple_value The tuple value containing the item.
5475      * @param[in] index The index of the item.
5476      * @param[in] value The double value to assign to the item.
5477      * @return Returns a status code of type `ani_status` indicating success or failure.
5478      */
5479     ani_status (*TupleValue_SetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5480                                             ani_double value);
5481 
5482     /**
5483      * @brief Sets a reference value to an item in a tuple value.
5484      *
5485      * This function assigns a reference value to the item at the specified index in the tuple value.
5486      *
5487      * @param[in] env A pointer to the environment structure.
5488      * @param[in] tuple_value The tuple value containing the item.
5489      * @param[in] index The index of the item.
5490      * @param[in] value The reference value to assign to the item.
5491      * @return Returns a status code of type `ani_status` indicating success or failure.
5492      */
5493     ani_status (*TupleValue_SetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref value);
5494 
5495     /**
5496      * @brief Creates a global reference.
5497      *
5498      * This function creates a global reference from a local reference.
5499      *
5500      * @param[in] env A pointer to the environment structure.
5501      * @param[in] ref The local reference to convert to a global reference.
5502      * @param[out] result A pointer to store the created global reference.
5503      * @return Returns a status code of type `ani_status` indicating success or failure.
5504      */
5505     ani_status (*GlobalReference_Create)(ani_env *env, ani_ref ref, ani_ref *result);
5506 
5507     /**
5508      * @brief Deletes a global reference.
5509      *
5510      * This function deletes the specified global reference, releasing all associated resources.
5511      *
5512      * @param[in] env A pointer to the environment structure.
5513      * @param[in] gref The global reference to delete.
5514      * @return Returns a status code of type `ani_status` indicating success or failure.
5515      */
5516     ani_status (*GlobalReference_Delete)(ani_env *env, ani_ref gref);
5517 
5518     /**
5519      * @brief Creates a weak reference.
5520      *
5521      * This function creates a weak reference from a local reference.
5522      *
5523      * @param[in] env A pointer to the environment structure.
5524      * @param[in] ref The local reference to convert to a weak reference.
5525      * @param[out] result A pointer to store the created weak reference.
5526      * @return Returns a status code of type `ani_status` indicating success or failure.
5527      */
5528     ani_status (*WeakReference_Create)(ani_env *env, ani_ref ref, ani_wref *result);
5529 
5530     /**
5531      * @brief Deletes a weak reference.
5532      *
5533      * This function deletes the specified weak reference, releasing all associated resources.
5534      *
5535      * @param[in] env A pointer to the environment structure.
5536      * @param[in] wref The weak reference to delete.
5537      * @return Returns a status code of type `ani_status` indicating success or failure.
5538      */
5539     ani_status (*WeakReference_Delete)(ani_env *env, ani_wref wref);
5540 
5541     /**
5542      * @brief Retrieves the local reference associated with a weak reference.
5543      *
5544      * This function retrieves the local reference that corresponds to the specified weak reference.
5545      *
5546      * @param[in] env A pointer to the environment structure.
5547      * @param[in] wref The weak reference to query.
5548      * @param[out] was_released_result A pointer to boolean flag which indicates that wref is GC collected.
5549      * @param[out] ref_result A pointer to store the retrieved local reference.
5550      * @return Returns a status code of type `ani_status` indicating success or failure.
5551      */
5552     ani_status (*WeakReference_GetReference)(ani_env *env, ani_wref wref, ani_boolean *was_released_result,
5553                                              ani_ref *ref_result);
5554 
5555     /**
5556      * @brief Creates a new array buffer.
5557      *
5558      * This function creates a new array buffer with the specified length and returns a pointer to the allocated data.
5559      *
5560      * @param[in] env A pointer to the environment structure.
5561      * @param[in] length The length of the array buffer in bytes.
5562      * @param[out] data_result A pointer to store the allocated data of the array buffer.
5563      * @param[out] arraybuffer_result A pointer to store the created array buffer object.
5564      * @return Returns a status code of type `ani_status` indicating success or failure.
5565      */
5566     ani_status (*CreateArrayBuffer)(ani_env *env, size_t length, void **data_result,
5567                                     ani_arraybuffer *arraybuffer_result);
5568 
5569     /**
5570      * @brief Creates a new array buffer using external data.
5571      *
5572      * This function creates an array buffer that uses external data. The provided finalizer will be called when the
5573      * array buffer is no longer needed.
5574      *
5575      * @param[in] env A pointer to the environment structure.
5576      * @param[in] external_data A pointer to the external data to be used by the array buffer.
5577      * @param[in] length The length of the external data in bytes.
5578      * @param[in] finalizer A callback function to be called when the array buffer is finalized. Can be nullptr.
5579      * @param[in] hint A user-defined hint to be passed to the finalizer. Can be nullptr.
5580      * @param[out] result A pointer to store the created array buffer object.
5581      * @return Returns a status code of type `ani_status` indicating success or failure.
5582      */
5583     ani_status (*CreateArrayBufferExternal)(ani_env *env, void *external_data, size_t length, ani_finalizer finalizer,
5584                                             void *hint, ani_arraybuffer *result);
5585 
5586     /**
5587      * @brief Retrieves information about an array buffer.
5588      *
5589      * This function retrieves the data pointer and length of the specified array buffer.
5590      *
5591      * @param[in] env A pointer to the environment structure.
5592      * @param[in] arraybuffer The array buffer to query.
5593      * @param[out] data_result A pointer to store the data of the array buffer.
5594      * @param[out] length_result A pointer to store the length of the array buffer in bytes.
5595      * @return Returns a status code of type `ani_status` indicating success or failure.
5596      */
5597     ani_status (*ArrayBuffer_GetInfo)(ani_env *env, ani_arraybuffer arraybuffer, void **data_result,
5598                                       size_t *length_result);
5599 
5600     /**
5601      * @brief Creates a new Promise.
5602      *
5603      * This function creates a new promise and a resolver to manage it.
5604      *
5605      * @param[in] env A pointer to the environment structure.
5606      * @param[out] result_resolver A pointer to store the created resolver.
5607      * @param[out] result_promise A pointer to store the created promise.
5608      * @return Returns a status code of type `ani_status` indicating success or failure.
5609      */
5610     ani_status (*Promise_New)(ani_env *env, ani_resolver *result_resolver, ani_object *result_promise);
5611 
5612     /**
5613      * @brief Resolves a promise.
5614      *
5615      * This function resolves a promise by way of the resolver with which it is associated
5616      * and queues promise `then` callbacks.
5617      *
5618      * @param[in] env A pointer to the environment structure.
5619      * @param[in] resolver A resolver whose associated promise to resolve.
5620      * @param[in] resolution A reference with which to resolve the promise.
5621      * @return Returns a status code of type `ani_status` indicating success or failure.
5622      * The `resolver` is freed upon successful completion.
5623      */
5624     ani_status (*PromiseResolver_Resolve)(ani_env *env, ani_resolver resolver, ani_ref resolution);
5625 
5626     /**
5627      * @brief Rejects a promise.
5628      *
5629      * This function rejects a promise by way of the resolver with which it is associated
5630      * and queues promise `catch` callbacks.
5631      *
5632      * @param[in] env A pointer to the environment structure.
5633      * @param[in] resolver A resolver whose associated promise to resolve.
5634      * @param[in] rejection An error with which to reject the promise.
5635      * @return Returns a status code of type `ani_status` indicating success or failure.
5636      * The `resolver` is freed upon successful completion.
5637      */
5638     ani_status (*PromiseResolver_Reject)(ani_env *env, ani_resolver resolver, ani_error rejection);
5639 };
5640 
5641 // C++ API
5642 struct __ani_vm {
5643     const struct __ani_vm_api *c_api;
5644 
5645 #ifdef __cplusplus
DestroyVM__ani_vm5646     ani_status DestroyVM()
5647     {
5648         return c_api->DestroyVM(this);
5649     }
GetEnv__ani_vm5650     ani_status GetEnv(uint32_t version, ani_env **result)
5651     {
5652         return c_api->GetEnv(this, version, result);
5653     }
AttachCurrentThread__ani_vm5654     ani_status AttachCurrentThread(const ani_options *options, uint32_t version, ani_env **result)
5655     {
5656         return c_api->AttachCurrentThread(this, options, version, result);
5657     }
DetachCurrentThread__ani_vm5658     ani_status DetachCurrentThread()
5659     {
5660         return c_api->DetachCurrentThread(this);
5661     }
5662 #endif  // __cplusplus
5663 };
5664 
5665 struct __ani_env {
5666     const struct __ani_interaction_api *c_api;
5667 
5668 #ifdef __cplusplus
GetVersion__ani_env5669     ani_status GetVersion(uint32_t *result)
5670     {
5671         return c_api->GetVersion(this, result);
5672     }
GetVM__ani_env5673     ani_status GetVM(ani_vm **result)
5674     {
5675         return c_api->GetVM(this, result);
5676     }
Object_New__ani_env5677     ani_status Object_New(ani_class cls, ani_method method, ani_object *result, ...)
5678     {
5679         va_list args;
5680         va_start(args, result);
5681         ani_status status = c_api->Object_New_V(this, cls, method, result, args);
5682         va_end(args);
5683         return status;
5684     }
Object_New_A__ani_env5685     ani_status Object_New_A(ani_class cls, ani_method method, ani_object *result, const ani_value *args)
5686     {
5687         return c_api->Object_New_A(this, cls, method, result, args);
5688     }
Object_New_V__ani_env5689     ani_status Object_New_V(ani_class cls, ani_method method, ani_object *result, va_list args)
5690     {
5691         return c_api->Object_New_V(this, cls, method, result, args);
5692     }
Object_GetType__ani_env5693     ani_status Object_GetType(ani_object object, ani_type *result)
5694     {
5695         return c_api->Object_GetType(this, object, result);
5696     }
Object_InstanceOf__ani_env5697     ani_status Object_InstanceOf(ani_object object, ani_type type, ani_boolean *result)
5698     {
5699         return c_api->Object_InstanceOf(this, object, type, result);
5700     }
Type_GetSuperClass__ani_env5701     ani_status Type_GetSuperClass(ani_type type, ani_class *result)
5702     {
5703         return c_api->Type_GetSuperClass(this, type, result);
5704     }
Type_IsAssignableFrom__ani_env5705     ani_status Type_IsAssignableFrom(ani_type from_type, ani_type to_type, ani_boolean *result)
5706     {
5707         return c_api->Type_IsAssignableFrom(this, from_type, to_type, result);
5708     }
FindModule__ani_env5709     ani_status FindModule(const char *module_descriptor, ani_module *result)
5710     {
5711         return c_api->FindModule(this, module_descriptor, result);
5712     }
FindNamespace__ani_env5713     ani_status FindNamespace(const char *namespace_descriptor, ani_namespace *result)
5714     {
5715         return c_api->FindNamespace(this, namespace_descriptor, result);
5716     }
FindClass__ani_env5717     ani_status FindClass(const char *class_descriptor, ani_class *result)
5718     {
5719         return c_api->FindClass(this, class_descriptor, result);
5720     }
FindEnum__ani_env5721     ani_status FindEnum(const char *enum_descriptor, ani_enum *result)
5722     {
5723         return c_api->FindEnum(this, enum_descriptor, result);
5724     }
Module_FindNamespace__ani_env5725     ani_status Module_FindNamespace(ani_module module, const char *namespace_descriptor, ani_namespace *result)
5726     {
5727         return c_api->Module_FindNamespace(this, module, namespace_descriptor, result);
5728     }
Module_FindClass__ani_env5729     ani_status Module_FindClass(ani_module module, const char *class_descriptor, ani_class *result)
5730     {
5731         return c_api->Module_FindClass(this, module, class_descriptor, result);
5732     }
Module_FindEnum__ani_env5733     ani_status Module_FindEnum(ani_module module, const char *enum_descriptor, ani_enum *result)
5734     {
5735         return c_api->Module_FindEnum(this, module, enum_descriptor, result);
5736     }
Module_FindFunction__ani_env5737     ani_status Module_FindFunction(ani_module module, const char *name, const char *signature, ani_function *result)
5738     {
5739         return c_api->Module_FindFunction(this, module, name, signature, result);
5740     }
Module_FindVariable__ani_env5741     ani_status Module_FindVariable(ani_module module, const char *name, ani_variable *result)
5742     {
5743         return c_api->Module_FindVariable(this, module, name, result);
5744     }
Namespace_FindNamespace__ani_env5745     ani_status Namespace_FindNamespace(ani_namespace ns, const char *namespace_descriptor, ani_namespace *result)
5746     {
5747         return c_api->Namespace_FindNamespace(this, ns, namespace_descriptor, result);
5748     }
Namespace_FindClass__ani_env5749     ani_status Namespace_FindClass(ani_namespace ns, const char *class_descriptor, ani_class *result)
5750     {
5751         return c_api->Namespace_FindClass(this, ns, class_descriptor, result);
5752     }
Namespace_FindEnum__ani_env5753     ani_status Namespace_FindEnum(ani_namespace ns, const char *enum_descriptor, ani_enum *result)
5754     {
5755         return c_api->Namespace_FindEnum(this, ns, enum_descriptor, result);
5756     }
Namespace_FindFunction__ani_env5757     ani_status Namespace_FindFunction(ani_namespace ns, const char *name, const char *signature, ani_function *result)
5758     {
5759         return c_api->Namespace_FindFunction(this, ns, name, signature, result);
5760     }
Namespace_FindVariable__ani_env5761     ani_status Namespace_FindVariable(ani_namespace ns, const char *name, ani_variable *result)
5762     {
5763         return c_api->Namespace_FindVariable(this, ns, name, result);
5764     }
Module_BindNativeFunctions__ani_env5765     ani_status Module_BindNativeFunctions(ani_module module, const ani_native_function *functions,
5766                                           ani_size nr_functions)
5767     {
5768         return c_api->Module_BindNativeFunctions(this, module, functions, nr_functions);
5769     }
Namespace_BindNativeFunctions__ani_env5770     ani_status Namespace_BindNativeFunctions(ani_namespace ns, const ani_native_function *functions,
5771                                              ani_size nr_functions)
5772     {
5773         return c_api->Namespace_BindNativeFunctions(this, ns, functions, nr_functions);
5774     }
Class_BindNativeMethods__ani_env5775     ani_status Class_BindNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods)
5776     {
5777         return c_api->Class_BindNativeMethods(this, cls, methods, nr_methods);
5778     }
Reference_Delete__ani_env5779     ani_status Reference_Delete(ani_ref ref)
5780     {
5781         return c_api->Reference_Delete(this, ref);
5782     }
EnsureEnoughReferences__ani_env5783     ani_status EnsureEnoughReferences(ani_size nr_refs)
5784     {
5785         return c_api->EnsureEnoughReferences(this, nr_refs);
5786     }
CreateLocalScope__ani_env5787     ani_status CreateLocalScope(ani_size nr_refs)
5788     {
5789         return c_api->CreateLocalScope(this, nr_refs);
5790     }
DestroyLocalScope__ani_env5791     ani_status DestroyLocalScope()
5792     {
5793         return c_api->DestroyLocalScope(this);
5794     }
CreateEscapeLocalScope__ani_env5795     ani_status CreateEscapeLocalScope(ani_size nr_refs)
5796     {
5797         return c_api->CreateEscapeLocalScope(this, nr_refs);
5798     }
DestroyEscapeLocalScope__ani_env5799     ani_status DestroyEscapeLocalScope(ani_ref ref, ani_ref *result)
5800     {
5801         return c_api->DestroyEscapeLocalScope(this, ref, result);
5802     }
ThrowError__ani_env5803     ani_status ThrowError(ani_error err)
5804     {
5805         return c_api->ThrowError(this, err);
5806     }
ExistUnhandledError__ani_env5807     ani_status ExistUnhandledError(ani_boolean *result)
5808     {
5809         return c_api->ExistUnhandledError(this, result);
5810     }
GetUnhandledError__ani_env5811     ani_status GetUnhandledError(ani_error *result)
5812     {
5813         return c_api->GetUnhandledError(this, result);
5814     }
ResetError__ani_env5815     ani_status ResetError()
5816     {
5817         return c_api->ResetError(this);
5818     }
DescribeError__ani_env5819     ani_status DescribeError()
5820     {
5821         return c_api->DescribeError(this);
5822     }
Abort__ani_env5823     ani_status Abort(const char *message)
5824     {
5825         return c_api->Abort(this, message);
5826     }
GetNull__ani_env5827     ani_status GetNull(ani_ref *result)
5828     {
5829         return c_api->GetNull(this, result);
5830     }
GetUndefined__ani_env5831     ani_status GetUndefined(ani_ref *result)
5832     {
5833         return c_api->GetUndefined(this, result);
5834     }
Reference_IsNull__ani_env5835     ani_status Reference_IsNull(ani_ref ref, ani_boolean *result)
5836     {
5837         return c_api->Reference_IsNull(this, ref, result);
5838     }
Reference_IsUndefined__ani_env5839     ani_status Reference_IsUndefined(ani_ref ref, ani_boolean *result)
5840     {
5841         return c_api->Reference_IsUndefined(this, ref, result);
5842     }
Reference_IsNullishValue__ani_env5843     ani_status Reference_IsNullishValue(ani_ref ref, ani_boolean *result)
5844     {
5845         return c_api->Reference_IsNullishValue(this, ref, result);
5846     }
Reference_Equals__ani_env5847     ani_status Reference_Equals(ani_ref ref0, ani_ref ref1, ani_boolean *result)
5848     {
5849         return c_api->Reference_Equals(this, ref0, ref1, result);
5850     }
Reference_StrictEquals__ani_env5851     ani_status Reference_StrictEquals(ani_ref ref0, ani_ref ref1, ani_boolean *result)
5852     {
5853         return c_api->Reference_StrictEquals(this, ref0, ref1, result);
5854     }
String_NewUTF16__ani_env5855     ani_status String_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_string *result)
5856     {
5857         return c_api->String_NewUTF16(this, utf16_string, utf16_size, result);
5858     }
String_GetUTF16Size__ani_env5859     ani_status String_GetUTF16Size(ani_string string, ani_size *result)
5860     {
5861         return c_api->String_GetUTF16Size(this, string, result);
5862     }
String_GetUTF16__ani_env5863     ani_status String_GetUTF16(ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result)
5864     {
5865         return c_api->String_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result);
5866     }
String_GetUTF16SubString__ani_env5867     ani_status String_GetUTF16SubString(ani_string string, ani_size substr_offset, ani_size substr_size,
5868                                         uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result)
5869     {
5870         return c_api->String_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer,
5871                                                utf16_buffer_size, result);
5872     }
String_NewUTF8__ani_env5873     ani_status String_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_string *result)
5874     {
5875         return c_api->String_NewUTF8(this, utf8_string, utf8_size, result);
5876     }
String_GetUTF8Size__ani_env5877     ani_status String_GetUTF8Size(ani_string string, ani_size *result)
5878     {
5879         return c_api->String_GetUTF8Size(this, string, result);
5880     }
String_GetUTF8__ani_env5881     ani_status String_GetUTF8(ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result)
5882     {
5883         return c_api->String_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result);
5884     }
String_GetUTF8SubString__ani_env5885     ani_status String_GetUTF8SubString(ani_string string, ani_size substr_offset, ani_size substr_size,
5886                                        char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result)
5887     {
5888         return c_api->String_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer, utf8_buffer_size,
5889                                               result);
5890     }
Array_GetLength__ani_env5891     ani_status Array_GetLength(ani_array array, ani_size *result)
5892     {
5893         return c_api->Array_GetLength(this, array, result);
5894     }
Array_New_Boolean__ani_env5895     ani_status Array_New_Boolean(ani_size length, ani_array_boolean *result)
5896     {
5897         return c_api->Array_New_Boolean(this, length, result);
5898     }
Array_New_Char__ani_env5899     ani_status Array_New_Char(ani_size length, ani_array_char *result)
5900     {
5901         return c_api->Array_New_Char(this, length, result);
5902     }
Array_New_Byte__ani_env5903     ani_status Array_New_Byte(ani_size length, ani_array_byte *result)
5904     {
5905         return c_api->Array_New_Byte(this, length, result);
5906     }
Array_New_Short__ani_env5907     ani_status Array_New_Short(ani_size length, ani_array_short *result)
5908     {
5909         return c_api->Array_New_Short(this, length, result);
5910     }
Array_New_Int__ani_env5911     ani_status Array_New_Int(ani_size length, ani_array_int *result)
5912     {
5913         return c_api->Array_New_Int(this, length, result);
5914     }
Array_New_Long__ani_env5915     ani_status Array_New_Long(ani_size length, ani_array_long *result)
5916     {
5917         return c_api->Array_New_Long(this, length, result);
5918     }
Array_New_Float__ani_env5919     ani_status Array_New_Float(ani_size length, ani_array_float *result)
5920     {
5921         return c_api->Array_New_Float(this, length, result);
5922     }
Array_New_Double__ani_env5923     ani_status Array_New_Double(ani_size length, ani_array_double *result)
5924     {
5925         return c_api->Array_New_Double(this, length, result);
5926     }
Array_GetRegion_Boolean__ani_env5927     ani_status Array_GetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length,
5928                                        ani_boolean *native_buffer)
5929     {
5930         return c_api->Array_GetRegion_Boolean(this, array, offset, length, native_buffer);
5931     }
Array_GetRegion_Char__ani_env5932     ani_status Array_GetRegion_Char(ani_array_char array, ani_size offset, ani_size length, ani_char *native_buffer)
5933     {
5934         return c_api->Array_GetRegion_Char(this, array, offset, length, native_buffer);
5935     }
Array_GetRegion_Byte__ani_env5936     ani_status Array_GetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length, ani_byte *native_buffer)
5937     {
5938         return c_api->Array_GetRegion_Byte(this, array, offset, length, native_buffer);
5939     }
Array_GetRegion_Short__ani_env5940     ani_status Array_GetRegion_Short(ani_array_short array, ani_size offset, ani_size length, ani_short *native_buffer)
5941     {
5942         return c_api->Array_GetRegion_Short(this, array, offset, length, native_buffer);
5943     }
Array_GetRegion_Int__ani_env5944     ani_status Array_GetRegion_Int(ani_array_int array, ani_size offset, ani_size length, ani_int *native_buffer)
5945     {
5946         return c_api->Array_GetRegion_Int(this, array, offset, length, native_buffer);
5947     }
Array_GetRegion_Long__ani_env5948     ani_status Array_GetRegion_Long(ani_array_long array, ani_size offset, ani_size length, ani_long *native_buffer)
5949     {
5950         return c_api->Array_GetRegion_Long(this, array, offset, length, native_buffer);
5951     }
Array_GetRegion_Float__ani_env5952     ani_status Array_GetRegion_Float(ani_array_float array, ani_size offset, ani_size length, ani_float *native_buffer)
5953     {
5954         return c_api->Array_GetRegion_Float(this, array, offset, length, native_buffer);
5955     }
Array_GetRegion_Double__ani_env5956     ani_status Array_GetRegion_Double(ani_array_double array, ani_size offset, ani_size length,
5957                                       ani_double *native_buffer)
5958     {
5959         return c_api->Array_GetRegion_Double(this, array, offset, length, native_buffer);
5960     }
Array_SetRegion_Boolean__ani_env5961     ani_status Array_SetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length,
5962                                        const ani_boolean *native_buffer)
5963     {
5964         return c_api->Array_SetRegion_Boolean(this, array, offset, length, native_buffer);
5965     }
Array_SetRegion_Char__ani_env5966     ani_status Array_SetRegion_Char(ani_array_char array, ani_size offset, ani_size length,
5967                                     const ani_char *native_buffer)
5968     {
5969         return c_api->Array_SetRegion_Char(this, array, offset, length, native_buffer);
5970     }
Array_SetRegion_Byte__ani_env5971     ani_status Array_SetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length,
5972                                     const ani_byte *native_buffer)
5973     {
5974         return c_api->Array_SetRegion_Byte(this, array, offset, length, native_buffer);
5975     }
Array_SetRegion_Short__ani_env5976     ani_status Array_SetRegion_Short(ani_array_short array, ani_size offset, ani_size length,
5977                                      const ani_short *native_buffer)
5978     {
5979         return c_api->Array_SetRegion_Short(this, array, offset, length, native_buffer);
5980     }
Array_SetRegion_Int__ani_env5981     ani_status Array_SetRegion_Int(ani_array_int array, ani_size offset, ani_size length, const ani_int *native_buffer)
5982     {
5983         return c_api->Array_SetRegion_Int(this, array, offset, length, native_buffer);
5984     }
Array_SetRegion_Long__ani_env5985     ani_status Array_SetRegion_Long(ani_array_long array, ani_size offset, ani_size length,
5986                                     const ani_long *native_buffer)
5987     {
5988         return c_api->Array_SetRegion_Long(this, array, offset, length, native_buffer);
5989     }
Array_SetRegion_Float__ani_env5990     ani_status Array_SetRegion_Float(ani_array_float array, ani_size offset, ani_size length,
5991                                      const ani_float *native_buffer)
5992     {
5993         return c_api->Array_SetRegion_Float(this, array, offset, length, native_buffer);
5994     }
Array_SetRegion_Double__ani_env5995     ani_status Array_SetRegion_Double(ani_array_double array, ani_size offset, ani_size length,
5996                                       const ani_double *native_buffer)
5997     {
5998         return c_api->Array_SetRegion_Double(this, array, offset, length, native_buffer);
5999     }
Array_New_Ref__ani_env6000     ani_status Array_New_Ref(ani_type type, ani_size length, ani_ref initial_element, ani_array_ref *result)
6001     {
6002         return c_api->Array_New_Ref(this, type, length, initial_element, result);
6003     }
Array_Set_Ref__ani_env6004     ani_status Array_Set_Ref(ani_array_ref array, ani_size index, ani_ref ref)
6005     {
6006         return c_api->Array_Set_Ref(this, array, index, ref);
6007     }
Array_Get_Ref__ani_env6008     ani_status Array_Get_Ref(ani_array_ref array, ani_size index, ani_ref *result)
6009     {
6010         return c_api->Array_Get_Ref(this, array, index, result);
6011     }
Enum_GetEnumItemByName__ani_env6012     ani_status Enum_GetEnumItemByName(ani_enum enm, const char *name, ani_enum_item *result)
6013     {
6014         return c_api->Enum_GetEnumItemByName(this, enm, name, result);
6015     }
Enum_GetEnumItemByIndex__ani_env6016     ani_status Enum_GetEnumItemByIndex(ani_enum enm, ani_size index, ani_enum_item *result)
6017     {
6018         return c_api->Enum_GetEnumItemByIndex(this, enm, index, result);
6019     }
EnumItem_GetEnum__ani_env6020     ani_status EnumItem_GetEnum(ani_enum_item enum_item, ani_enum *result)
6021     {
6022         return c_api->EnumItem_GetEnum(this, enum_item, result);
6023     }
EnumItem_GetValue_Int__ani_env6024     ani_status EnumItem_GetValue_Int(ani_enum_item enum_item, ani_int *result)
6025     {
6026         return c_api->EnumItem_GetValue_Int(this, enum_item, result);
6027     }
EnumItem_GetValue_String__ani_env6028     ani_status EnumItem_GetValue_String(ani_enum_item enum_item, ani_string *result)
6029     {
6030         return c_api->EnumItem_GetValue_String(this, enum_item, result);
6031     }
EnumItem_GetName__ani_env6032     ani_status EnumItem_GetName(ani_enum_item enum_item, ani_string *result)
6033     {
6034         return c_api->EnumItem_GetName(this, enum_item, result);
6035     }
EnumItem_GetIndex__ani_env6036     ani_status EnumItem_GetIndex(ani_enum_item enum_item, ani_size *result)
6037     {
6038         return c_api->EnumItem_GetIndex(this, enum_item, result);
6039     }
FunctionalObject_Call__ani_env6040     ani_status FunctionalObject_Call(ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result)
6041     {
6042         return c_api->FunctionalObject_Call(this, fn, argc, argv, result);
6043     }
Variable_SetValue_Boolean__ani_env6044     ani_status Variable_SetValue_Boolean(ani_variable variable, ani_boolean value)
6045     {
6046         return c_api->Variable_SetValue_Boolean(this, variable, value);
6047     }
Variable_SetValue_Char__ani_env6048     ani_status Variable_SetValue_Char(ani_variable variable, ani_char value)
6049     {
6050         return c_api->Variable_SetValue_Char(this, variable, value);
6051     }
Variable_SetValue_Byte__ani_env6052     ani_status Variable_SetValue_Byte(ani_variable variable, ani_byte value)
6053     {
6054         return c_api->Variable_SetValue_Byte(this, variable, value);
6055     }
Variable_SetValue_Short__ani_env6056     ani_status Variable_SetValue_Short(ani_variable variable, ani_short value)
6057     {
6058         return c_api->Variable_SetValue_Short(this, variable, value);
6059     }
Variable_SetValue_Int__ani_env6060     ani_status Variable_SetValue_Int(ani_variable variable, ani_int value)
6061     {
6062         return c_api->Variable_SetValue_Int(this, variable, value);
6063     }
Variable_SetValue_Long__ani_env6064     ani_status Variable_SetValue_Long(ani_variable variable, ani_long value)
6065     {
6066         return c_api->Variable_SetValue_Long(this, variable, value);
6067     }
Variable_SetValue_Float__ani_env6068     ani_status Variable_SetValue_Float(ani_variable variable, ani_float value)
6069     {
6070         return c_api->Variable_SetValue_Float(this, variable, value);
6071     }
Variable_SetValue_Double__ani_env6072     ani_status Variable_SetValue_Double(ani_variable variable, ani_double value)
6073     {
6074         return c_api->Variable_SetValue_Double(this, variable, value);
6075     }
Variable_SetValue_Ref__ani_env6076     ani_status Variable_SetValue_Ref(ani_variable variable, ani_ref value)
6077     {
6078         return c_api->Variable_SetValue_Ref(this, variable, value);
6079     }
Variable_GetValue_Boolean__ani_env6080     ani_status Variable_GetValue_Boolean(ani_variable variable, ani_boolean *result)
6081     {
6082         return c_api->Variable_GetValue_Boolean(this, variable, result);
6083     }
Variable_GetValue_Char__ani_env6084     ani_status Variable_GetValue_Char(ani_variable variable, ani_char *result)
6085     {
6086         return c_api->Variable_GetValue_Char(this, variable, result);
6087     }
Variable_GetValue_Byte__ani_env6088     ani_status Variable_GetValue_Byte(ani_variable variable, ani_byte *result)
6089     {
6090         return c_api->Variable_GetValue_Byte(this, variable, result);
6091     }
Variable_GetValue_Short__ani_env6092     ani_status Variable_GetValue_Short(ani_variable variable, ani_short *result)
6093     {
6094         return c_api->Variable_GetValue_Short(this, variable, result);
6095     }
Variable_GetValue_Int__ani_env6096     ani_status Variable_GetValue_Int(ani_variable variable, ani_int *result)
6097     {
6098         return c_api->Variable_GetValue_Int(this, variable, result);
6099     }
Variable_GetValue_Long__ani_env6100     ani_status Variable_GetValue_Long(ani_variable variable, ani_long *result)
6101     {
6102         return c_api->Variable_GetValue_Long(this, variable, result);
6103     }
Variable_GetValue_Float__ani_env6104     ani_status Variable_GetValue_Float(ani_variable variable, ani_float *result)
6105     {
6106         return c_api->Variable_GetValue_Float(this, variable, result);
6107     }
Variable_GetValue_Double__ani_env6108     ani_status Variable_GetValue_Double(ani_variable variable, ani_double *result)
6109     {
6110         return c_api->Variable_GetValue_Double(this, variable, result);
6111     }
Variable_GetValue_Ref__ani_env6112     ani_status Variable_GetValue_Ref(ani_variable variable, ani_ref *result)
6113     {
6114         return c_api->Variable_GetValue_Ref(this, variable, result);
6115     }
Function_Call_Boolean__ani_env6116     ani_status Function_Call_Boolean(ani_function fn, ani_boolean *result, ...)
6117     {
6118         va_list args;
6119         va_start(args, result);
6120         ani_status status = c_api->Function_Call_Boolean_V(this, fn, result, args);
6121         va_end(args);
6122         return status;
6123     }
Function_Call_Boolean_A__ani_env6124     ani_status Function_Call_Boolean_A(ani_function fn, ani_boolean *result, const ani_value *args)
6125     {
6126         return c_api->Function_Call_Boolean_A(this, fn, result, args);
6127     }
Function_Call_Boolean_V__ani_env6128     ani_status Function_Call_Boolean_V(ani_function fn, ani_boolean *result, va_list args)
6129     {
6130         return c_api->Function_Call_Boolean_V(this, fn, result, args);
6131     }
Function_Call_Char__ani_env6132     ani_status Function_Call_Char(ani_function fn, ani_char *result, ...)
6133     {
6134         va_list args;
6135         va_start(args, result);
6136         ani_status status = c_api->Function_Call_Char_V(this, fn, result, args);
6137         va_end(args);
6138         return status;
6139     }
Function_Call_Char_A__ani_env6140     ani_status Function_Call_Char_A(ani_function fn, ani_char *result, const ani_value *args)
6141     {
6142         return c_api->Function_Call_Char_A(this, fn, result, args);
6143     }
Function_Call_Char_V__ani_env6144     ani_status Function_Call_Char_V(ani_function fn, ani_char *result, va_list args)
6145     {
6146         return c_api->Function_Call_Char_V(this, fn, result, args);
6147     }
Function_Call_Byte__ani_env6148     ani_status Function_Call_Byte(ani_function fn, ani_byte *result, ...)
6149     {
6150         va_list args;
6151         va_start(args, result);
6152         ani_status status = c_api->Function_Call_Byte_V(this, fn, result, args);
6153         va_end(args);
6154         return status;
6155     }
Function_Call_Byte_A__ani_env6156     ani_status Function_Call_Byte_A(ani_function fn, ani_byte *result, const ani_value *args)
6157     {
6158         return c_api->Function_Call_Byte_A(this, fn, result, args);
6159     }
Function_Call_Byte_V__ani_env6160     ani_status Function_Call_Byte_V(ani_function fn, ani_byte *result, va_list args)
6161     {
6162         return c_api->Function_Call_Byte_V(this, fn, result, args);
6163     }
Function_Call_Short__ani_env6164     ani_status Function_Call_Short(ani_function fn, ani_short *result, ...)
6165     {
6166         va_list args;
6167         va_start(args, result);
6168         ani_status status = c_api->Function_Call_Short_V(this, fn, result, args);
6169         va_end(args);
6170         return status;
6171     }
Function_Call_Short_A__ani_env6172     ani_status Function_Call_Short_A(ani_function fn, ani_short *result, const ani_value *args)
6173     {
6174         return c_api->Function_Call_Short_A(this, fn, result, args);
6175     }
Function_Call_Short_V__ani_env6176     ani_status Function_Call_Short_V(ani_function fn, ani_short *result, va_list args)
6177     {
6178         return c_api->Function_Call_Short_V(this, fn, result, args);
6179     }
Function_Call_Int__ani_env6180     ani_status Function_Call_Int(ani_function fn, ani_int *result, ...)
6181     {
6182         va_list args;
6183         va_start(args, result);
6184         ani_status status = c_api->Function_Call_Int_V(this, fn, result, args);
6185         va_end(args);
6186         return status;
6187     }
Function_Call_Int_A__ani_env6188     ani_status Function_Call_Int_A(ani_function fn, ani_int *result, const ani_value *args)
6189     {
6190         return c_api->Function_Call_Int_A(this, fn, result, args);
6191     }
Function_Call_Int_V__ani_env6192     ani_status Function_Call_Int_V(ani_function fn, ani_int *result, va_list args)
6193     {
6194         return c_api->Function_Call_Int_V(this, fn, result, args);
6195     }
Function_Call_Long__ani_env6196     ani_status Function_Call_Long(ani_function fn, ani_long *result, ...)
6197     {
6198         va_list args;
6199         va_start(args, result);
6200         ani_status status = c_api->Function_Call_Long_V(this, fn, result, args);
6201         va_end(args);
6202         return status;
6203     }
Function_Call_Long_A__ani_env6204     ani_status Function_Call_Long_A(ani_function fn, ani_long *result, const ani_value *args)
6205     {
6206         return c_api->Function_Call_Long_A(this, fn, result, args);
6207     }
Function_Call_Long_V__ani_env6208     ani_status Function_Call_Long_V(ani_function fn, ani_long *result, va_list args)
6209     {
6210         return c_api->Function_Call_Long_V(this, fn, result, args);
6211     }
Function_Call_Float__ani_env6212     ani_status Function_Call_Float(ani_function fn, ani_float *result, ...)
6213     {
6214         va_list args;
6215         va_start(args, result);
6216         ani_status status = c_api->Function_Call_Float_V(this, fn, result, args);
6217         va_end(args);
6218         return status;
6219     }
Function_Call_Float_A__ani_env6220     ani_status Function_Call_Float_A(ani_function fn, ani_float *result, const ani_value *args)
6221     {
6222         return c_api->Function_Call_Float_A(this, fn, result, args);
6223     }
Function_Call_Float_V__ani_env6224     ani_status Function_Call_Float_V(ani_function fn, ani_float *result, va_list args)
6225     {
6226         return c_api->Function_Call_Float_V(this, fn, result, args);
6227     }
Function_Call_Double__ani_env6228     ani_status Function_Call_Double(ani_function fn, ani_double *result, ...)
6229     {
6230         va_list args;
6231         va_start(args, result);
6232         ani_status status = c_api->Function_Call_Double_V(this, fn, result, args);
6233         va_end(args);
6234         return status;
6235     }
Function_Call_Double_A__ani_env6236     ani_status Function_Call_Double_A(ani_function fn, ani_double *result, const ani_value *args)
6237     {
6238         return c_api->Function_Call_Double_A(this, fn, result, args);
6239     }
Function_Call_Double_V__ani_env6240     ani_status Function_Call_Double_V(ani_function fn, ani_double *result, va_list args)
6241     {
6242         return c_api->Function_Call_Double_V(this, fn, result, args);
6243     }
Function_Call_Ref__ani_env6244     ani_status Function_Call_Ref(ani_function fn, ani_ref *result, ...)
6245     {
6246         va_list args;
6247         va_start(args, result);
6248         ani_status status = c_api->Function_Call_Ref_V(this, fn, result, args);
6249         va_end(args);
6250         return status;
6251     }
Function_Call_Ref_A__ani_env6252     ani_status Function_Call_Ref_A(ani_function fn, ani_ref *result, const ani_value *args)
6253     {
6254         return c_api->Function_Call_Ref_A(this, fn, result, args);
6255     }
Function_Call_Ref_V__ani_env6256     ani_status Function_Call_Ref_V(ani_function fn, ani_ref *result, va_list args)
6257     {
6258         return c_api->Function_Call_Ref_V(this, fn, result, args);
6259     }
Function_Call_Void__ani_env6260     ani_status Function_Call_Void(ani_function fn, ...)
6261     {
6262         va_list args;
6263         va_start(args, fn);
6264         ani_status status = c_api->Function_Call_Void_V(this, fn, args);
6265         va_end(args);
6266         return status;
6267     }
Function_Call_Void_A__ani_env6268     ani_status Function_Call_Void_A(ani_function fn, const ani_value *args)
6269     {
6270         return c_api->Function_Call_Void_A(this, fn, args);
6271     }
Function_Call_Void_V__ani_env6272     ani_status Function_Call_Void_V(ani_function fn, va_list args)
6273     {
6274         return c_api->Function_Call_Void_V(this, fn, args);
6275     }
Class_FindField__ani_env6276     ani_status Class_FindField(ani_class cls, const char *name, ani_field *result)
6277     {
6278         return c_api->Class_FindField(this, cls, name, result);
6279     }
Class_FindStaticField__ani_env6280     ani_status Class_FindStaticField(ani_class cls, const char *name, ani_static_field *result)
6281     {
6282         return c_api->Class_FindStaticField(this, cls, name, result);
6283     }
Class_FindMethod__ani_env6284     ani_status Class_FindMethod(ani_class cls, const char *name, const char *signature, ani_method *result)
6285     {
6286         return c_api->Class_FindMethod(this, cls, name, signature, result);
6287     }
Class_FindStaticMethod__ani_env6288     ani_status Class_FindStaticMethod(ani_class cls, const char *name, const char *signature, ani_static_method *result)
6289     {
6290         return c_api->Class_FindStaticMethod(this, cls, name, signature, result);
6291     }
Class_FindSetter__ani_env6292     ani_status Class_FindSetter(ani_class cls, const char *name, ani_method *result)
6293     {
6294         return c_api->Class_FindSetter(this, cls, name, result);
6295     }
Class_FindGetter__ani_env6296     ani_status Class_FindGetter(ani_class cls, const char *name, ani_method *result)
6297     {
6298         return c_api->Class_FindGetter(this, cls, name, result);
6299     }
Class_FindIndexableGetter__ani_env6300     ani_status Class_FindIndexableGetter(ani_class cls, const char *signature, ani_method *result)
6301     {
6302         return c_api->Class_FindIndexableGetter(this, cls, signature, result);
6303     }
Class_FindIndexableSetter__ani_env6304     ani_status Class_FindIndexableSetter(ani_class cls, const char *signature, ani_method *result)
6305     {
6306         return c_api->Class_FindIndexableSetter(this, cls, signature, result);
6307     }
Class_FindIterator__ani_env6308     ani_status Class_FindIterator(ani_class cls, ani_method *result)
6309     {
6310         return c_api->Class_FindIterator(this, cls, result);
6311     }
Class_GetStaticField_Boolean__ani_env6312     ani_status Class_GetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean *result)
6313     {
6314         return c_api->Class_GetStaticField_Boolean(this, cls, field, result);
6315     }
Class_GetStaticField_Char__ani_env6316     ani_status Class_GetStaticField_Char(ani_class cls, ani_static_field field, ani_char *result)
6317     {
6318         return c_api->Class_GetStaticField_Char(this, cls, field, result);
6319     }
Class_GetStaticField_Byte__ani_env6320     ani_status Class_GetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte *result)
6321     {
6322         return c_api->Class_GetStaticField_Byte(this, cls, field, result);
6323     }
Class_GetStaticField_Short__ani_env6324     ani_status Class_GetStaticField_Short(ani_class cls, ani_static_field field, ani_short *result)
6325     {
6326         return c_api->Class_GetStaticField_Short(this, cls, field, result);
6327     }
Class_GetStaticField_Int__ani_env6328     ani_status Class_GetStaticField_Int(ani_class cls, ani_static_field field, ani_int *result)
6329     {
6330         return c_api->Class_GetStaticField_Int(this, cls, field, result);
6331     }
Class_GetStaticField_Long__ani_env6332     ani_status Class_GetStaticField_Long(ani_class cls, ani_static_field field, ani_long *result)
6333     {
6334         return c_api->Class_GetStaticField_Long(this, cls, field, result);
6335     }
Class_GetStaticField_Float__ani_env6336     ani_status Class_GetStaticField_Float(ani_class cls, ani_static_field field, ani_float *result)
6337     {
6338         return c_api->Class_GetStaticField_Float(this, cls, field, result);
6339     }
Class_GetStaticField_Double__ani_env6340     ani_status Class_GetStaticField_Double(ani_class cls, ani_static_field field, ani_double *result)
6341     {
6342         return c_api->Class_GetStaticField_Double(this, cls, field, result);
6343     }
Class_GetStaticField_Ref__ani_env6344     ani_status Class_GetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref *result)
6345     {
6346         return c_api->Class_GetStaticField_Ref(this, cls, field, result);
6347     }
Class_SetStaticField_Boolean__ani_env6348     ani_status Class_SetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean value)
6349     {
6350         return c_api->Class_SetStaticField_Boolean(this, cls, field, value);
6351     }
Class_SetStaticField_Char__ani_env6352     ani_status Class_SetStaticField_Char(ani_class cls, ani_static_field field, ani_char value)
6353     {
6354         return c_api->Class_SetStaticField_Char(this, cls, field, value);
6355     }
Class_SetStaticField_Byte__ani_env6356     ani_status Class_SetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte value)
6357     {
6358         return c_api->Class_SetStaticField_Byte(this, cls, field, value);
6359     }
Class_SetStaticField_Short__ani_env6360     ani_status Class_SetStaticField_Short(ani_class cls, ani_static_field field, ani_short value)
6361     {
6362         return c_api->Class_SetStaticField_Short(this, cls, field, value);
6363     }
Class_SetStaticField_Int__ani_env6364     ani_status Class_SetStaticField_Int(ani_class cls, ani_static_field field, ani_int value)
6365     {
6366         return c_api->Class_SetStaticField_Int(this, cls, field, value);
6367     }
Class_SetStaticField_Long__ani_env6368     ani_status Class_SetStaticField_Long(ani_class cls, ani_static_field field, ani_long value)
6369     {
6370         return c_api->Class_SetStaticField_Long(this, cls, field, value);
6371     }
Class_SetStaticField_Float__ani_env6372     ani_status Class_SetStaticField_Float(ani_class cls, ani_static_field field, ani_float value)
6373     {
6374         return c_api->Class_SetStaticField_Float(this, cls, field, value);
6375     }
Class_SetStaticField_Double__ani_env6376     ani_status Class_SetStaticField_Double(ani_class cls, ani_static_field field, ani_double value)
6377     {
6378         return c_api->Class_SetStaticField_Double(this, cls, field, value);
6379     }
Class_SetStaticField_Ref__ani_env6380     ani_status Class_SetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref value)
6381     {
6382         return c_api->Class_SetStaticField_Ref(this, cls, field, value);
6383     }
Class_GetStaticFieldByName_Boolean__ani_env6384     ani_status Class_GetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean *result)
6385     {
6386         return c_api->Class_GetStaticFieldByName_Boolean(this, cls, name, result);
6387     }
Class_GetStaticFieldByName_Char__ani_env6388     ani_status Class_GetStaticFieldByName_Char(ani_class cls, const char *name, ani_char *result)
6389     {
6390         return c_api->Class_GetStaticFieldByName_Char(this, cls, name, result);
6391     }
Class_GetStaticFieldByName_Byte__ani_env6392     ani_status Class_GetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte *result)
6393     {
6394         return c_api->Class_GetStaticFieldByName_Byte(this, cls, name, result);
6395     }
Class_GetStaticFieldByName_Short__ani_env6396     ani_status Class_GetStaticFieldByName_Short(ani_class cls, const char *name, ani_short *result)
6397     {
6398         return c_api->Class_GetStaticFieldByName_Short(this, cls, name, result);
6399     }
Class_GetStaticFieldByName_Int__ani_env6400     ani_status Class_GetStaticFieldByName_Int(ani_class cls, const char *name, ani_int *result)
6401     {
6402         return c_api->Class_GetStaticFieldByName_Int(this, cls, name, result);
6403     }
Class_GetStaticFieldByName_Long__ani_env6404     ani_status Class_GetStaticFieldByName_Long(ani_class cls, const char *name, ani_long *result)
6405     {
6406         return c_api->Class_GetStaticFieldByName_Long(this, cls, name, result);
6407     }
Class_GetStaticFieldByName_Float__ani_env6408     ani_status Class_GetStaticFieldByName_Float(ani_class cls, const char *name, ani_float *result)
6409     {
6410         return c_api->Class_GetStaticFieldByName_Float(this, cls, name, result);
6411     }
Class_GetStaticFieldByName_Double__ani_env6412     ani_status Class_GetStaticFieldByName_Double(ani_class cls, const char *name, ani_double *result)
6413     {
6414         return c_api->Class_GetStaticFieldByName_Double(this, cls, name, result);
6415     }
Class_GetStaticFieldByName_Ref__ani_env6416     ani_status Class_GetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref *result)
6417     {
6418         return c_api->Class_GetStaticFieldByName_Ref(this, cls, name, result);
6419     }
Class_SetStaticFieldByName_Boolean__ani_env6420     ani_status Class_SetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean value)
6421     {
6422         return c_api->Class_SetStaticFieldByName_Boolean(this, cls, name, value);
6423     }
Class_SetStaticFieldByName_Char__ani_env6424     ani_status Class_SetStaticFieldByName_Char(ani_class cls, const char *name, ani_char value)
6425     {
6426         return c_api->Class_SetStaticFieldByName_Char(this, cls, name, value);
6427     }
Class_SetStaticFieldByName_Byte__ani_env6428     ani_status Class_SetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte value)
6429     {
6430         return c_api->Class_SetStaticFieldByName_Byte(this, cls, name, value);
6431     }
Class_SetStaticFieldByName_Short__ani_env6432     ani_status Class_SetStaticFieldByName_Short(ani_class cls, const char *name, ani_short value)
6433     {
6434         return c_api->Class_SetStaticFieldByName_Short(this, cls, name, value);
6435     }
Class_SetStaticFieldByName_Int__ani_env6436     ani_status Class_SetStaticFieldByName_Int(ani_class cls, const char *name, ani_int value)
6437     {
6438         return c_api->Class_SetStaticFieldByName_Int(this, cls, name, value);
6439     }
Class_SetStaticFieldByName_Long__ani_env6440     ani_status Class_SetStaticFieldByName_Long(ani_class cls, const char *name, ani_long value)
6441     {
6442         return c_api->Class_SetStaticFieldByName_Long(this, cls, name, value);
6443     }
Class_SetStaticFieldByName_Float__ani_env6444     ani_status Class_SetStaticFieldByName_Float(ani_class cls, const char *name, ani_float value)
6445     {
6446         return c_api->Class_SetStaticFieldByName_Float(this, cls, name, value);
6447     }
Class_SetStaticFieldByName_Double__ani_env6448     ani_status Class_SetStaticFieldByName_Double(ani_class cls, const char *name, ani_double value)
6449     {
6450         return c_api->Class_SetStaticFieldByName_Double(this, cls, name, value);
6451     }
Class_SetStaticFieldByName_Ref__ani_env6452     ani_status Class_SetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref value)
6453     {
6454         return c_api->Class_SetStaticFieldByName_Ref(this, cls, name, value);
6455     }
Class_CallStaticMethod_Boolean__ani_env6456     ani_status Class_CallStaticMethod_Boolean(ani_class cls, ani_static_method method, ani_boolean *result, ...)
6457     {
6458         va_list args;
6459         va_start(args, result);
6460         ani_status status = c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args);
6461         va_end(args);
6462         return status;
6463     }
Class_CallStaticMethod_Boolean_A__ani_env6464     ani_status Class_CallStaticMethod_Boolean_A(ani_class cls, ani_static_method method, ani_boolean *result,
6465                                                 const ani_value *args)
6466     {
6467         return c_api->Class_CallStaticMethod_Boolean_A(this, cls, method, result, args);
6468     }
Class_CallStaticMethod_Boolean_V__ani_env6469     ani_status Class_CallStaticMethod_Boolean_V(ani_class cls, ani_static_method method, ani_boolean *result,
6470                                                 va_list args)
6471     {
6472         return c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args);
6473     }
Class_CallStaticMethod_Char__ani_env6474     ani_status Class_CallStaticMethod_Char(ani_class cls, ani_static_method method, ani_char *result, ...)
6475     {
6476         va_list args;
6477         va_start(args, result);
6478         ani_status status = c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args);
6479         va_end(args);
6480         return status;
6481     }
Class_CallStaticMethod_Char_A__ani_env6482     ani_status Class_CallStaticMethod_Char_A(ani_class cls, ani_static_method method, ani_char *result,
6483                                              const ani_value *args)
6484     {
6485         return c_api->Class_CallStaticMethod_Char_A(this, cls, method, result, args);
6486     }
Class_CallStaticMethod_Char_V__ani_env6487     ani_status Class_CallStaticMethod_Char_V(ani_class cls, ani_static_method method, ani_char *result, va_list args)
6488     {
6489         return c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args);
6490     }
Class_CallStaticMethod_Byte__ani_env6491     ani_status Class_CallStaticMethod_Byte(ani_class cls, ani_static_method method, ani_byte *result, ...)
6492     {
6493         va_list args;
6494         va_start(args, result);
6495         ani_status status = c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args);
6496         va_end(args);
6497         return status;
6498     }
Class_CallStaticMethod_Byte_A__ani_env6499     ani_status Class_CallStaticMethod_Byte_A(ani_class cls, ani_static_method method, ani_byte *result,
6500                                              const ani_value *args)
6501     {
6502         return c_api->Class_CallStaticMethod_Byte_A(this, cls, method, result, args);
6503     }
Class_CallStaticMethod_Byte_V__ani_env6504     ani_status Class_CallStaticMethod_Byte_V(ani_class cls, ani_static_method method, ani_byte *result, va_list args)
6505     {
6506         return c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args);
6507     }
Class_CallStaticMethod_Short__ani_env6508     ani_status Class_CallStaticMethod_Short(ani_class cls, ani_static_method method, ani_short *result, ...)
6509     {
6510         va_list args;
6511         va_start(args, result);
6512         ani_status status = c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args);
6513         va_end(args);
6514         return status;
6515     }
Class_CallStaticMethod_Short_A__ani_env6516     ani_status Class_CallStaticMethod_Short_A(ani_class cls, ani_static_method method, ani_short *result,
6517                                               const ani_value *args)
6518     {
6519         return c_api->Class_CallStaticMethod_Short_A(this, cls, method, result, args);
6520     }
Class_CallStaticMethod_Short_V__ani_env6521     ani_status Class_CallStaticMethod_Short_V(ani_class cls, ani_static_method method, ani_short *result, va_list args)
6522     {
6523         return c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args);
6524     }
Class_CallStaticMethod_Int__ani_env6525     ani_status Class_CallStaticMethod_Int(ani_class cls, ani_static_method method, ani_int *result, ...)
6526     {
6527         va_list args;
6528         va_start(args, result);
6529         ani_status status = c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args);
6530         va_end(args);
6531         return status;
6532     }
Class_CallStaticMethod_Int_A__ani_env6533     ani_status Class_CallStaticMethod_Int_A(ani_class cls, ani_static_method method, ani_int *result,
6534                                             const ani_value *args)
6535     {
6536         return c_api->Class_CallStaticMethod_Int_A(this, cls, method, result, args);
6537     }
Class_CallStaticMethod_Int_V__ani_env6538     ani_status Class_CallStaticMethod_Int_V(ani_class cls, ani_static_method method, ani_int *result, va_list args)
6539     {
6540         return c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args);
6541     }
Class_CallStaticMethod_Long__ani_env6542     ani_status Class_CallStaticMethod_Long(ani_class cls, ani_static_method method, ani_long *result, ...)
6543     {
6544         va_list args;
6545         va_start(args, result);
6546         ani_status status = c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args);
6547         va_end(args);
6548         return status;
6549     }
Class_CallStaticMethod_Long_A__ani_env6550     ani_status Class_CallStaticMethod_Long_A(ani_class cls, ani_static_method method, ani_long *result,
6551                                              const ani_value *args)
6552     {
6553         return c_api->Class_CallStaticMethod_Long_A(this, cls, method, result, args);
6554     }
Class_CallStaticMethod_Long_V__ani_env6555     ani_status Class_CallStaticMethod_Long_V(ani_class cls, ani_static_method method, ani_long *result, va_list args)
6556     {
6557         return c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args);
6558     }
Class_CallStaticMethod_Float__ani_env6559     ani_status Class_CallStaticMethod_Float(ani_class cls, ani_static_method method, ani_float *result, ...)
6560     {
6561         va_list args;
6562         va_start(args, result);
6563         ani_status status = c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args);
6564         va_end(args);
6565         return status;
6566     }
Class_CallStaticMethod_Float_A__ani_env6567     ani_status Class_CallStaticMethod_Float_A(ani_class cls, ani_static_method method, ani_float *result,
6568                                               const ani_value *args)
6569     {
6570         return c_api->Class_CallStaticMethod_Float_A(this, cls, method, result, args);
6571     }
Class_CallStaticMethod_Float_V__ani_env6572     ani_status Class_CallStaticMethod_Float_V(ani_class cls, ani_static_method method, ani_float *result, va_list args)
6573     {
6574         return c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args);
6575     }
Class_CallStaticMethod_Double__ani_env6576     ani_status Class_CallStaticMethod_Double(ani_class cls, ani_static_method method, ani_double *result, ...)
6577     {
6578         va_list args;
6579         va_start(args, result);
6580         ani_status status = c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args);
6581         va_end(args);
6582         return status;
6583     }
Class_CallStaticMethod_Double_A__ani_env6584     ani_status Class_CallStaticMethod_Double_A(ani_class cls, ani_static_method method, ani_double *result,
6585                                                const ani_value *args)
6586     {
6587         return c_api->Class_CallStaticMethod_Double_A(this, cls, method, result, args);
6588     }
Class_CallStaticMethod_Double_V__ani_env6589     ani_status Class_CallStaticMethod_Double_V(ani_class cls, ani_static_method method, ani_double *result,
6590                                                va_list args)
6591     {
6592         return c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args);
6593     }
Class_CallStaticMethod_Ref__ani_env6594     ani_status Class_CallStaticMethod_Ref(ani_class cls, ani_static_method method, ani_ref *result, ...)
6595     {
6596         va_list args;
6597         va_start(args, result);
6598         ani_status status = c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args);
6599         va_end(args);
6600         return status;
6601     }
Class_CallStaticMethod_Ref_A__ani_env6602     ani_status Class_CallStaticMethod_Ref_A(ani_class cls, ani_static_method method, ani_ref *result,
6603                                             const ani_value *args)
6604     {
6605         return c_api->Class_CallStaticMethod_Ref_A(this, cls, method, result, args);
6606     }
Class_CallStaticMethod_Ref_V__ani_env6607     ani_status Class_CallStaticMethod_Ref_V(ani_class cls, ani_static_method method, ani_ref *result, va_list args)
6608     {
6609         return c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args);
6610     }
Class_CallStaticMethod_Void__ani_env6611     ani_status Class_CallStaticMethod_Void(ani_class cls, ani_static_method method, ...)
6612     {
6613         va_list args;
6614         va_start(args, method);
6615         ani_status status = c_api->Class_CallStaticMethod_Void_V(this, cls, method, args);
6616         va_end(args);
6617         return status;
6618     }
Class_CallStaticMethod_Void_A__ani_env6619     ani_status Class_CallStaticMethod_Void_A(ani_class cls, ani_static_method method, const ani_value *args)
6620     {
6621         return c_api->Class_CallStaticMethod_Void_A(this, cls, method, args);
6622     }
Class_CallStaticMethod_Void_V__ani_env6623     ani_status Class_CallStaticMethod_Void_V(ani_class cls, ani_static_method method, va_list args)
6624     {
6625         return c_api->Class_CallStaticMethod_Void_V(this, cls, method, args);
6626     }
Class_CallStaticMethodByName_Boolean__ani_env6627     ani_status Class_CallStaticMethodByName_Boolean(ani_class cls, const char *name, const char *signature,
6628                                                     ani_boolean *result, ...)
6629     {
6630         va_list args;
6631         va_start(args, result);
6632         ani_status status = c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args);
6633         va_end(args);
6634         return status;
6635     }
Class_CallStaticMethodByName_Boolean_A__ani_env6636     ani_status Class_CallStaticMethodByName_Boolean_A(ani_class cls, const char *name, const char *signature,
6637                                                       ani_boolean *result, const ani_value *args)
6638     {
6639         return c_api->Class_CallStaticMethodByName_Boolean_A(this, cls, name, signature, result, args);
6640     }
Class_CallStaticMethodByName_Boolean_V__ani_env6641     ani_status Class_CallStaticMethodByName_Boolean_V(ani_class cls, const char *name, const char *signature,
6642                                                       ani_boolean *result, va_list args)
6643     {
6644         return c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args);
6645     }
Class_CallStaticMethodByName_Char__ani_env6646     ani_status Class_CallStaticMethodByName_Char(ani_class cls, const char *name, const char *signature,
6647                                                  ani_char *result, ...)
6648     {
6649         va_list args;
6650         va_start(args, result);
6651         ani_status status = c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args);
6652         va_end(args);
6653         return status;
6654     }
Class_CallStaticMethodByName_Char_A__ani_env6655     ani_status Class_CallStaticMethodByName_Char_A(ani_class cls, const char *name, const char *signature,
6656                                                    ani_char *result, const ani_value *args)
6657     {
6658         return c_api->Class_CallStaticMethodByName_Char_A(this, cls, name, signature, result, args);
6659     }
Class_CallStaticMethodByName_Char_V__ani_env6660     ani_status Class_CallStaticMethodByName_Char_V(ani_class cls, const char *name, const char *signature,
6661                                                    ani_char *result, va_list args)
6662     {
6663         return c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args);
6664     }
Class_CallStaticMethodByName_Byte__ani_env6665     ani_status Class_CallStaticMethodByName_Byte(ani_class cls, const char *name, const char *signature,
6666                                                  ani_byte *result, ...)
6667     {
6668         va_list args;
6669         va_start(args, result);
6670         ani_status status = c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args);
6671         va_end(args);
6672         return status;
6673     }
Class_CallStaticMethodByName_Byte_A__ani_env6674     ani_status Class_CallStaticMethodByName_Byte_A(ani_class cls, const char *name, const char *signature,
6675                                                    ani_byte *result, const ani_value *args)
6676     {
6677         return c_api->Class_CallStaticMethodByName_Byte_A(this, cls, name, signature, result, args);
6678     }
Class_CallStaticMethodByName_Byte_V__ani_env6679     ani_status Class_CallStaticMethodByName_Byte_V(ani_class cls, const char *name, const char *signature,
6680                                                    ani_byte *result, va_list args)
6681     {
6682         return c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args);
6683     }
Class_CallStaticMethodByName_Short__ani_env6684     ani_status Class_CallStaticMethodByName_Short(ani_class cls, const char *name, const char *signature,
6685                                                   ani_short *result, ...)
6686     {
6687         va_list args;
6688         va_start(args, result);
6689         ani_status status = c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args);
6690         va_end(args);
6691         return status;
6692     }
Class_CallStaticMethodByName_Short_A__ani_env6693     ani_status Class_CallStaticMethodByName_Short_A(ani_class cls, const char *name, const char *signature,
6694                                                     ani_short *result, const ani_value *args)
6695     {
6696         return c_api->Class_CallStaticMethodByName_Short_A(this, cls, name, signature, result, args);
6697     }
Class_CallStaticMethodByName_Short_V__ani_env6698     ani_status Class_CallStaticMethodByName_Short_V(ani_class cls, const char *name, const char *signature,
6699                                                     ani_short *result, va_list args)
6700     {
6701         return c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args);
6702     }
Class_CallStaticMethodByName_Int__ani_env6703     ani_status Class_CallStaticMethodByName_Int(ani_class cls, const char *name, const char *signature, ani_int *result,
6704                                                 ...)
6705     {
6706         va_list args;
6707         va_start(args, result);
6708         ani_status status = c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args);
6709         va_end(args);
6710         return status;
6711     }
Class_CallStaticMethodByName_Int_A__ani_env6712     ani_status Class_CallStaticMethodByName_Int_A(ani_class cls, const char *name, const char *signature,
6713                                                   ani_int *result, const ani_value *args)
6714     {
6715         return c_api->Class_CallStaticMethodByName_Int_A(this, cls, name, signature, result, args);
6716     }
Class_CallStaticMethodByName_Int_V__ani_env6717     ani_status Class_CallStaticMethodByName_Int_V(ani_class cls, const char *name, const char *signature,
6718                                                   ani_int *result, va_list args)
6719     {
6720         return c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args);
6721     }
Class_CallStaticMethodByName_Long__ani_env6722     ani_status Class_CallStaticMethodByName_Long(ani_class cls, const char *name, const char *signature,
6723                                                  ani_long *result, ...)
6724     {
6725         va_list args;
6726         va_start(args, result);
6727         ani_status status = c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args);
6728         va_end(args);
6729         return status;
6730     }
Class_CallStaticMethodByName_Long_A__ani_env6731     ani_status Class_CallStaticMethodByName_Long_A(ani_class cls, const char *name, const char *signature,
6732                                                    ani_long *result, const ani_value *args)
6733     {
6734         return c_api->Class_CallStaticMethodByName_Long_A(this, cls, name, signature, result, args);
6735     }
Class_CallStaticMethodByName_Long_V__ani_env6736     ani_status Class_CallStaticMethodByName_Long_V(ani_class cls, const char *name, const char *signature,
6737                                                    ani_long *result, va_list args)
6738     {
6739         return c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args);
6740     }
Class_CallStaticMethodByName_Float__ani_env6741     ani_status Class_CallStaticMethodByName_Float(ani_class cls, const char *name, const char *signature,
6742                                                   ani_float *result, ...)
6743     {
6744         va_list args;
6745         va_start(args, result);
6746         ani_status status = c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args);
6747         va_end(args);
6748         return status;
6749     }
Class_CallStaticMethodByName_Float_A__ani_env6750     ani_status Class_CallStaticMethodByName_Float_A(ani_class cls, const char *name, const char *signature,
6751                                                     ani_float *result, const ani_value *args)
6752     {
6753         return c_api->Class_CallStaticMethodByName_Float_A(this, cls, name, signature, result, args);
6754     }
Class_CallStaticMethodByName_Float_V__ani_env6755     ani_status Class_CallStaticMethodByName_Float_V(ani_class cls, const char *name, const char *signature,
6756                                                     ani_float *result, va_list args)
6757     {
6758         return c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args);
6759     }
Class_CallStaticMethodByName_Double__ani_env6760     ani_status Class_CallStaticMethodByName_Double(ani_class cls, const char *name, const char *signature,
6761                                                    ani_double *result, ...)
6762     {
6763         va_list args;
6764         va_start(args, result);
6765         ani_status status = c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args);
6766         va_end(args);
6767         return status;
6768     }
Class_CallStaticMethodByName_Double_A__ani_env6769     ani_status Class_CallStaticMethodByName_Double_A(ani_class cls, const char *name, const char *signature,
6770                                                      ani_double *result, const ani_value *args)
6771     {
6772         return c_api->Class_CallStaticMethodByName_Double_A(this, cls, name, signature, result, args);
6773     }
Class_CallStaticMethodByName_Double_V__ani_env6774     ani_status Class_CallStaticMethodByName_Double_V(ani_class cls, const char *name, const char *signature,
6775                                                      ani_double *result, va_list args)
6776     {
6777         return c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args);
6778     }
Class_CallStaticMethodByName_Ref__ani_env6779     ani_status Class_CallStaticMethodByName_Ref(ani_class cls, const char *name, const char *signature, ani_ref *result,
6780                                                 ...)
6781     {
6782         va_list args;
6783         va_start(args, result);
6784         ani_status status = c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args);
6785         va_end(args);
6786         return status;
6787     }
Class_CallStaticMethodByName_Ref_A__ani_env6788     ani_status Class_CallStaticMethodByName_Ref_A(ani_class cls, const char *name, const char *signature,
6789                                                   ani_ref *result, const ani_value *args)
6790     {
6791         return c_api->Class_CallStaticMethodByName_Ref_A(this, cls, name, signature, result, args);
6792     }
Class_CallStaticMethodByName_Ref_V__ani_env6793     ani_status Class_CallStaticMethodByName_Ref_V(ani_class cls, const char *name, const char *signature,
6794                                                   ani_ref *result, va_list args)
6795     {
6796         return c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args);
6797     }
Class_CallStaticMethodByName_Void__ani_env6798     ani_status Class_CallStaticMethodByName_Void(ani_class cls, const char *name, const char *signature, ...)
6799     {
6800         va_list args;
6801         va_start(args, signature);
6802         ani_status status = c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args);
6803         va_end(args);
6804         return status;
6805     }
Class_CallStaticMethodByName_Void_A__ani_env6806     ani_status Class_CallStaticMethodByName_Void_A(ani_class cls, const char *name, const char *signature,
6807                                                    const ani_value *args)
6808     {
6809         return c_api->Class_CallStaticMethodByName_Void_A(this, cls, name, signature, args);
6810     }
Class_CallStaticMethodByName_Void_V__ani_env6811     ani_status Class_CallStaticMethodByName_Void_V(ani_class cls, const char *name, const char *signature, va_list args)
6812     {
6813         return c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args);
6814     }
Object_GetField_Boolean__ani_env6815     ani_status Object_GetField_Boolean(ani_object object, ani_field field, ani_boolean *result)
6816     {
6817         return c_api->Object_GetField_Boolean(this, object, field, result);
6818     }
Object_GetField_Char__ani_env6819     ani_status Object_GetField_Char(ani_object object, ani_field field, ani_char *result)
6820     {
6821         return c_api->Object_GetField_Char(this, object, field, result);
6822     }
Object_GetField_Byte__ani_env6823     ani_status Object_GetField_Byte(ani_object object, ani_field field, ani_byte *result)
6824     {
6825         return c_api->Object_GetField_Byte(this, object, field, result);
6826     }
Object_GetField_Short__ani_env6827     ani_status Object_GetField_Short(ani_object object, ani_field field, ani_short *result)
6828     {
6829         return c_api->Object_GetField_Short(this, object, field, result);
6830     }
Object_GetField_Int__ani_env6831     ani_status Object_GetField_Int(ani_object object, ani_field field, ani_int *result)
6832     {
6833         return c_api->Object_GetField_Int(this, object, field, result);
6834     }
Object_GetField_Long__ani_env6835     ani_status Object_GetField_Long(ani_object object, ani_field field, ani_long *result)
6836     {
6837         return c_api->Object_GetField_Long(this, object, field, result);
6838     }
Object_GetField_Float__ani_env6839     ani_status Object_GetField_Float(ani_object object, ani_field field, ani_float *result)
6840     {
6841         return c_api->Object_GetField_Float(this, object, field, result);
6842     }
Object_GetField_Double__ani_env6843     ani_status Object_GetField_Double(ani_object object, ani_field field, ani_double *result)
6844     {
6845         return c_api->Object_GetField_Double(this, object, field, result);
6846     }
Object_GetField_Ref__ani_env6847     ani_status Object_GetField_Ref(ani_object object, ani_field field, ani_ref *result)
6848     {
6849         return c_api->Object_GetField_Ref(this, object, field, result);
6850     }
Object_SetField_Boolean__ani_env6851     ani_status Object_SetField_Boolean(ani_object object, ani_field field, ani_boolean value)
6852     {
6853         return c_api->Object_SetField_Boolean(this, object, field, value);
6854     }
Object_SetField_Char__ani_env6855     ani_status Object_SetField_Char(ani_object object, ani_field field, ani_char value)
6856     {
6857         return c_api->Object_SetField_Char(this, object, field, value);
6858     }
Object_SetField_Byte__ani_env6859     ani_status Object_SetField_Byte(ani_object object, ani_field field, ani_byte value)
6860     {
6861         return c_api->Object_SetField_Byte(this, object, field, value);
6862     }
Object_SetField_Short__ani_env6863     ani_status Object_SetField_Short(ani_object object, ani_field field, ani_short value)
6864     {
6865         return c_api->Object_SetField_Short(this, object, field, value);
6866     }
Object_SetField_Int__ani_env6867     ani_status Object_SetField_Int(ani_object object, ani_field field, ani_int value)
6868     {
6869         return c_api->Object_SetField_Int(this, object, field, value);
6870     }
Object_SetField_Long__ani_env6871     ani_status Object_SetField_Long(ani_object object, ani_field field, ani_long value)
6872     {
6873         return c_api->Object_SetField_Long(this, object, field, value);
6874     }
Object_SetField_Float__ani_env6875     ani_status Object_SetField_Float(ani_object object, ani_field field, ani_float value)
6876     {
6877         return c_api->Object_SetField_Float(this, object, field, value);
6878     }
Object_SetField_Double__ani_env6879     ani_status Object_SetField_Double(ani_object object, ani_field field, ani_double value)
6880     {
6881         return c_api->Object_SetField_Double(this, object, field, value);
6882     }
Object_SetField_Ref__ani_env6883     ani_status Object_SetField_Ref(ani_object object, ani_field field, ani_ref value)
6884     {
6885         return c_api->Object_SetField_Ref(this, object, field, value);
6886     }
Object_GetFieldByName_Boolean__ani_env6887     ani_status Object_GetFieldByName_Boolean(ani_object object, const char *name, ani_boolean *result)
6888     {
6889         return c_api->Object_GetFieldByName_Boolean(this, object, name, result);
6890     }
Object_GetFieldByName_Char__ani_env6891     ani_status Object_GetFieldByName_Char(ani_object object, const char *name, ani_char *result)
6892     {
6893         return c_api->Object_GetFieldByName_Char(this, object, name, result);
6894     }
Object_GetFieldByName_Byte__ani_env6895     ani_status Object_GetFieldByName_Byte(ani_object object, const char *name, ani_byte *result)
6896     {
6897         return c_api->Object_GetFieldByName_Byte(this, object, name, result);
6898     }
Object_GetFieldByName_Short__ani_env6899     ani_status Object_GetFieldByName_Short(ani_object object, const char *name, ani_short *result)
6900     {
6901         return c_api->Object_GetFieldByName_Short(this, object, name, result);
6902     }
Object_GetFieldByName_Int__ani_env6903     ani_status Object_GetFieldByName_Int(ani_object object, const char *name, ani_int *result)
6904     {
6905         return c_api->Object_GetFieldByName_Int(this, object, name, result);
6906     }
Object_GetFieldByName_Long__ani_env6907     ani_status Object_GetFieldByName_Long(ani_object object, const char *name, ani_long *result)
6908     {
6909         return c_api->Object_GetFieldByName_Long(this, object, name, result);
6910     }
Object_GetFieldByName_Float__ani_env6911     ani_status Object_GetFieldByName_Float(ani_object object, const char *name, ani_float *result)
6912     {
6913         return c_api->Object_GetFieldByName_Float(this, object, name, result);
6914     }
Object_GetFieldByName_Double__ani_env6915     ani_status Object_GetFieldByName_Double(ani_object object, const char *name, ani_double *result)
6916     {
6917         return c_api->Object_GetFieldByName_Double(this, object, name, result);
6918     }
Object_GetFieldByName_Ref__ani_env6919     ani_status Object_GetFieldByName_Ref(ani_object object, const char *name, ani_ref *result)
6920     {
6921         return c_api->Object_GetFieldByName_Ref(this, object, name, result);
6922     }
Object_SetFieldByName_Boolean__ani_env6923     ani_status Object_SetFieldByName_Boolean(ani_object object, const char *name, ani_boolean value)
6924     {
6925         return c_api->Object_SetFieldByName_Boolean(this, object, name, value);
6926     }
Object_SetFieldByName_Char__ani_env6927     ani_status Object_SetFieldByName_Char(ani_object object, const char *name, ani_char value)
6928     {
6929         return c_api->Object_SetFieldByName_Char(this, object, name, value);
6930     }
Object_SetFieldByName_Byte__ani_env6931     ani_status Object_SetFieldByName_Byte(ani_object object, const char *name, ani_byte value)
6932     {
6933         return c_api->Object_SetFieldByName_Byte(this, object, name, value);
6934     }
Object_SetFieldByName_Short__ani_env6935     ani_status Object_SetFieldByName_Short(ani_object object, const char *name, ani_short value)
6936     {
6937         return c_api->Object_SetFieldByName_Short(this, object, name, value);
6938     }
Object_SetFieldByName_Int__ani_env6939     ani_status Object_SetFieldByName_Int(ani_object object, const char *name, ani_int value)
6940     {
6941         return c_api->Object_SetFieldByName_Int(this, object, name, value);
6942     }
Object_SetFieldByName_Long__ani_env6943     ani_status Object_SetFieldByName_Long(ani_object object, const char *name, ani_long value)
6944     {
6945         return c_api->Object_SetFieldByName_Long(this, object, name, value);
6946     }
Object_SetFieldByName_Float__ani_env6947     ani_status Object_SetFieldByName_Float(ani_object object, const char *name, ani_float value)
6948     {
6949         return c_api->Object_SetFieldByName_Float(this, object, name, value);
6950     }
Object_SetFieldByName_Double__ani_env6951     ani_status Object_SetFieldByName_Double(ani_object object, const char *name, ani_double value)
6952     {
6953         return c_api->Object_SetFieldByName_Double(this, object, name, value);
6954     }
Object_SetFieldByName_Ref__ani_env6955     ani_status Object_SetFieldByName_Ref(ani_object object, const char *name, ani_ref value)
6956     {
6957         return c_api->Object_SetFieldByName_Ref(this, object, name, value);
6958     }
Object_GetPropertyByName_Boolean__ani_env6959     ani_status Object_GetPropertyByName_Boolean(ani_object object, const char *name, ani_boolean *result)
6960     {
6961         return c_api->Object_GetPropertyByName_Boolean(this, object, name, result);
6962     }
Object_GetPropertyByName_Char__ani_env6963     ani_status Object_GetPropertyByName_Char(ani_object object, const char *name, ani_char *result)
6964     {
6965         return c_api->Object_GetPropertyByName_Char(this, object, name, result);
6966     }
Object_GetPropertyByName_Byte__ani_env6967     ani_status Object_GetPropertyByName_Byte(ani_object object, const char *name, ani_byte *result)
6968     {
6969         return c_api->Object_GetPropertyByName_Byte(this, object, name, result);
6970     }
Object_GetPropertyByName_Short__ani_env6971     ani_status Object_GetPropertyByName_Short(ani_object object, const char *name, ani_short *result)
6972     {
6973         return c_api->Object_GetPropertyByName_Short(this, object, name, result);
6974     }
Object_GetPropertyByName_Int__ani_env6975     ani_status Object_GetPropertyByName_Int(ani_object object, const char *name, ani_int *result)
6976     {
6977         return c_api->Object_GetPropertyByName_Int(this, object, name, result);
6978     }
Object_GetPropertyByName_Long__ani_env6979     ani_status Object_GetPropertyByName_Long(ani_object object, const char *name, ani_long *result)
6980     {
6981         return c_api->Object_GetPropertyByName_Long(this, object, name, result);
6982     }
Object_GetPropertyByName_Float__ani_env6983     ani_status Object_GetPropertyByName_Float(ani_object object, const char *name, ani_float *result)
6984     {
6985         return c_api->Object_GetPropertyByName_Float(this, object, name, result);
6986     }
Object_GetPropertyByName_Double__ani_env6987     ani_status Object_GetPropertyByName_Double(ani_object object, const char *name, ani_double *result)
6988     {
6989         return c_api->Object_GetPropertyByName_Double(this, object, name, result);
6990     }
Object_GetPropertyByName_Ref__ani_env6991     ani_status Object_GetPropertyByName_Ref(ani_object object, const char *name, ani_ref *result)
6992     {
6993         return c_api->Object_GetPropertyByName_Ref(this, object, name, result);
6994     }
Object_SetPropertyByName_Boolean__ani_env6995     ani_status Object_SetPropertyByName_Boolean(ani_object object, const char *name, ani_boolean value)
6996     {
6997         return c_api->Object_SetPropertyByName_Boolean(this, object, name, value);
6998     }
Object_SetPropertyByName_Char__ani_env6999     ani_status Object_SetPropertyByName_Char(ani_object object, const char *name, ani_char value)
7000     {
7001         return c_api->Object_SetPropertyByName_Char(this, object, name, value);
7002     }
Object_SetPropertyByName_Byte__ani_env7003     ani_status Object_SetPropertyByName_Byte(ani_object object, const char *name, ani_byte value)
7004     {
7005         return c_api->Object_SetPropertyByName_Byte(this, object, name, value);
7006     }
Object_SetPropertyByName_Short__ani_env7007     ani_status Object_SetPropertyByName_Short(ani_object object, const char *name, ani_short value)
7008     {
7009         return c_api->Object_SetPropertyByName_Short(this, object, name, value);
7010     }
Object_SetPropertyByName_Int__ani_env7011     ani_status Object_SetPropertyByName_Int(ani_object object, const char *name, ani_int value)
7012     {
7013         return c_api->Object_SetPropertyByName_Int(this, object, name, value);
7014     }
Object_SetPropertyByName_Long__ani_env7015     ani_status Object_SetPropertyByName_Long(ani_object object, const char *name, ani_long value)
7016     {
7017         return c_api->Object_SetPropertyByName_Long(this, object, name, value);
7018     }
Object_SetPropertyByName_Float__ani_env7019     ani_status Object_SetPropertyByName_Float(ani_object object, const char *name, ani_float value)
7020     {
7021         return c_api->Object_SetPropertyByName_Float(this, object, name, value);
7022     }
Object_SetPropertyByName_Double__ani_env7023     ani_status Object_SetPropertyByName_Double(ani_object object, const char *name, ani_double value)
7024     {
7025         return c_api->Object_SetPropertyByName_Double(this, object, name, value);
7026     }
Object_SetPropertyByName_Ref__ani_env7027     ani_status Object_SetPropertyByName_Ref(ani_object object, const char *name, ani_ref value)
7028     {
7029         return c_api->Object_SetPropertyByName_Ref(this, object, name, value);
7030     }
Object_CallMethod_Boolean__ani_env7031     ani_status Object_CallMethod_Boolean(ani_object object, ani_method method, ani_boolean *result, ...)
7032     {
7033         va_list args;
7034         va_start(args, result);
7035         ani_status status = c_api->Object_CallMethod_Boolean_V(this, object, method, result, args);
7036         va_end(args);
7037         return status;
7038     }
Object_CallMethod_Boolean_A__ani_env7039     ani_status Object_CallMethod_Boolean_A(ani_object object, ani_method method, ani_boolean *result,
7040                                            const ani_value *args)
7041     {
7042         return c_api->Object_CallMethod_Boolean_A(this, object, method, result, args);
7043     }
Object_CallMethod_Boolean_V__ani_env7044     ani_status Object_CallMethod_Boolean_V(ani_object object, ani_method method, ani_boolean *result, va_list args)
7045     {
7046         return c_api->Object_CallMethod_Boolean_V(this, object, method, result, args);
7047     }
Object_CallMethod_Char__ani_env7048     ani_status Object_CallMethod_Char(ani_object object, ani_method method, ani_char *result, ...)
7049     {
7050         va_list args;
7051         va_start(args, result);
7052         ani_status status = c_api->Object_CallMethod_Char_V(this, object, method, result, args);
7053         va_end(args);
7054         return status;
7055     }
Object_CallMethod_Char_A__ani_env7056     ani_status Object_CallMethod_Char_A(ani_object object, ani_method method, ani_char *result, const ani_value *args)
7057     {
7058         return c_api->Object_CallMethod_Char_A(this, object, method, result, args);
7059     }
Object_CallMethod_Char_V__ani_env7060     ani_status Object_CallMethod_Char_V(ani_object object, ani_method method, ani_char *result, va_list args)
7061     {
7062         return c_api->Object_CallMethod_Char_V(this, object, method, result, args);
7063     }
Object_CallMethod_Byte__ani_env7064     ani_status Object_CallMethod_Byte(ani_object object, ani_method method, ani_byte *result, ...)
7065     {
7066         va_list args;
7067         va_start(args, result);
7068         ani_status status = c_api->Object_CallMethod_Byte_V(this, object, method, result, args);
7069         va_end(args);
7070         return status;
7071     }
Object_CallMethod_Byte_A__ani_env7072     ani_status Object_CallMethod_Byte_A(ani_object object, ani_method method, ani_byte *result, const ani_value *args)
7073     {
7074         return c_api->Object_CallMethod_Byte_A(this, object, method, result, args);
7075     }
Object_CallMethod_Byte_V__ani_env7076     ani_status Object_CallMethod_Byte_V(ani_object object, ani_method method, ani_byte *result, va_list args)
7077     {
7078         return c_api->Object_CallMethod_Byte_V(this, object, method, result, args);
7079     }
Object_CallMethod_Short__ani_env7080     ani_status Object_CallMethod_Short(ani_object object, ani_method method, ani_short *result, ...)
7081     {
7082         va_list args;
7083         va_start(args, result);
7084         ani_status status = c_api->Object_CallMethod_Short_V(this, object, method, result, args);
7085         va_end(args);
7086         return status;
7087     }
Object_CallMethod_Short_A__ani_env7088     ani_status Object_CallMethod_Short_A(ani_object object, ani_method method, ani_short *result, const ani_value *args)
7089     {
7090         return c_api->Object_CallMethod_Short_A(this, object, method, result, args);
7091     }
Object_CallMethod_Short_V__ani_env7092     ani_status Object_CallMethod_Short_V(ani_object object, ani_method method, ani_short *result, va_list args)
7093     {
7094         return c_api->Object_CallMethod_Short_V(this, object, method, result, args);
7095     }
Object_CallMethod_Int__ani_env7096     ani_status Object_CallMethod_Int(ani_object object, ani_method method, ani_int *result, ...)
7097     {
7098         va_list args;
7099         va_start(args, result);
7100         ani_status status = c_api->Object_CallMethod_Int_V(this, object, method, result, args);
7101         va_end(args);
7102         return status;
7103     }
Object_CallMethod_Int_A__ani_env7104     ani_status Object_CallMethod_Int_A(ani_object object, ani_method method, ani_int *result, const ani_value *args)
7105     {
7106         return c_api->Object_CallMethod_Int_A(this, object, method, result, args);
7107     }
Object_CallMethod_Int_V__ani_env7108     ani_status Object_CallMethod_Int_V(ani_object object, ani_method method, ani_int *result, va_list args)
7109     {
7110         return c_api->Object_CallMethod_Int_V(this, object, method, result, args);
7111     }
Object_CallMethod_Long__ani_env7112     ani_status Object_CallMethod_Long(ani_object object, ani_method method, ani_long *result, ...)
7113     {
7114         va_list args;
7115         va_start(args, result);
7116         ani_status status = c_api->Object_CallMethod_Long_V(this, object, method, result, args);
7117         va_end(args);
7118         return status;
7119     }
Object_CallMethod_Long_A__ani_env7120     ani_status Object_CallMethod_Long_A(ani_object object, ani_method method, ani_long *result, const ani_value *args)
7121     {
7122         return c_api->Object_CallMethod_Long_A(this, object, method, result, args);
7123     }
Object_CallMethod_Long_V__ani_env7124     ani_status Object_CallMethod_Long_V(ani_object object, ani_method method, ani_long *result, va_list args)
7125     {
7126         return c_api->Object_CallMethod_Long_V(this, object, method, result, args);
7127     }
Object_CallMethod_Float__ani_env7128     ani_status Object_CallMethod_Float(ani_object object, ani_method method, ani_float *result, ...)
7129     {
7130         va_list args;
7131         va_start(args, result);
7132         ani_status status = c_api->Object_CallMethod_Float_V(this, object, method, result, args);
7133         va_end(args);
7134         return status;
7135     }
Object_CallMethod_Float_A__ani_env7136     ani_status Object_CallMethod_Float_A(ani_object object, ani_method method, ani_float *result, const ani_value *args)
7137     {
7138         return c_api->Object_CallMethod_Float_A(this, object, method, result, args);
7139     }
Object_CallMethod_Float_V__ani_env7140     ani_status Object_CallMethod_Float_V(ani_object object, ani_method method, ani_float *result, va_list args)
7141     {
7142         return c_api->Object_CallMethod_Float_V(this, object, method, result, args);
7143     }
Object_CallMethod_Double__ani_env7144     ani_status Object_CallMethod_Double(ani_object object, ani_method method, ani_double *result, ...)
7145     {
7146         va_list args;
7147         va_start(args, result);
7148         ani_status status = c_api->Object_CallMethod_Double_V(this, object, method, result, args);
7149         va_end(args);
7150         return status;
7151     }
Object_CallMethod_Double_A__ani_env7152     ani_status Object_CallMethod_Double_A(ani_object object, ani_method method, ani_double *result,
7153                                           const ani_value *args)
7154     {
7155         return c_api->Object_CallMethod_Double_A(this, object, method, result, args);
7156     }
Object_CallMethod_Double_V__ani_env7157     ani_status Object_CallMethod_Double_V(ani_object object, ani_method method, ani_double *result, va_list args)
7158     {
7159         return c_api->Object_CallMethod_Double_V(this, object, method, result, args);
7160     }
Object_CallMethod_Ref__ani_env7161     ani_status Object_CallMethod_Ref(ani_object object, ani_method method, ani_ref *result, ...)
7162     {
7163         va_list args;
7164         va_start(args, result);
7165         ani_status status = c_api->Object_CallMethod_Ref_V(this, object, method, result, args);
7166         va_end(args);
7167         return status;
7168     }
Object_CallMethod_Ref_A__ani_env7169     ani_status Object_CallMethod_Ref_A(ani_object object, ani_method method, ani_ref *result, const ani_value *args)
7170     {
7171         return c_api->Object_CallMethod_Ref_A(this, object, method, result, args);
7172     }
Object_CallMethod_Ref_V__ani_env7173     ani_status Object_CallMethod_Ref_V(ani_object object, ani_method method, ani_ref *result, va_list args)
7174     {
7175         return c_api->Object_CallMethod_Ref_V(this, object, method, result, args);
7176     }
Object_CallMethod_Void__ani_env7177     ani_status Object_CallMethod_Void(ani_object object, ani_method method, ...)
7178     {
7179         va_list args;
7180         va_start(args, method);
7181         ani_status status = c_api->Object_CallMethod_Void_V(this, object, method, args);
7182         va_end(args);
7183         return status;
7184     }
Object_CallMethod_Void_A__ani_env7185     ani_status Object_CallMethod_Void_A(ani_object object, ani_method method, const ani_value *args)
7186     {
7187         return c_api->Object_CallMethod_Void_A(this, object, method, args);
7188     }
Object_CallMethod_Void_V__ani_env7189     ani_status Object_CallMethod_Void_V(ani_object object, ani_method method, va_list args)
7190     {
7191         return c_api->Object_CallMethod_Void_V(this, object, method, args);
7192     }
Object_CallMethodByName_Boolean__ani_env7193     ani_status Object_CallMethodByName_Boolean(ani_object object, const char *name, const char *signature,
7194                                                ani_boolean *result, ...)
7195     {
7196         va_list args;
7197         va_start(args, result);
7198         ani_status status = c_api->Object_CallMethodByName_Boolean_V(this, object, name, signature, result, args);
7199         va_end(args);
7200         return status;
7201     }
Object_CallMethodByName_Boolean_A__ani_env7202     ani_status Object_CallMethodByName_Boolean_A(ani_object object, const char *name, const char *signature,
7203                                                  ani_boolean *result, const ani_value *args)
7204     {
7205         return c_api->Object_CallMethodByName_Boolean_A(this, object, name, signature, result, args);
7206     }
Object_CallMethodByName_Boolean_V__ani_env7207     ani_status Object_CallMethodByName_Boolean_V(ani_object object, const char *name, const char *signature,
7208                                                  ani_boolean *result, va_list args)
7209     {
7210         return c_api->Object_CallMethodByName_Boolean_V(this, object, name, signature, result, args);
7211     }
Object_CallMethodByName_Char__ani_env7212     ani_status Object_CallMethodByName_Char(ani_object object, const char *name, const char *signature,
7213                                             ani_char *result, ...)
7214     {
7215         va_list args;
7216         va_start(args, result);
7217         ani_status status = c_api->Object_CallMethodByName_Char_V(this, object, name, signature, result, args);
7218         va_end(args);
7219         return status;
7220     }
Object_CallMethodByName_Char_A__ani_env7221     ani_status Object_CallMethodByName_Char_A(ani_object object, const char *name, const char *signature,
7222                                               ani_char *result, const ani_value *args)
7223     {
7224         return c_api->Object_CallMethodByName_Char_A(this, object, name, signature, result, args);
7225     }
Object_CallMethodByName_Char_V__ani_env7226     ani_status Object_CallMethodByName_Char_V(ani_object object, const char *name, const char *signature,
7227                                               ani_char *result, va_list args)
7228     {
7229         return c_api->Object_CallMethodByName_Char_V(this, object, name, signature, result, args);
7230     }
Object_CallMethodByName_Byte__ani_env7231     ani_status Object_CallMethodByName_Byte(ani_object object, const char *name, const char *signature,
7232                                             ani_byte *result, ...)
7233     {
7234         va_list args;
7235         va_start(args, result);
7236         ani_status status = c_api->Object_CallMethodByName_Byte_V(this, object, name, signature, result, args);
7237         va_end(args);
7238         return status;
7239     }
Object_CallMethodByName_Byte_A__ani_env7240     ani_status Object_CallMethodByName_Byte_A(ani_object object, const char *name, const char *signature,
7241                                               ani_byte *result, const ani_value *args)
7242     {
7243         return c_api->Object_CallMethodByName_Byte_A(this, object, name, signature, result, args);
7244     }
Object_CallMethodByName_Byte_V__ani_env7245     ani_status Object_CallMethodByName_Byte_V(ani_object object, const char *name, const char *signature,
7246                                               ani_byte *result, va_list args)
7247     {
7248         return c_api->Object_CallMethodByName_Byte_V(this, object, name, signature, result, args);
7249     }
Object_CallMethodByName_Short__ani_env7250     ani_status Object_CallMethodByName_Short(ani_object object, const char *name, const char *signature,
7251                                              ani_short *result, ...)
7252     {
7253         va_list args;
7254         va_start(args, result);
7255         ani_status status = c_api->Object_CallMethodByName_Short_V(this, object, name, signature, result, args);
7256         va_end(args);
7257         return status;
7258     }
Object_CallMethodByName_Short_A__ani_env7259     ani_status Object_CallMethodByName_Short_A(ani_object object, const char *name, const char *signature,
7260                                                ani_short *result, const ani_value *args)
7261     {
7262         return c_api->Object_CallMethodByName_Short_A(this, object, name, signature, result, args);
7263     }
Object_CallMethodByName_Short_V__ani_env7264     ani_status Object_CallMethodByName_Short_V(ani_object object, const char *name, const char *signature,
7265                                                ani_short *result, va_list args)
7266     {
7267         return c_api->Object_CallMethodByName_Short_V(this, object, name, signature, result, args);
7268     }
Object_CallMethodByName_Int__ani_env7269     ani_status Object_CallMethodByName_Int(ani_object object, const char *name, const char *signature, ani_int *result,
7270                                            ...)
7271     {
7272         va_list args;
7273         va_start(args, result);
7274         ani_status status = c_api->Object_CallMethodByName_Int_V(this, object, name, signature, result, args);
7275         va_end(args);
7276         return status;
7277     }
Object_CallMethodByName_Int_A__ani_env7278     ani_status Object_CallMethodByName_Int_A(ani_object object, const char *name, const char *signature,
7279                                              ani_int *result, const ani_value *args)
7280     {
7281         return c_api->Object_CallMethodByName_Int_A(this, object, name, signature, result, args);
7282     }
Object_CallMethodByName_Int_V__ani_env7283     ani_status Object_CallMethodByName_Int_V(ani_object object, const char *name, const char *signature,
7284                                              ani_int *result, va_list args)
7285     {
7286         return c_api->Object_CallMethodByName_Int_V(this, object, name, signature, result, args);
7287     }
Object_CallMethodByName_Long__ani_env7288     ani_status Object_CallMethodByName_Long(ani_object object, const char *name, const char *signature,
7289                                             ani_long *result, ...)
7290     {
7291         va_list args;
7292         va_start(args, result);
7293         ani_status status = c_api->Object_CallMethodByName_Long_V(this, object, name, signature, result, args);
7294         va_end(args);
7295         return status;
7296     }
Object_CallMethodByName_Long_A__ani_env7297     ani_status Object_CallMethodByName_Long_A(ani_object object, const char *name, const char *signature,
7298                                               ani_long *result, const ani_value *args)
7299     {
7300         return c_api->Object_CallMethodByName_Long_A(this, object, name, signature, result, args);
7301     }
Object_CallMethodByName_Long_V__ani_env7302     ani_status Object_CallMethodByName_Long_V(ani_object object, const char *name, const char *signature,
7303                                               ani_long *result, va_list args)
7304     {
7305         return c_api->Object_CallMethodByName_Long_V(this, object, name, signature, result, args);
7306     }
Object_CallMethodByName_Float__ani_env7307     ani_status Object_CallMethodByName_Float(ani_object object, const char *name, const char *signature,
7308                                              ani_float *result, ...)
7309     {
7310         va_list args;
7311         va_start(args, result);
7312         ani_status status = c_api->Object_CallMethodByName_Float_V(this, object, name, signature, result, args);
7313         va_end(args);
7314         return status;
7315     }
Object_CallMethodByName_Float_A__ani_env7316     ani_status Object_CallMethodByName_Float_A(ani_object object, const char *name, const char *signature,
7317                                                ani_float *result, const ani_value *args)
7318     {
7319         return c_api->Object_CallMethodByName_Float_A(this, object, name, signature, result, args);
7320     }
Object_CallMethodByName_Float_V__ani_env7321     ani_status Object_CallMethodByName_Float_V(ani_object object, const char *name, const char *signature,
7322                                                ani_float *result, va_list args)
7323     {
7324         return c_api->Object_CallMethodByName_Float_V(this, object, name, signature, result, args);
7325     }
Object_CallMethodByName_Double__ani_env7326     ani_status Object_CallMethodByName_Double(ani_object object, const char *name, const char *signature,
7327                                               ani_double *result, ...)
7328     {
7329         va_list args;
7330         va_start(args, result);
7331         ani_status status = c_api->Object_CallMethodByName_Double_V(this, object, name, signature, result, args);
7332         va_end(args);
7333         return status;
7334     }
Object_CallMethodByName_Double_A__ani_env7335     ani_status Object_CallMethodByName_Double_A(ani_object object, const char *name, const char *signature,
7336                                                 ani_double *result, const ani_value *args)
7337     {
7338         return c_api->Object_CallMethodByName_Double_A(this, object, name, signature, result, args);
7339     }
Object_CallMethodByName_Double_V__ani_env7340     ani_status Object_CallMethodByName_Double_V(ani_object object, const char *name, const char *signature,
7341                                                 ani_double *result, va_list args)
7342     {
7343         return c_api->Object_CallMethodByName_Double_V(this, object, name, signature, result, args);
7344     }
Object_CallMethodByName_Ref__ani_env7345     ani_status Object_CallMethodByName_Ref(ani_object object, const char *name, const char *signature, ani_ref *result,
7346                                            ...)
7347     {
7348         va_list args;
7349         va_start(args, result);
7350         ani_status status = c_api->Object_CallMethodByName_Ref_V(this, object, name, signature, result, args);
7351         va_end(args);
7352         return status;
7353     }
Object_CallMethodByName_Ref_A__ani_env7354     ani_status Object_CallMethodByName_Ref_A(ani_object object, const char *name, const char *signature,
7355                                              ani_ref *result, const ani_value *args)
7356     {
7357         return c_api->Object_CallMethodByName_Ref_A(this, object, name, signature, result, args);
7358     }
Object_CallMethodByName_Ref_V__ani_env7359     ani_status Object_CallMethodByName_Ref_V(ani_object object, const char *name, const char *signature,
7360                                              ani_ref *result, va_list args)
7361     {
7362         return c_api->Object_CallMethodByName_Ref_V(this, object, name, signature, result, args);
7363     }
Object_CallMethodByName_Void__ani_env7364     ani_status Object_CallMethodByName_Void(ani_object object, const char *name, const char *signature, ...)
7365     {
7366         va_list args;
7367         va_start(args, signature);
7368         ani_status status = c_api->Object_CallMethodByName_Void_V(this, object, name, signature, args);
7369         va_end(args);
7370         return status;
7371     }
Object_CallMethodByName_Void_A__ani_env7372     ani_status Object_CallMethodByName_Void_A(ani_object object, const char *name, const char *signature,
7373                                               const ani_value *args)
7374     {
7375         return c_api->Object_CallMethodByName_Void_A(this, object, name, signature, args);
7376     }
Object_CallMethodByName_Void_V__ani_env7377     ani_status Object_CallMethodByName_Void_V(ani_object object, const char *name, const char *signature, va_list args)
7378     {
7379         return c_api->Object_CallMethodByName_Void_V(this, object, name, signature, args);
7380     }
TupleValue_GetNumberOfItems__ani_env7381     ani_status TupleValue_GetNumberOfItems(ani_tuple_value tuple_value, ani_size *result)
7382     {
7383         return c_api->TupleValue_GetNumberOfItems(this, tuple_value, result);
7384     }
TupleValue_GetItem_Boolean__ani_env7385     ani_status TupleValue_GetItem_Boolean(ani_tuple_value tuple_value, ani_size index, ani_boolean *result)
7386     {
7387         return c_api->TupleValue_GetItem_Boolean(this, tuple_value, index, result);
7388     }
TupleValue_GetItem_Char__ani_env7389     ani_status TupleValue_GetItem_Char(ani_tuple_value tuple_value, ani_size index, ani_char *result)
7390     {
7391         return c_api->TupleValue_GetItem_Char(this, tuple_value, index, result);
7392     }
TupleValue_GetItem_Byte__ani_env7393     ani_status TupleValue_GetItem_Byte(ani_tuple_value tuple_value, ani_size index, ani_byte *result)
7394     {
7395         return c_api->TupleValue_GetItem_Byte(this, tuple_value, index, result);
7396     }
TupleValue_GetItem_Short__ani_env7397     ani_status TupleValue_GetItem_Short(ani_tuple_value tuple_value, ani_size index, ani_short *result)
7398     {
7399         return c_api->TupleValue_GetItem_Short(this, tuple_value, index, result);
7400     }
TupleValue_GetItem_Int__ani_env7401     ani_status TupleValue_GetItem_Int(ani_tuple_value tuple_value, ani_size index, ani_int *result)
7402     {
7403         return c_api->TupleValue_GetItem_Int(this, tuple_value, index, result);
7404     }
TupleValue_GetItem_Long__ani_env7405     ani_status TupleValue_GetItem_Long(ani_tuple_value tuple_value, ani_size index, ani_long *result)
7406     {
7407         return c_api->TupleValue_GetItem_Long(this, tuple_value, index, result);
7408     }
TupleValue_GetItem_Float__ani_env7409     ani_status TupleValue_GetItem_Float(ani_tuple_value tuple_value, ani_size index, ani_float *result)
7410     {
7411         return c_api->TupleValue_GetItem_Float(this, tuple_value, index, result);
7412     }
TupleValue_GetItem_Double__ani_env7413     ani_status TupleValue_GetItem_Double(ani_tuple_value tuple_value, ani_size index, ani_double *result)
7414     {
7415         return c_api->TupleValue_GetItem_Double(this, tuple_value, index, result);
7416     }
TupleValue_GetItem_Ref__ani_env7417     ani_status TupleValue_GetItem_Ref(ani_tuple_value tuple_value, ani_size index, ani_ref *result)
7418     {
7419         return c_api->TupleValue_GetItem_Ref(this, tuple_value, index, result);
7420     }
TupleValue_SetItem_Boolean__ani_env7421     ani_status TupleValue_SetItem_Boolean(ani_tuple_value tuple_value, ani_size index, ani_boolean value)
7422     {
7423         return c_api->TupleValue_SetItem_Boolean(this, tuple_value, index, value);
7424     }
TupleValue_SetItem_Char__ani_env7425     ani_status TupleValue_SetItem_Char(ani_tuple_value tuple_value, ani_size index, ani_char value)
7426     {
7427         return c_api->TupleValue_SetItem_Char(this, tuple_value, index, value);
7428     }
TupleValue_SetItem_Byte__ani_env7429     ani_status TupleValue_SetItem_Byte(ani_tuple_value tuple_value, ani_size index, ani_byte value)
7430     {
7431         return c_api->TupleValue_SetItem_Byte(this, tuple_value, index, value);
7432     }
TupleValue_SetItem_Short__ani_env7433     ani_status TupleValue_SetItem_Short(ani_tuple_value tuple_value, ani_size index, ani_short value)
7434     {
7435         return c_api->TupleValue_SetItem_Short(this, tuple_value, index, value);
7436     }
TupleValue_SetItem_Int__ani_env7437     ani_status TupleValue_SetItem_Int(ani_tuple_value tuple_value, ani_size index, ani_int value)
7438     {
7439         return c_api->TupleValue_SetItem_Int(this, tuple_value, index, value);
7440     }
TupleValue_SetItem_Long__ani_env7441     ani_status TupleValue_SetItem_Long(ani_tuple_value tuple_value, ani_size index, ani_long value)
7442     {
7443         return c_api->TupleValue_SetItem_Long(this, tuple_value, index, value);
7444     }
TupleValue_SetItem_Float__ani_env7445     ani_status TupleValue_SetItem_Float(ani_tuple_value tuple_value, ani_size index, ani_float value)
7446     {
7447         return c_api->TupleValue_SetItem_Float(this, tuple_value, index, value);
7448     }
TupleValue_SetItem_Double__ani_env7449     ani_status TupleValue_SetItem_Double(ani_tuple_value tuple_value, ani_size index, ani_double value)
7450     {
7451         return c_api->TupleValue_SetItem_Double(this, tuple_value, index, value);
7452     }
TupleValue_SetItem_Ref__ani_env7453     ani_status TupleValue_SetItem_Ref(ani_tuple_value tuple_value, ani_size index, ani_ref value)
7454     {
7455         return c_api->TupleValue_SetItem_Ref(this, tuple_value, index, value);
7456     }
GlobalReference_Create__ani_env7457     ani_status GlobalReference_Create(ani_ref ref, ani_ref *result)
7458     {
7459         return c_api->GlobalReference_Create(this, ref, result);
7460     }
GlobalReference_Delete__ani_env7461     ani_status GlobalReference_Delete(ani_ref ref)
7462     {
7463         return c_api->GlobalReference_Delete(this, ref);
7464     }
WeakReference_Create__ani_env7465     ani_status WeakReference_Create(ani_ref ref, ani_wref *result)
7466     {
7467         return c_api->WeakReference_Create(this, ref, result);
7468     }
WeakReference_Delete__ani_env7469     ani_status WeakReference_Delete(ani_wref wref)
7470     {
7471         return c_api->WeakReference_Delete(this, wref);
7472     }
WeakReference_GetReference__ani_env7473     ani_status WeakReference_GetReference(ani_wref wref, ani_boolean *was_released_result, ani_ref *ref_result)
7474     {
7475         return c_api->WeakReference_GetReference(this, wref, was_released_result, ref_result);
7476     }
CreateArrayBuffer__ani_env7477     ani_status CreateArrayBuffer(size_t length, void **data_result, ani_arraybuffer *arraybuffer_result)
7478     {
7479         return c_api->CreateArrayBuffer(this, length, data_result, arraybuffer_result);
7480     }
CreateArrayBufferExternal__ani_env7481     ani_status CreateArrayBufferExternal(void *external_data, size_t length, ani_finalizer finalizer, void *hint,
7482                                          ani_arraybuffer *result)
7483     {
7484         return c_api->CreateArrayBufferExternal(this, external_data, length, finalizer, hint, result);
7485     }
ArrayBuffer_GetInfo__ani_env7486     ani_status ArrayBuffer_GetInfo(ani_arraybuffer arraybuffer, void **data_result, size_t *length_result)
7487     {
7488         return c_api->ArrayBuffer_GetInfo(this, arraybuffer, data_result, length_result);
7489     }
Promise_New__ani_env7490     ani_status Promise_New(ani_resolver *result_resolver, ani_object *result_promise)
7491     {
7492         return c_api->Promise_New(this, result_resolver, result_promise);
7493     }
PromiseResolver_Resolve__ani_env7494     ani_status PromiseResolver_Resolve(ani_resolver resolver, ani_ref resolution)
7495     {
7496         return c_api->PromiseResolver_Resolve(this, resolver, resolution);
7497     }
PromiseResolver_Reject__ani_env7498     ani_status PromiseResolver_Reject(ani_resolver resolver, ani_error rejection)
7499     {
7500         return c_api->PromiseResolver_Reject(this, resolver, rejection);
7501     }
7502 #endif  // __cplusplus
7503 };
7504 
7505 // NOLINTEND
7506 #endif  // __ANI_H__
7507