• 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. Must be non null.
1413      * @return Returns a status code of type `ani_status` indicating success or failure.
1414      */
1415     ani_status (*FunctionalObject_Call)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result);
1416 
1417     /**
1418      * @brief Sets a boolean value to a variable.
1419      *
1420      * This function assigns a boolean value to the specified variable.
1421      *
1422      * @param[in] env A pointer to the environment structure.
1423      * @param[in] variable The variable to modify.
1424      * @param[in] value The boolean value to assign to the variable.
1425      * @return Returns a status code of type `ani_status` indicating success or failure.
1426      */
1427     ani_status (*Variable_SetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean value);
1428 
1429     /**
1430      * @brief Sets a character value to a variable.
1431      *
1432      * This function assigns a character value to the specified variable.
1433      *
1434      * @param[in] env A pointer to the environment structure.
1435      * @param[in] variable The variable to modify.
1436      * @param[in] value The character value to assign to the variable.
1437      * @return Returns a status code of type `ani_status` indicating success or failure.
1438      */
1439     ani_status (*Variable_SetValue_Char)(ani_env *env, ani_variable variable, ani_char value);
1440 
1441     /**
1442      * @brief Sets a byte value to a variable.
1443      *
1444      * This function assigns a byte value to the specified variable.
1445      *
1446      * @param[in] env A pointer to the environment structure.
1447      * @param[in] variable The variable to modify.
1448      * @param[in] value The byte value to assign to the variable.
1449      * @return Returns a status code of type `ani_status` indicating success or failure.
1450      */
1451     ani_status (*Variable_SetValue_Byte)(ani_env *env, ani_variable variable, ani_byte value);
1452 
1453     /**
1454      * @brief Sets a short value to a variable.
1455      *
1456      * This function assigns a short integer value to the specified variable.
1457      *
1458      * @param[in] env A pointer to the environment structure.
1459      * @param[in] variable The variable to modify.
1460      * @param[in] value The short integer value to assign to the variable.
1461      * @return Returns a status code of type `ani_status` indicating success or failure.
1462      */
1463     ani_status (*Variable_SetValue_Short)(ani_env *env, ani_variable variable, ani_short value);
1464 
1465     /**
1466      * @brief Sets an integer value to a variable.
1467      *
1468      * This function assigns an integer value to the specified variable.
1469      *
1470      * @param[in] env A pointer to the environment structure.
1471      * @param[in] variable The variable to modify.
1472      * @param[in] value The integer value to assign to the variable.
1473      * @return Returns a status code of type `ani_status` indicating success or failure.
1474      */
1475     ani_status (*Variable_SetValue_Int)(ani_env *env, ani_variable variable, ani_int value);
1476 
1477     /**
1478      * @brief Sets a long value to a variable.
1479      *
1480      * This function assigns a long integer value to the specified variable.
1481      *
1482      * @param[in] env A pointer to the environment structure.
1483      * @param[in] variable The variable to modify.
1484      * @param[in] value The long integer value to assign to the variable.
1485      * @return Returns a status code of type `ani_status` indicating success or failure.
1486      */
1487     ani_status (*Variable_SetValue_Long)(ani_env *env, ani_variable variable, ani_long value);
1488 
1489     /**
1490      * @brief Sets a float value to a variable.
1491      *
1492      * This function assigns a float value to the specified variable.
1493      *
1494      * @param[in] env A pointer to the environment structure.
1495      * @param[in] variable The variable to modify.
1496      * @param[in] value The float value to assign to the variable.
1497      * @return Returns a status code of type `ani_status` indicating success or failure.
1498      */
1499     ani_status (*Variable_SetValue_Float)(ani_env *env, ani_variable variable, ani_float value);
1500 
1501     /**
1502      * @brief Sets a double value to a variable.
1503      *
1504      * This function assigns a double value to the specified variable.
1505      *
1506      * @param[in] env A pointer to the environment structure.
1507      * @param[in] variable The variable to modify.
1508      * @param[in] value The double value to assign to the variable.
1509      * @return Returns a status code of type `ani_status` indicating success or failure.
1510      */
1511     ani_status (*Variable_SetValue_Double)(ani_env *env, ani_variable variable, ani_double value);
1512 
1513     /**
1514      * @brief Sets a reference value to a variable.
1515      *
1516      * This function assigns a reference value to the specified variable.
1517      *
1518      * @param[in] env A pointer to the environment structure.
1519      * @param[in] variable The variable to modify.
1520      * @param[in] value The reference value to assign to the variable.
1521      * @return Returns a status code of type `ani_status` indicating success or failure.
1522      */
1523     ani_status (*Variable_SetValue_Ref)(ani_env *env, ani_variable variable, ani_ref value);
1524 
1525     /**
1526      * @brief Retrieves a boolean value from a variable.
1527      *
1528      * This function fetches a boolean value from the specified variable.
1529      *
1530      * @param[in] env A pointer to the environment structure.
1531      * @param[in] variable The variable to query.
1532      * @param[out] result A pointer to store the retrieved boolean value.
1533      * @return Returns a status code of type `ani_status` indicating success or failure.
1534      */
1535     ani_status (*Variable_GetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean *result);
1536 
1537     /**
1538      * @brief Retrieves a character value from a variable.
1539      *
1540      * This function fetches a character value from the specified variable.
1541      *
1542      * @param[in] env A pointer to the environment structure.
1543      * @param[in] variable The variable to query.
1544      * @param[out] result A pointer to store the retrieved character value.
1545      * @return Returns a status code of type `ani_status` indicating success or failure.
1546      */
1547     ani_status (*Variable_GetValue_Char)(ani_env *env, ani_variable variable, ani_char *result);
1548 
1549     /**
1550      * @brief Retrieves a byte value from a variable.
1551      *
1552      * This function fetches a byte value from the specified variable.
1553      *
1554      * @param[in] env A pointer to the environment structure.
1555      * @param[in] variable The variable to query.
1556      * @param[out] result A pointer to store the retrieved byte value.
1557      * @return Returns a status code of type `ani_status` indicating success or failure.
1558      */
1559     ani_status (*Variable_GetValue_Byte)(ani_env *env, ani_variable variable, ani_byte *result);
1560 
1561     /**
1562      * @brief Retrieves a short value from a variable.
1563      *
1564      * This function fetches a short integer value from the specified variable.
1565      *
1566      * @param[in] env A pointer to the environment structure.
1567      * @param[in] variable The variable to query.
1568      * @param[out] result A pointer to store the retrieved short integer value.
1569      * @return Returns a status code of type `ani_status` indicating success or failure.
1570      */
1571     ani_status (*Variable_GetValue_Short)(ani_env *env, ani_variable variable, ani_short *result);
1572 
1573     /**
1574      * @brief Retrieves an integer value from a variable.
1575      *
1576      * This function fetches an integer value from the specified variable.
1577      *
1578      * @param[in] env A pointer to the environment structure.
1579      * @param[in] variable The variable to query.
1580      * @param[out] result A pointer to store the retrieved integer value.
1581      * @return Returns a status code of type `ani_status` indicating success or failure.
1582      */
1583     ani_status (*Variable_GetValue_Int)(ani_env *env, ani_variable variable, ani_int *result);
1584 
1585     /**
1586      * @brief Retrieves a long value from a variable.
1587      *
1588      * This function fetches a long integer value from the specified variable.
1589      *
1590      * @param[in] env A pointer to the environment structure.
1591      * @param[in] variable The variable to query.
1592      * @param[out] result A pointer to store the retrieved long integer value.
1593      * @return Returns a status code of type `ani_status` indicating success or failure.
1594      */
1595     ani_status (*Variable_GetValue_Long)(ani_env *env, ani_variable variable, ani_long *result);
1596 
1597     /**
1598      * @brief Retrieves a float value from a variable.
1599      *
1600      * This function fetches a float value from the specified variable.
1601      *
1602      * @param[in] env A pointer to the environment structure.
1603      * @param[in] variable The variable to query.
1604      * @param[out] result A pointer to store the retrieved float value.
1605      * @return Returns a status code of type `ani_status` indicating success or failure.
1606      */
1607     ani_status (*Variable_GetValue_Float)(ani_env *env, ani_variable variable, ani_float *result);
1608 
1609     /**
1610      * @brief Retrieves a double value from a variable.
1611      *
1612      * This function fetches a double value from the specified variable.
1613      *
1614      * @param[in] env A pointer to the environment structure.
1615      * @param[in] variable The variable to query.
1616      * @param[out] result A pointer to store the retrieved double value.
1617      * @return Returns a status code of type `ani_status` indicating success or failure.
1618      */
1619     ani_status (*Variable_GetValue_Double)(ani_env *env, ani_variable variable, ani_double *result);
1620 
1621     /**
1622      * @brief Retrieves a reference value from a variable.
1623      *
1624      * This function fetches a reference value from the specified variable.
1625      *
1626      * @param[in] env A pointer to the environment structure.
1627      * @param[in] variable The variable to query.
1628      * @param[out] result A pointer to store the retrieved reference value.
1629      * @return Returns a status code of type `ani_status` indicating success or failure.
1630      */
1631     ani_status (*Variable_GetValue_Ref)(ani_env *env, ani_variable variable, ani_ref *result);
1632 
1633     /**
1634      * @brief Calls a function and retrieves a boolean result.
1635      *
1636      * This function calls the specified function with variadic arguments and retrieves a boolean result.
1637      *
1638      * @param[in] env A pointer to the environment structure.
1639      * @param[in] fn The function to call.
1640      * @param[out] result A pointer to store the boolean result.
1641      * @param[in] ... Variadic arguments to pass to the function.
1642      * @return Returns a status code of type `ani_status` indicating success or failure.
1643      */
1644     ani_status (*Function_Call_Boolean)(ani_env *env, ani_function fn, ani_boolean *result, ...);
1645 
1646     /**
1647      * @brief Calls a function and retrieves a boolean result (array-based).
1648      *
1649      * This function calls the specified function with arguments provided in an array and retrieves a boolean result.
1650      *
1651      * @param[in] env A pointer to the environment structure.
1652      * @param[in] fn The function to call.
1653      * @param[out] result A pointer to store the boolean result.
1654      * @param[in] args A pointer to an array of arguments to pass to the function.
1655      * @return Returns a status code of type `ani_status` indicating success or failure.
1656      */
1657     ani_status (*Function_Call_Boolean_A)(ani_env *env, ani_function fn, ani_boolean *result, const ani_value *args);
1658 
1659     /**
1660      * @brief Calls a function and retrieves a boolean result (variadic arguments).
1661      *
1662      * This function calls the specified function with arguments provided in a `va_list` and retrieves a boolean result.
1663      *
1664      * @param[in] env A pointer to the environment structure.
1665      * @param[in] fn The function to call.
1666      * @param[out] result A pointer to store the boolean result.
1667      * @param[in] args A `va_list` containing the arguments to pass to the function.
1668      * @return Returns a status code of type `ani_status` indicating success or failure.
1669      */
1670     ani_status (*Function_Call_Boolean_V)(ani_env *env, ani_function fn, ani_boolean *result, va_list args);
1671 
1672     /**
1673      * @brief Calls a function and retrieves a character result.
1674      *
1675      * This function calls the specified function with variadic arguments and retrieves a character result.
1676      *
1677      * @param[in] env A pointer to the environment structure.
1678      * @param[in] fn The function to call.
1679      * @param[out] result A pointer to store the character result.
1680      * @param[in] ... Variadic arguments to pass to the function.
1681      * @return Returns a status code of type `ani_status` indicating success or failure.
1682      */
1683     ani_status (*Function_Call_Char)(ani_env *env, ani_function fn, ani_char *result, ...);
1684 
1685     /**
1686      * @brief Calls a function and retrieves a character result (array-based).
1687      *
1688      * This function calls the specified function with arguments provided in an array and retrieves a character result.
1689      *
1690      * @param[in] env A pointer to the environment structure.
1691      * @param[in] fn The function to call.
1692      * @param[out] result A pointer to store the character result.
1693      * @param[in] args A pointer to an array of arguments to pass to the function.
1694      * @return Returns a status code of type `ani_status` indicating success or failure.
1695      */
1696     ani_status (*Function_Call_Char_A)(ani_env *env, ani_function fn, ani_char *result, const ani_value *args);
1697 
1698     /**
1699      * @brief Calls a function and retrieves a character result (variadic arguments).
1700      *
1701      * This function calls the specified function with arguments provided in a `va_list` and retrieves a character
1702      * result.
1703      *
1704      * @param[in] env A pointer to the environment structure.
1705      * @param[in] fn The function to call.
1706      * @param[out] result A pointer to store the character result.
1707      * @param[in] args A `va_list` containing the arguments to pass to the function.
1708      * @return Returns a status code of type `ani_status` indicating success or failure.
1709      */
1710     ani_status (*Function_Call_Char_V)(ani_env *env, ani_function fn, ani_char *result, va_list args);
1711 
1712     /**
1713      * @brief Calls a function and retrieves a byte result.
1714      *
1715      * This function calls the specified function with variadic arguments and retrieves a byte result.
1716      *
1717      * @param[in] env A pointer to the environment structure.
1718      * @param[in] fn The function to call.
1719      * @param[out] result A pointer to store the byte result.
1720      * @param[in] ... Variadic arguments to pass to the function.
1721      * @return Returns a status code of type `ani_status` indicating success or failure.
1722      */
1723     ani_status (*Function_Call_Byte)(ani_env *env, ani_function fn, ani_byte *result, ...);
1724 
1725     /**
1726      * @brief Calls a function and retrieves a byte result (array-based).
1727      *
1728      * This function calls the specified function with arguments provided in an array and retrieves a byte result.
1729      *
1730      * @param[in] env A pointer to the environment structure.
1731      * @param[in] fn The function to call.
1732      * @param[out] result A pointer to store the byte result.
1733      * @param[in] args A pointer to an array of arguments to pass to the function.
1734      * @return Returns a status code of type `ani_status` indicating success or failure.
1735      */
1736     ani_status (*Function_Call_Byte_A)(ani_env *env, ani_function fn, ani_byte *result, const ani_value *args);
1737 
1738     /**
1739      * @brief Calls a function and retrieves a byte result (variadic arguments).
1740      *
1741      * This function calls the specified function with arguments provided in a `va_list` and retrieves a byte result.
1742      *
1743      * @param[in] env A pointer to the environment structure.
1744      * @param[in] fn The function to call.
1745      * @param[out] result A pointer to store the byte result.
1746      * @param[in] args A `va_list` containing the arguments to pass to the function.
1747      * @return Returns a status code of type `ani_status` indicating success or failure.
1748      */
1749     ani_status (*Function_Call_Byte_V)(ani_env *env, ani_function fn, ani_byte *result, va_list args);
1750 
1751     /**
1752      * @brief Calls a function and retrieves a short result.
1753      *
1754      * This function calls the specified function with variadic arguments and retrieves a short result.
1755      *
1756      * @param[in] env A pointer to the environment structure.
1757      * @param[in] fn The function to call.
1758      * @param[out] result A pointer to store the short result.
1759      * @param[in] ... Variadic arguments to pass to the function.
1760      * @return Returns a status code of type `ani_status` indicating success or failure.
1761      */
1762     ani_status (*Function_Call_Short)(ani_env *env, ani_function fn, ani_short *result, ...);
1763 
1764     /**
1765      * @brief Calls a function and retrieves a short result (array-based).
1766      *
1767      * This function calls the specified function with arguments provided in an array and retrieves a short result.
1768      *
1769      * @param[in] env A pointer to the environment structure.
1770      * @param[in] fn The function to call.
1771      * @param[out] result A pointer to store the short result.
1772      * @param[in] args A pointer to an array of arguments to pass to the function.
1773      * @return Returns a status code of type `ani_status` indicating success or failure.
1774      */
1775     ani_status (*Function_Call_Short_A)(ani_env *env, ani_function fn, ani_short *result, const ani_value *args);
1776 
1777     /**
1778      * @brief Calls a function and retrieves a short result (variadic arguments).
1779      *
1780      * This function calls the specified function with arguments provided in a `va_list` and retrieves a short result.
1781      *
1782      * @param[in] env A pointer to the environment structure.
1783      * @param[in] fn The function to call.
1784      * @param[out] result A pointer to store the short result.
1785      * @param[in] args A `va_list` containing the arguments to pass to the function.
1786      * @return Returns a status code of type `ani_status` indicating success or failure.
1787      */
1788     ani_status (*Function_Call_Short_V)(ani_env *env, ani_function fn, ani_short *result, va_list args);
1789 
1790     /**
1791      * @brief Calls a function and retrieves an integer result.
1792      *
1793      * This function calls the specified function with variadic arguments and retrieves an integer result.
1794      *
1795      * @param[in] env A pointer to the environment structure.
1796      * @param[in] fn The function to call.
1797      * @param[out] result A pointer to store the integer result.
1798      * @param[in] ... Variadic arguments to pass to the function.
1799      * @return Returns a status code of type `ani_status` indicating success or failure.
1800      */
1801     ani_status (*Function_Call_Int)(ani_env *env, ani_function fn, ani_int *result, ...);
1802 
1803     /**
1804      * @brief Calls a function and retrieves an integer result (array-based).
1805      *
1806      * This function calls the specified function with arguments provided in an array and retrieves an integer result.
1807      *
1808      * @param[in] env A pointer to the environment structure.
1809      * @param[in] fn The function to call.
1810      * @param[out] result A pointer to store the integer result.
1811      * @param[in] args A pointer to an array of arguments to pass to the function.
1812      * @return Returns a status code of type `ani_status` indicating success or failure.
1813      */
1814     ani_status (*Function_Call_Int_A)(ani_env *env, ani_function fn, ani_int *result, const ani_value *args);
1815 
1816     /**
1817      * @brief Calls a function and retrieves an integer result (variadic arguments).
1818      *
1819      * This function calls the specified function with arguments provided in a `va_list` and retrieves an integer
1820      * result.
1821      *
1822      * @param[in] env A pointer to the environment structure.
1823      * @param[in] fn The function to call.
1824      * @param[out] result A pointer to store the integer result.
1825      * @param[in] args A `va_list` containing the arguments to pass to the function.
1826      * @return Returns a status code of type `ani_status` indicating success or failure.
1827      */
1828     ani_status (*Function_Call_Int_V)(ani_env *env, ani_function fn, ani_int *result, va_list args);
1829 
1830     /**
1831      * @brief Calls a function and retrieves a long result.
1832      *
1833      * This function calls the specified function with variadic arguments and retrieves a long result.
1834      *
1835      * @param[in] env A pointer to the environment structure.
1836      * @param[in] fn The function to call.
1837      * @param[out] result A pointer to store the long result.
1838      * @param[in] ... Variadic arguments to pass to the function.
1839      * @return Returns a status code of type `ani_status` indicating success or failure.
1840      */
1841     ani_status (*Function_Call_Long)(ani_env *env, ani_function fn, ani_long *result, ...);
1842 
1843     /**
1844      * @brief Calls a function and retrieves a long result (array-based).
1845      *
1846      * This function calls the specified function with arguments provided in an array and retrieves a long result.
1847      *
1848      * @param[in] env A pointer to the environment structure.
1849      * @param[in] fn The function to call.
1850      * @param[out] result A pointer to store the long result.
1851      * @param[in] args A pointer to an array of arguments to pass to the function.
1852      * @return Returns a status code of type `ani_status` indicating success or failure.
1853      */
1854     ani_status (*Function_Call_Long_A)(ani_env *env, ani_function fn, ani_long *result, const ani_value *args);
1855 
1856     /**
1857      * @brief Calls a function and retrieves a long result (variadic arguments).
1858      *
1859      * This function calls the specified function with arguments provided in a `va_list` and retrieves a long result.
1860      *
1861      * @param[in] env A pointer to the environment structure.
1862      * @param[in] fn The function to call.
1863      * @param[out] result A pointer to store the long result.
1864      * @param[in] args A `va_list` containing the arguments to pass to the function.
1865      * @return Returns a status code of type `ani_status` indicating success or failure.
1866      */
1867     ani_status (*Function_Call_Long_V)(ani_env *env, ani_function fn, ani_long *result, va_list args);
1868 
1869     /**
1870      * @brief Calls a function and retrieves a float result.
1871      *
1872      * This function calls the specified function with variadic arguments and retrieves a float result.
1873      *
1874      * @param[in] env A pointer to the environment structure.
1875      * @param[in] fn The function to call.
1876      * @param[out] result A pointer to store the float result.
1877      * @param[in] ... Variadic arguments to pass to the function.
1878      * @return Returns a status code of type `ani_status` indicating success or failure.
1879      */
1880     ani_status (*Function_Call_Float)(ani_env *env, ani_function fn, ani_float *result, ...);
1881 
1882     /**
1883      * @brief Calls a function and retrieves a float result (array-based).
1884      *
1885      * This function calls the specified function with arguments provided in an array and retrieves a float result.
1886      *
1887      * @param[in] env A pointer to the environment structure.
1888      * @param[in] fn The function to call.
1889      * @param[out] result A pointer to store the float result.
1890      * @param[in] args A pointer to an array of arguments to pass to the function.
1891      * @return Returns a status code of type `ani_status` indicating success or failure.
1892      */
1893     ani_status (*Function_Call_Float_A)(ani_env *env, ani_function fn, ani_float *result, const ani_value *args);
1894 
1895     /**
1896      * @brief Calls a function and retrieves a float result (variadic arguments).
1897      *
1898      * This function calls the specified function with arguments provided in a `va_list` and retrieves a float result.
1899      *
1900      * @param[in] env A pointer to the environment structure.
1901      * @param[in] fn The function to call.
1902      * @param[out] result A pointer to store the float result.
1903      * @param[in] args A `va_list` containing the arguments to pass to the function.
1904      * @return Returns a status code of type `ani_status` indicating success or failure.
1905      */
1906     ani_status (*Function_Call_Float_V)(ani_env *env, ani_function fn, ani_float *result, va_list args);
1907 
1908     /**
1909      * @brief Calls a function and retrieves a double result.
1910      *
1911      * This function calls the specified function with variadic arguments and retrieves a double result.
1912      *
1913      * @param[in] env A pointer to the environment structure.
1914      * @param[in] fn The function to call.
1915      * @param[out] result A pointer to store the double result.
1916      * @param[in] ... Variadic arguments to pass to the function.
1917      * @return Returns a status code of type `ani_status` indicating success or failure.
1918      */
1919     ani_status (*Function_Call_Double)(ani_env *env, ani_function fn, ani_double *result, ...);
1920 
1921     /**
1922      * @brief Calls a function and retrieves a double result (array-based).
1923      *
1924      * This function calls the specified function with arguments provided in an array and retrieves a double result.
1925      *
1926      * @param[in] env A pointer to the environment structure.
1927      * @param[in] fn The function to call.
1928      * @param[out] result A pointer to store the double result.
1929      * @param[in] args A pointer to an array of arguments to pass to the function.
1930      * @return Returns a status code of type `ani_status` indicating success or failure.
1931      */
1932     ani_status (*Function_Call_Double_A)(ani_env *env, ani_function fn, ani_double *result, const ani_value *args);
1933 
1934     /**
1935      * @brief Calls a function and retrieves a double result (variadic arguments).
1936      *
1937      * This function calls the specified function with arguments provided in a `va_list` and retrieves a double result.
1938      *
1939      * @param[in] env A pointer to the environment structure.
1940      * @param[in] fn The function to call.
1941      * @param[out] result A pointer to store the double result.
1942      * @param[in] args A `va_list` containing the arguments to pass to the function.
1943      * @return Returns a status code of type `ani_status` indicating success or failure.
1944      */
1945     ani_status (*Function_Call_Double_V)(ani_env *env, ani_function fn, ani_double *result, va_list args);
1946 
1947     /**
1948      * @brief Calls a function and retrieves a reference result.
1949      *
1950      * This function calls the specified function with variadic arguments and retrieves a reference result.
1951      *
1952      * @param[in] env A pointer to the environment structure.
1953      * @param[in] fn The function to call.
1954      * @param[out] result A pointer to store the reference result.
1955      * @param[in] ... Variadic arguments to pass to the function.
1956      * @return Returns a status code of type `ani_status` indicating success or failure.
1957      */
1958     ani_status (*Function_Call_Ref)(ani_env *env, ani_function fn, ani_ref *result, ...);
1959 
1960     /**
1961      * @brief Calls a function and retrieves a reference result (array-based).
1962      *
1963      * This function calls the specified function with arguments provided in an array and retrieves a reference result.
1964      *
1965      * @param[in] env A pointer to the environment structure.
1966      * @param[in] fn The function to call.
1967      * @param[out] result A pointer to store the reference result.
1968      * @param[in] args A pointer to an array of arguments to pass to the function.
1969      * @return Returns a status code of type `ani_status` indicating success or failure.
1970      */
1971     ani_status (*Function_Call_Ref_A)(ani_env *env, ani_function fn, ani_ref *result, const ani_value *args);
1972 
1973     /**
1974      * @brief Calls a function and retrieves a reference result (variadic arguments).
1975      *
1976      * This function calls the specified function with arguments provided in a `va_list` and retrieves a reference
1977      * result.
1978      *
1979      * @param[in] env A pointer to the environment structure.
1980      * @param[in] fn The function to call.
1981      * @param[out] result A pointer to store the reference result.
1982      * @param[in] args A `va_list` containing the arguments to pass to the function.
1983      * @return Returns a status code of type `ani_status` indicating success or failure.
1984      */
1985     ani_status (*Function_Call_Ref_V)(ani_env *env, ani_function fn, ani_ref *result, va_list args);
1986 
1987     /**
1988      * @brief Calls a function without returning a result.
1989      *
1990      * This function calls the specified function with variadic arguments and does not return a result.
1991      *
1992      * @param[in] env A pointer to the environment structure.
1993      * @param[in] fn The function to call.
1994      * @param[in] ... Variadic arguments to pass to the function.
1995      * @return Returns a status code of type `ani_status` indicating success or failure.
1996      */
1997     ani_status (*Function_Call_Void)(ani_env *env, ani_function fn, ...);
1998 
1999     /**
2000      * @brief Calls a function without returning a result (array-based).
2001      *
2002      * This function calls the specified function with arguments provided in an array and does not return a result.
2003      *
2004      * @param[in] env A pointer to the environment structure.
2005      * @param[in] fn The function to call.
2006      * @param[in] args A pointer to an array of arguments to pass to the function.
2007      * @return Returns a status code of type `ani_status` indicating success or failure.
2008      */
2009     ani_status (*Function_Call_Void_A)(ani_env *env, ani_function fn, const ani_value *args);
2010 
2011     /**
2012      * @brief Calls a function without returning a result (variadic arguments).
2013      *
2014      * This function calls the specified function with arguments provided in a `va_list` and does not return a result.
2015      *
2016      * @param[in] env A pointer to the environment structure.
2017      * @param[in] fn The function to call.
2018      * @param[in] args A `va_list` containing the arguments to pass to the function.
2019      * @return Returns a status code of type `ani_status` indicating success or failure.
2020      */
2021     ani_status (*Function_Call_Void_V)(ani_env *env, ani_function fn, va_list args);
2022 
2023     /**
2024      * @brief Finds a field from by its name.
2025      *
2026      * This function locates a field based on its name and stores it in the result parameter.
2027      *
2028      * @param[in] env A pointer to the environment structure.
2029      * @param[in] cls The class to query.
2030      * @param[in] name The name of the field to find.
2031      * @param[out] result A pointer to the field to be populated.
2032      * @return Returns a status code of type `ani_status` indicating success or failure.
2033      */
2034     ani_status (*Class_FindField)(ani_env *env, ani_class cls, const char *name, ani_field *result);
2035 
2036     /**
2037      * @brief Finds a static field by its name.
2038      *
2039      * This function locates a static field based on its name and stores it in the result parameter.
2040      *
2041      * @param[in] env A pointer to the environment structure.
2042      * @param[in] cls The class to query.
2043      * @param[in] name The name of the static field to find.
2044      * @param[out] result A pointer to the static field to be populated.
2045      * @return Returns a status code of type `ani_status` indicating success or failure.
2046      */
2047     ani_status (*Class_FindStaticField)(ani_env *env, ani_class cls, const char *name, ani_static_field *result);
2048 
2049     /**
2050      * @brief Finds a method from by its name and signature.
2051      *
2052      * This function locates a method based on its name and signature and stores it in the result parameter.
2053      *
2054      * @param[in] env A pointer to the environment structure.
2055      * @param[in] cls The class to query.
2056      * @param[in] name The name of the method to find.
2057      * @param[in] signature The signature of the method to find.
2058      * @param[out] result A pointer to the method to be populated.
2059      * @return Returns a status code of type `ani_status` indicating success or failure.
2060      */
2061     ani_status (*Class_FindMethod)(ani_env *env, ani_class cls, const char *name, const char *signature,
2062                                    ani_method *result);
2063 
2064     /**
2065      * @brief Finds a static method from by its name and signature.
2066      *
2067      * This function locates a static method based on its name and signature and stores it in the result parameter.
2068      *
2069      * @param[in] env A pointer to the environment structure.
2070      * @param[in] cls The class to query.
2071      * @param[in] name The name of the static method to find.
2072      * @param[in] signature The signature of the static method to find.
2073      * @param[out] result A pointer to the static method to be populated.
2074      * @return Returns a status code of type `ani_status` indicating success or failure.
2075      */
2076     ani_status (*Class_FindStaticMethod)(ani_env *env, ani_class cls, const char *name, const char *signature,
2077                                          ani_static_method *result);
2078 
2079     /**
2080      * @brief Finds a setter method from by its name.
2081      *
2082      * This function locates a setter method based on its name and stores it in the result parameter.
2083      *
2084      * @param[in] env A pointer to the environment structure.
2085      * @param[in] cls The class to query.
2086      * @param[in] name The name of the property whose setter is to be found.
2087      * @param[out] result A pointer to the method to be populated.
2088      * @return Returns a status code of type `ani_status` indicating success or failure.
2089      */
2090     ani_status (*Class_FindSetter)(ani_env *env, ani_class cls, const char *name, ani_method *result);
2091 
2092     /**
2093      * @brief Finds a getter method from by its name.
2094      *
2095      * This function locates a getter method based on its name and stores it in the result parameter.
2096      *
2097      * @param[in] env A pointer to the environment structure.
2098      * @param[in] cls The class to query.
2099      * @param[in] name The name of the property whose getter is to be found.
2100      * @param[out] result A pointer to the method to be populated.
2101      * @return Returns a status code of type `ani_status` indicating success or failure.
2102      */
2103     ani_status (*Class_FindGetter)(ani_env *env, ani_class cls, const char *name, ani_method *result);
2104 
2105     /**
2106      * @brief Finds an indexable getter method from by its signature.
2107      *
2108      * This function locates an indexable getter method based on its signature and stores it in the result parameter.
2109      *
2110      * @param[in] env A pointer to the environment structure.
2111      * @param[in] cls The class to query.
2112      * @param[in] signature The signature of the indexable getter to find.
2113      * @param[out] result A pointer to the method to be populated.
2114      * @return Returns a status code of type `ani_status` indicating success or failure.
2115      */
2116     ani_status (*Class_FindIndexableGetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result);
2117 
2118     /**
2119      * @brief Finds an indexable setter method from by its signature.
2120      *
2121      * This function locates an indexable setter method based on its signature and stores it in the result parameter.
2122      *
2123      * @param[in] env A pointer to the environment structure.
2124      * @param[in] cls The class to query.
2125      * @param[in] signature The signature of the indexable setter to find.
2126      * @param[out] result A pointer to the method to be populated.
2127      * @return Returns a status code of type `ani_status` indicating success or failure.
2128      */
2129     ani_status (*Class_FindIndexableSetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result);
2130 
2131     /**
2132      * @brief Finds an iterator method.
2133      *
2134      * This function locates an iterator method
2135      *
2136      * @param[in] env A pointer to the environment structure.
2137      * @param[in] cls The class to query.
2138      * @param[out] result A pointer to the method to be populated.
2139      * @return Returns a status code of type `ani_status` indicating success or failure.
2140      */
2141     ani_status (*Class_FindIterator)(ani_env *env, ani_class cls, ani_method *result);
2142 
2143     /**
2144      * @brief Retrieves a boolean value from a static field of a class.
2145      *
2146      * This function retrieves the boolean value of the specified static field from the given class.
2147      *
2148      * @param[in] env A pointer to the environment structure.
2149      * @param[in] cls The class containing the static field.
2150      * @param[in] field The static field to retrieve.
2151      * @param[out] result A pointer to store the retrieved boolean value.
2152      * @return Returns a status code of type `ani_status` indicating success or failure.
2153      */
2154     ani_status (*Class_GetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field,
2155                                                ani_boolean *result);
2156 
2157     /**
2158      * @brief Retrieves a character value from a static field of a class.
2159      *
2160      * This function retrieves the character value of the specified static field from the given class.
2161      *
2162      * @param[in] env A pointer to the environment structure.
2163      * @param[in] cls The class containing the static field.
2164      * @param[in] field The static field to retrieve.
2165      * @param[out] result A pointer to store the retrieved character value.
2166      * @return Returns a status code of type `ani_status` indicating success or failure.
2167      */
2168     ani_status (*Class_GetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char *result);
2169 
2170     /**
2171      * @brief Retrieves a byte value from a static field of a class.
2172      *
2173      * This function retrieves the byte value of the specified static field from the given class.
2174      *
2175      * @param[in] env A pointer to the environment structure.
2176      * @param[in] cls The class containing the static field.
2177      * @param[in] field The static field to retrieve.
2178      * @param[out] result A pointer to store the retrieved byte value.
2179      * @return Returns a status code of type `ani_status` indicating success or failure.
2180      */
2181     ani_status (*Class_GetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte *result);
2182 
2183     /**
2184      * @brief Retrieves a short value from a static field of a class.
2185      *
2186      * This function retrieves the short value of the specified static field from the given class.
2187      *
2188      * @param[in] env A pointer to the environment structure.
2189      * @param[in] cls The class containing the static field.
2190      * @param[in] field The static field to retrieve.
2191      * @param[out] result A pointer to store the retrieved short value.
2192      * @return Returns a status code of type `ani_status` indicating success or failure.
2193      */
2194     ani_status (*Class_GetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short *result);
2195 
2196     /**
2197      * @brief Retrieves an integer value from a static field of a class.
2198      *
2199      * This function retrieves the integer value of the specified static field from the given class.
2200      *
2201      * @param[in] env A pointer to the environment structure.
2202      * @param[in] cls The class containing the static field.
2203      * @param[in] field The static field to retrieve.
2204      * @param[out] result A pointer to store the retrieved integer value.
2205      * @return Returns a status code of type `ani_status` indicating success or failure.
2206      */
2207     ani_status (*Class_GetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int *result);
2208 
2209     /**
2210      * @brief Retrieves a long value from a static field of a class.
2211      *
2212      * This function retrieves the long value of the specified static field from the given class.
2213      *
2214      * @param[in] env A pointer to the environment structure.
2215      * @param[in] cls The class containing the static field.
2216      * @param[in] field The static field to retrieve.
2217      * @param[out] result A pointer to store the retrieved long value.
2218      * @return Returns a status code of type `ani_status` indicating success or failure.
2219      */
2220     ani_status (*Class_GetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long *result);
2221 
2222     /**
2223      * @brief Retrieves a float value from a static field of a class.
2224      *
2225      * This function retrieves the float value of the specified static field from the given class.
2226      *
2227      * @param[in] env A pointer to the environment structure.
2228      * @param[in] cls The class containing the static field.
2229      * @param[in] field The static field to retrieve.
2230      * @param[out] result A pointer to store the retrieved float value.
2231      * @return Returns a status code of type `ani_status` indicating success or failure.
2232      */
2233     ani_status (*Class_GetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float *result);
2234 
2235     /**
2236      * @brief Retrieves a double value from a static field of a class.
2237      *
2238      * This function retrieves the double value of the specified static field from the given class.
2239      *
2240      * @param[in] env A pointer to the environment structure.
2241      * @param[in] cls The class containing the static field.
2242      * @param[in] field The static field to retrieve.
2243      * @param[out] result A pointer to store the retrieved double value.
2244      * @return Returns a status code of type `ani_status` indicating success or failure.
2245      */
2246     ani_status (*Class_GetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double *result);
2247 
2248     /**
2249      * @brief Retrieves a reference value from a static field of a class.
2250      *
2251      * This function retrieves the reference value of the specified static field from the given class.
2252      *
2253      * @param[in] env A pointer to the environment structure.
2254      * @param[in] cls The class containing the static field.
2255      * @param[in] field The static field to retrieve.
2256      * @param[out] result A pointer to store the retrieved reference value.
2257      * @return Returns a status code of type `ani_status` indicating success or failure.
2258      */
2259     ani_status (*Class_GetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref *result);
2260 
2261     /**
2262      * @brief Sets a boolean value to a static field of a class.
2263      *
2264      * This function assigns a boolean value to the specified static field of the given class.
2265      *
2266      * @param[in] env A pointer to the environment structure.
2267      * @param[in] cls The class containing the static field.
2268      * @param[in] field The static field to modify.
2269      * @param[in] value The boolean value to assign.
2270      * @return Returns a status code of type `ani_status` indicating success or failure.
2271      */
2272     ani_status (*Class_SetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, ani_boolean value);
2273 
2274     /**
2275      * @brief Sets a character value to a static field of a class.
2276      *
2277      * This function assigns a character value to the specified static field of the given class.
2278      *
2279      * @param[in] env A pointer to the environment structure.
2280      * @param[in] cls The class containing the static field.
2281      * @param[in] field The static field to modify.
2282      * @param[in] value The character value to assign.
2283      * @return Returns a status code of type `ani_status` indicating success or failure.
2284      */
2285     ani_status (*Class_SetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char value);
2286 
2287     /**
2288      * @brief Sets a byte value to a static field of a class.
2289      *
2290      * This function assigns a byte value to the specified static field of the given class.
2291      *
2292      * @param[in] env A pointer to the environment structure.
2293      * @param[in] cls The class containing the static field.
2294      * @param[in] field The static field to modify.
2295      * @param[in] value The byte value to assign.
2296      * @return Returns a status code of type `ani_status` indicating success or failure.
2297      */
2298     ani_status (*Class_SetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte value);
2299 
2300     /**
2301      * @brief Sets a short value to a static field of a class.
2302      *
2303      * This function assigns a short value to the specified static field of the given class.
2304      *
2305      * @param[in] env A pointer to the environment structure.
2306      * @param[in] cls The class containing the static field.
2307      * @param[in] field The static field to modify.
2308      * @param[in] value The short value to assign.
2309      * @return Returns a status code of type `ani_status` indicating success or failure.
2310      */
2311     ani_status (*Class_SetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short value);
2312 
2313     /**
2314      * @brief Sets an integer value to a static field of a class.
2315      *
2316      * This function assigns an integer value to the specified static field of the given class.
2317      *
2318      * @param[in] env A pointer to the environment structure.
2319      * @param[in] cls The class containing the static field.
2320      * @param[in] field The static field to modify.
2321      * @param[in] value The integer value to assign.
2322      * @return Returns a status code of type `ani_status` indicating success or failure.
2323      */
2324     ani_status (*Class_SetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int value);
2325 
2326     /**
2327      * @brief Sets a long value to a static field of a class.
2328      *
2329      * This function assigns a long value to the specified static field of the given class.
2330      *
2331      * @param[in] env A pointer to the environment structure.
2332      * @param[in] cls The class containing the static field.
2333      * @param[in] field The static field to modify.
2334      * @param[in] value The long value to assign.
2335      * @return Returns a status code of type `ani_status` indicating success or failure.
2336      */
2337     ani_status (*Class_SetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long value);
2338 
2339     /**
2340      * @brief Sets a float value to a static field of a class.
2341      *
2342      * This function assigns a float value to the specified static field of the given class.
2343      *
2344      * @param[in] env A pointer to the environment structure.
2345      * @param[in] cls The class containing the static field.
2346      * @param[in] field The static field to modify.
2347      * @param[in] value The float value to assign.
2348      * @return Returns a status code of type `ani_status` indicating success or failure.
2349      */
2350     ani_status (*Class_SetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float value);
2351 
2352     /**
2353      * @brief Sets a double value to a static field of a class.
2354      *
2355      * This function assigns a double value to the specified static field of the given class.
2356      *
2357      * @param[in] env A pointer to the environment structure.
2358      * @param[in] cls The class containing the static field.
2359      * @param[in] field The static field to modify.
2360      * @param[in] value The double value to assign.
2361      * @return Returns a status code of type `ani_status` indicating success or failure.
2362      */
2363     ani_status (*Class_SetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double value);
2364 
2365     /**
2366      * @brief Sets a reference value to a static field of a class.
2367      *
2368      * This function assigns a reference value to the specified static field of the given class.
2369      *
2370      * @param[in] env A pointer to the environment structure.
2371      * @param[in] cls The class containing the static field.
2372      * @param[in] field The static field to modify.
2373      * @param[in] value The reference value to assign.
2374      * @return Returns a status code of type `ani_status` indicating success or failure.
2375      */
2376     ani_status (*Class_SetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref value);
2377 
2378     /**
2379      * @brief Retrieves a boolean value from a static field of a class by its name.
2380      *
2381      * This function retrieves the boolean value of the specified static field from the given class by its name.
2382      *
2383      * @param[in] env A pointer to the environment structure.
2384      * @param[in] cls The class containing the static field.
2385      * @param[in] name The name of the static field to retrieve.
2386      * @param[out] result A pointer to store the retrieved boolean value.
2387      * @return Returns a status code of type `ani_status` indicating success or failure.
2388      */
2389     ani_status (*Class_GetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name,
2390                                                      ani_boolean *result);
2391 
2392     /**
2393      * @brief Retrieves a character value from a static field of a class by its name.
2394      *
2395      * This function retrieves the character value of the specified static field from the given class by its name.
2396      *
2397      * @param[in] env A pointer to the environment structure.
2398      * @param[in] cls The class containing the static field.
2399      * @param[in] name The name of the static field to retrieve.
2400      * @param[out] result A pointer to store the retrieved character value.
2401      * @return Returns a status code of type `ani_status` indicating success or failure.
2402      */
2403     ani_status (*Class_GetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result);
2404 
2405     /**
2406      * @brief Retrieves a byte value from a static field of a class by its name.
2407      *
2408      * This function retrieves the byte value of the specified static field from the given class by its name.
2409      *
2410      * @param[in] env A pointer to the environment structure.
2411      * @param[in] cls The class containing the static field.
2412      * @param[in] name The name of the static field to retrieve.
2413      * @param[out] result A pointer to store the retrieved byte value.
2414      * @return Returns a status code of type `ani_status` indicating success or failure.
2415      */
2416     ani_status (*Class_GetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result);
2417 
2418     /**
2419      * @brief Retrieves a short value from a static field of a class by its name.
2420      *
2421      * This function retrieves the short value of the specified static field from the given class by its name.
2422      *
2423      * @param[in] env A pointer to the environment structure.
2424      * @param[in] cls The class containing the static field.
2425      * @param[in] name The name of the static field to retrieve.
2426      * @param[out] result A pointer to store the retrieved short value.
2427      * @return Returns a status code of type `ani_status` indicating success or failure.
2428      */
2429     ani_status (*Class_GetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result);
2430 
2431     /**
2432      * @brief Retrieves an integer value from a static field of a class by its name.
2433      *
2434      * This function retrieves the integer value of the specified static field from the given class by its name.
2435      *
2436      * @param[in] env A pointer to the environment structure.
2437      * @param[in] cls The class containing the static field.
2438      * @param[in] name The name of the static field to retrieve.
2439      * @param[out] result A pointer to store the retrieved integer value.
2440      * @return Returns a status code of type `ani_status` indicating success or failure.
2441      */
2442     ani_status (*Class_GetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result);
2443 
2444     /**
2445      * @brief Retrieves a long value from a static field of a class by its name.
2446      *
2447      * This function retrieves the long value of the specified static field from the given class by its name.
2448      *
2449      * @param[in] env A pointer to the environment structure.
2450      * @param[in] cls The class containing the static field.
2451      * @param[in] name The name of the static field to retrieve.
2452      * @param[out] result A pointer to store the retrieved long value.
2453      * @return Returns a status code of type `ani_status` indicating success or failure.
2454      */
2455     ani_status (*Class_GetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result);
2456 
2457     /**
2458      * @brief Retrieves a float value from a static field of a class by its name.
2459      *
2460      * This function retrieves the float value of the specified static field from the given class by its name.
2461      *
2462      * @param[in] env A pointer to the environment structure.
2463      * @param[in] cls The class containing the static field.
2464      * @param[in] name The name of the static field to retrieve.
2465      * @param[out] result A pointer to store the retrieved float value.
2466      * @return Returns a status code of type `ani_status` indicating success or failure.
2467      */
2468     ani_status (*Class_GetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result);
2469 
2470     /**
2471      * @brief Retrieves a double value from a static field of a class by its name.
2472      *
2473      * This function retrieves the double value of the specified static field from the given class by its name.
2474      *
2475      * @param[in] env A pointer to the environment structure.
2476      * @param[in] cls The class containing the static field.
2477      * @param[in] name The name of the static field to retrieve.
2478      * @param[out] result A pointer to store the retrieved double value.
2479      * @return Returns a status code of type `ani_status` indicating success or failure.
2480      */
2481     ani_status (*Class_GetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result);
2482 
2483     /**
2484      * @brief Retrieves a reference value from a static field of a class by its name.
2485      *
2486      * This function retrieves the reference value of the specified static field from the given class by its name.
2487      *
2488      * @param[in] env A pointer to the environment structure.
2489      * @param[in] cls The class containing the static field.
2490      * @param[in] name The name of the static field to retrieve.
2491      * @param[out] result A pointer to store the retrieved reference value.
2492      * @return Returns a status code of type `ani_status` indicating success or failure.
2493      */
2494     ani_status (*Class_GetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result);
2495 
2496     /**
2497      * @brief Sets a boolean value to a static field of a class by its name.
2498      *
2499      * This function assigns a boolean value to the specified static field of the given class by its name.
2500      *
2501      * @param[in] env A pointer to the environment structure.
2502      * @param[in] cls The class containing the static field.
2503      * @param[in] name The name of the static field to modify.
2504      * @param[in] value The boolean value to assign.
2505      * @return Returns a status code of type `ani_status` indicating success or failure.
2506      */
2507     ani_status (*Class_SetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, ani_boolean value);
2508 
2509     /**
2510      * @brief Sets a character value to a static field of a class by its name.
2511      *
2512      * This function assigns a character value to the specified static field of the given class by its name.
2513      *
2514      * @param[in] env A pointer to the environment structure.
2515      * @param[in] cls The class containing the static field.
2516      * @param[in] name The name of the static field to modify.
2517      * @param[in] value The character value to assign.
2518      * @return Returns a status code of type `ani_status` indicating success or failure.
2519      */
2520     ani_status (*Class_SetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char value);
2521 
2522     /**
2523      * @brief Sets a byte value to a static field of a class by its name.
2524      *
2525      * This function assigns a byte value to the specified static field of the given class by its name.
2526      *
2527      * @param[in] env A pointer to the environment structure.
2528      * @param[in] cls The class containing the static field.
2529      * @param[in] name The name of the static field to modify.
2530      * @param[in] value The byte value to assign.
2531      * @return Returns a status code of type `ani_status` indicating success or failure.
2532      */
2533     ani_status (*Class_SetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte value);
2534 
2535     /**
2536      * @brief Sets a short value to a static field of a class by its name.
2537      *
2538      * This function assigns a short value to the specified static field of the given class by its name.
2539      *
2540      * @param[in] env A pointer to the environment structure.
2541      * @param[in] cls The class containing the static field.
2542      * @param[in] name The name of the static field to modify.
2543      * @param[in] value The short value to assign.
2544      * @return Returns a status code of type `ani_status` indicating success or failure.
2545      */
2546     ani_status (*Class_SetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short value);
2547 
2548     /**
2549      * @brief Sets an integer value to a static field of a class by its name.
2550      *
2551      * This function assigns an integer value to the specified static field of the given class by its name.
2552      *
2553      * @param[in] env A pointer to the environment structure.
2554      * @param[in] cls The class containing the static field.
2555      * @param[in] name The name of the static field to modify.
2556      * @param[in] value The integer value to assign.
2557      * @return Returns a status code of type `ani_status` indicating success or failure.
2558      */
2559     ani_status (*Class_SetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int value);
2560 
2561     /**
2562      * @brief Sets a long value to a static field of a class by its name.
2563      *
2564      * This function assigns a long value to the specified static field of the given class by its name.
2565      *
2566      * @param[in] env A pointer to the environment structure.
2567      * @param[in] cls The class containing the static field.
2568      * @param[in] name The name of the static field to modify.
2569      * @param[in] value The long value to assign.
2570      * @return Returns a status code of type `ani_status` indicating success or failure.
2571      */
2572     ani_status (*Class_SetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long value);
2573 
2574     /**
2575      * @brief Sets a float value to a static field of a class by its name.
2576      *
2577      * This function assigns a float value to the specified static field of the given class by its name.
2578      *
2579      * @param[in] env A pointer to the environment structure.
2580      * @param[in] cls The class containing the static field.
2581      * @param[in] name The name of the static field to modify.
2582      * @param[in] value The float value to assign.
2583      * @return Returns a status code of type `ani_status` indicating success or failure.
2584      */
2585     ani_status (*Class_SetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float value);
2586 
2587     /**
2588      * @brief Sets a double value to a static field of a class by its name.
2589      *
2590      * This function assigns a double value to the specified static field of the given class by its name.
2591      *
2592      * @param[in] env A pointer to the environment structure.
2593      * @param[in] cls The class containing the static field.
2594      * @param[in] name The name of the static field to modify.
2595      * @param[in] value The double value to assign.
2596      * @return Returns a status code of type `ani_status` indicating success or failure.
2597      */
2598     ani_status (*Class_SetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double value);
2599 
2600     /**
2601      * @brief Sets a reference value to a static field of a class by its name.
2602      *
2603      * This function assigns a reference value to the specified static field of the given class by its name.
2604      *
2605      * @param[in] env A pointer to the environment structure.
2606      * @param[in] cls The class containing the static field.
2607      * @param[in] name The name of the static field to modify.
2608      * @param[in] value The reference value to assign.
2609      * @return Returns a status code of type `ani_status` indicating success or failure.
2610      */
2611     ani_status (*Class_SetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref value);
2612 
2613     /**
2614      * @brief Calls a static method with a boolean return type.
2615      *
2616      * This function calls the specified static method of a class and retrieves a boolean result using variadic
2617      * arguments.
2618      *
2619      * @param[in] env A pointer to the environment structure.
2620      * @param[in] cls The class containing the static method.
2621      * @param[in] method The static method to call.
2622      * @param[out] result A pointer to store the boolean result.
2623      * @param[in] ... Variadic arguments to pass to the method.
2624      * @return Returns a status code of type `ani_status` indicating success or failure.
2625      */
2626     ani_status (*Class_CallStaticMethod_Boolean)(ani_env *env, ani_class cls, ani_static_method method,
2627                                                  ani_boolean *result, ...);
2628 
2629     /**
2630      * @brief Calls a static method with a boolean return type (array-based).
2631      *
2632      * This function calls the specified static method of a class and retrieves a boolean result using arguments from an
2633      * array.
2634      *
2635      * @param[in] env A pointer to the environment structure.
2636      * @param[in] cls The class containing the static method.
2637      * @param[in] method The static method to call.
2638      * @param[out] result A pointer to store the boolean result.
2639      * @param[in] args An array of arguments to pass to the method.
2640      * @return Returns a status code of type `ani_status` indicating success or failure.
2641      */
2642     ani_status (*Class_CallStaticMethod_Boolean_A)(ani_env *env, ani_class cls, ani_static_method method,
2643                                                    ani_boolean *result, const ani_value *args);
2644 
2645     /**
2646      * @brief Calls a static method with a boolean return type (variadic arguments).
2647      *
2648      * This function calls the specified static method of a class and retrieves a boolean result using a `va_list`.
2649      *
2650      * @param[in] env A pointer to the environment structure.
2651      * @param[in] cls The class containing the static method.
2652      * @param[in] method The static method to call.
2653      * @param[out] result A pointer to store the boolean result.
2654      * @param[in] args A `va_list` of arguments to pass to the method.
2655      * @return Returns a status code of type `ani_status` indicating success or failure.
2656      */
2657     ani_status (*Class_CallStaticMethod_Boolean_V)(ani_env *env, ani_class cls, ani_static_method method,
2658                                                    ani_boolean *result, va_list args);
2659 
2660     /**
2661      * @brief Calls a static method with a character return type.
2662      *
2663      * This function calls the specified static method of a class and retrieves a character result using variadic
2664      * arguments.
2665      *
2666      * @param[in] env A pointer to the environment structure.
2667      * @param[in] cls The class containing the static method.
2668      * @param[in] method The static method to call.
2669      * @param[out] result A pointer to store the character result.
2670      * @param[in] ... Variadic arguments to pass to the method.
2671      * @return Returns a status code of type `ani_status` indicating success or failure.
2672      */
2673     ani_status (*Class_CallStaticMethod_Char)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
2674                                               ...);
2675 
2676     /**
2677      * @brief Calls a static method with a character return type (array-based).
2678      *
2679      * This function calls the specified static method of a class and retrieves a character result using arguments from
2680      * an array.
2681      *
2682      * @param[in] env A pointer to the environment structure.
2683      * @param[in] cls The class containing the static method.
2684      * @param[in] method The static method to call.
2685      * @param[out] result A pointer to store the character result.
2686      * @param[in] args An array of arguments to pass to the method.
2687      * @return Returns a status code of type `ani_status` indicating success or failure.
2688      */
2689     ani_status (*Class_CallStaticMethod_Char_A)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
2690                                                 const ani_value *args);
2691 
2692     /**
2693      * @brief Calls a static method with a character return type (variadic arguments).
2694      *
2695      * This function calls the specified static method of a class and retrieves a character result using a `va_list`.
2696      *
2697      * @param[in] env A pointer to the environment structure.
2698      * @param[in] cls The class containing the static method.
2699      * @param[in] method The static method to call.
2700      * @param[out] result A pointer to store the character result.
2701      * @param[in] args A `va_list` of arguments to pass to the method.
2702      * @return Returns a status code of type `ani_status` indicating success or failure.
2703      */
2704     ani_status (*Class_CallStaticMethod_Char_V)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result,
2705                                                 va_list args);
2706 
2707     /**
2708      * @brief Calls a static method with a byte return type.
2709      *
2710      * This function calls the specified static method of a class and retrieves a byte result using variadic arguments.
2711      *
2712      * @param[in] env A pointer to the environment structure.
2713      * @param[in] cls The class containing the static method.
2714      * @param[in] method The static method to call.
2715      * @param[out] result A pointer to store the byte result.
2716      * @param[in] ... Variadic arguments to pass to the method.
2717      * @return Returns a status code of type `ani_status` indicating success or failure.
2718      */
2719     ani_status (*Class_CallStaticMethod_Byte)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
2720                                               ...);
2721 
2722     /**
2723      * @brief Calls a static method with a byte return type (array-based).
2724      *
2725      * This function calls the specified static method of a class and retrieves a byte result using arguments from an
2726      * array.
2727      *
2728      * @param[in] env A pointer to the environment structure.
2729      * @param[in] cls The class containing the static method.
2730      * @param[in] method The static method to call.
2731      * @param[out] result A pointer to store the byte result.
2732      * @param[in] args An array of arguments to pass to the method.
2733      * @return Returns a status code of type `ani_status` indicating success or failure.
2734      */
2735     ani_status (*Class_CallStaticMethod_Byte_A)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
2736                                                 const ani_value *args);
2737 
2738     /**
2739      * @brief Calls a static method with a byte return type (variadic arguments).
2740      *
2741      * This function calls the specified static method of a class and retrieves a byte result using a `va_list`.
2742      *
2743      * @param[in] env A pointer to the environment structure.
2744      * @param[in] cls The class containing the static method.
2745      * @param[in] method The static method to call.
2746      * @param[out] result A pointer to store the byte result.
2747      * @param[in] args A `va_list` of arguments to pass to the method.
2748      * @return Returns a status code of type `ani_status` indicating success or failure.
2749      */
2750     ani_status (*Class_CallStaticMethod_Byte_V)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result,
2751                                                 va_list args);
2752 
2753     /**
2754      * @brief Calls a static method with a short return type.
2755      *
2756      * This function calls the specified static method of a class and retrieves a short result using variadic arguments.
2757      *
2758      * @param[in] env A pointer to the environment structure.
2759      * @param[in] cls The class containing the static method.
2760      * @param[in] method The static method to call.
2761      * @param[out] result A pointer to store the short result.
2762      * @param[in] ... Variadic arguments to pass to the method.
2763      * @return Returns a status code of type `ani_status` indicating success or failure.
2764      */
2765     ani_status (*Class_CallStaticMethod_Short)(ani_env *env, ani_class cls, ani_static_method method, ani_short *result,
2766                                                ...);
2767 
2768     /**
2769      * @brief Calls a static method with a short return type (array-based).
2770      *
2771      * This function calls the specified static method of a class and retrieves a short result using arguments from an
2772      * array.
2773      *
2774      * @param[in] env A pointer to the environment structure.
2775      * @param[in] cls The class containing the static method.
2776      * @param[in] method The static method to call.
2777      * @param[out] result A pointer to store the short result.
2778      * @param[in] args An array of arguments to pass to the method.
2779      * @return Returns a status code of type `ani_status` indicating success or failure.
2780      */
2781     ani_status (*Class_CallStaticMethod_Short_A)(ani_env *env, ani_class cls, ani_static_method method,
2782                                                  ani_short *result, const ani_value *args);
2783 
2784     /**
2785      * @brief Calls a static method with a short return type (variadic arguments).
2786      *
2787      * This function calls the specified static method of a class and retrieves a short result using a `va_list`.
2788      *
2789      * @param[in] env A pointer to the environment structure.
2790      * @param[in] cls The class containing the static method.
2791      * @param[in] method The static method to call.
2792      * @param[out] result A pointer to store the short result.
2793      * @param[in] args A `va_list` of arguments to pass to the method.
2794      * @return Returns a status code of type `ani_status` indicating success or failure.
2795      */
2796     ani_status (*Class_CallStaticMethod_Short_V)(ani_env *env, ani_class cls, ani_static_method method,
2797                                                  ani_short *result, va_list args);
2798 
2799     /**
2800      * @brief Calls a static method with an integer return type.
2801      *
2802      * This function calls the specified static method of a class and retrieves an integer result using variadic
2803      * arguments.
2804      *
2805      * @param[in] env A pointer to the environment structure.
2806      * @param[in] cls The class containing the static method.
2807      * @param[in] method The static method to call.
2808      * @param[out] result A pointer to store the integer result.
2809      * @param[in] ... Variadic arguments to pass to the method.
2810      * @return Returns a status code of type `ani_status` indicating success or failure.
2811      */
2812     ani_status (*Class_CallStaticMethod_Int)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
2813                                              ...);
2814 
2815     /**
2816      * @brief Calls a static method with an integer return type (array-based).
2817      *
2818      * This function calls the specified static method of a class and retrieves an integer result using arguments from
2819      * an array.
2820      *
2821      * @param[in] env A pointer to the environment structure.
2822      * @param[in] cls The class containing the static method.
2823      * @param[in] method The static method to call.
2824      * @param[out] result A pointer to store the integer result.
2825      * @param[in] args An array of arguments to pass to the method.
2826      * @return Returns a status code of type `ani_status` indicating success or failure.
2827      */
2828     ani_status (*Class_CallStaticMethod_Int_A)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
2829                                                const ani_value *args);
2830 
2831     /**
2832      * @brief Calls a static method with an integer return type (variadic arguments).
2833      *
2834      * This function calls the specified static method of a class and retrieves an integer result using a `va_list`.
2835      *
2836      * @param[in] env A pointer to the environment structure.
2837      * @param[in] cls The class containing the static method.
2838      * @param[in] method The static method to call.
2839      * @param[out] result A pointer to store the integer result.
2840      * @param[in] args A `va_list` of arguments to pass to the method.
2841      * @return Returns a status code of type `ani_status` indicating success or failure.
2842      */
2843     ani_status (*Class_CallStaticMethod_Int_V)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result,
2844                                                va_list args);
2845 
2846     /**
2847      * @brief Calls a static method with a long return type.
2848      *
2849      * This function calls the specified static method of a class and retrieves a long result using variadic arguments.
2850      *
2851      * @param[in] env A pointer to the environment structure.
2852      * @param[in] cls The class containing the static method.
2853      * @param[in] method The static method to call.
2854      * @param[out] result A pointer to store the long result.
2855      * @param[in] ... Variadic arguments to pass to the method.
2856      * @return Returns a status code of type `ani_status` indicating success or failure.
2857      */
2858     ani_status (*Class_CallStaticMethod_Long)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
2859                                               ...);
2860 
2861     /**
2862      * @brief Calls a static method with a long return type (array-based).
2863      *
2864      * This function calls the specified static method of a class and retrieves a long result using arguments from an
2865      * array.
2866      *
2867      * @param[in] env A pointer to the environment structure.
2868      * @param[in] cls The class containing the static method.
2869      * @param[in] method The static method to call.
2870      * @param[out] result A pointer to store the long result.
2871      * @param[in] args An array of arguments to pass to the method.
2872      * @return Returns a status code of type `ani_status` indicating success or failure.
2873      */
2874     ani_status (*Class_CallStaticMethod_Long_A)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
2875                                                 const ani_value *args);
2876 
2877     /**
2878      * @brief Calls a static method with a long return type (variadic arguments).
2879      *
2880      * This function calls the specified static method of a class and retrieves a long result using a `va_list`.
2881      *
2882      * @param[in] env A pointer to the environment structure.
2883      * @param[in] cls The class containing the static method.
2884      * @param[in] method The static method to call.
2885      * @param[out] result A pointer to store the long result.
2886      * @param[in] args A `va_list` of arguments to pass to the method.
2887      * @return Returns a status code of type `ani_status` indicating success or failure.
2888      */
2889     ani_status (*Class_CallStaticMethod_Long_V)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result,
2890                                                 va_list args);
2891 
2892     /**
2893      * @brief Calls a static method with a float return type.
2894      *
2895      * This function calls the specified static method of a class and retrieves a float result using variadic arguments.
2896      *
2897      * @param[in] env A pointer to the environment structure.
2898      * @param[in] cls The class containing the static method.
2899      * @param[in] method The static method to call.
2900      * @param[out] result A pointer to store the float result.
2901      * @param[in] ... Variadic arguments to pass to the method.
2902      * @return Returns a status code of type `ani_status` indicating success or failure.
2903      */
2904     ani_status (*Class_CallStaticMethod_Float)(ani_env *env, ani_class cls, ani_static_method method, ani_float *result,
2905                                                ...);
2906 
2907     /**
2908      * @brief Calls a static method with a float return type (array-based).
2909      *
2910      * This function calls the specified static method of a class and retrieves a float result using arguments from an
2911      * array.
2912      *
2913      * @param[in] env A pointer to the environment structure.
2914      * @param[in] cls The class containing the static method.
2915      * @param[in] method The static method to call.
2916      * @param[out] result A pointer to store the float result.
2917      * @param[in] args An array of arguments to pass to the method.
2918      * @return Returns a status code of type `ani_status` indicating success or failure.
2919      */
2920     ani_status (*Class_CallStaticMethod_Float_A)(ani_env *env, ani_class cls, ani_static_method method,
2921                                                  ani_float *result, const ani_value *args);
2922 
2923     /**
2924      * @brief Calls a static method with a float return type (variadic arguments).
2925      *
2926      * This function calls the specified static method of a class and retrieves a float result using a `va_list`.
2927      *
2928      * @param[in] env A pointer to the environment structure.
2929      * @param[in] cls The class containing the static method.
2930      * @param[in] method The static method to call.
2931      * @param[out] result A pointer to store the float result.
2932      * @param[in] args A `va_list` of arguments to pass to the method.
2933      * @return Returns a status code of type `ani_status` indicating success or failure.
2934      */
2935     ani_status (*Class_CallStaticMethod_Float_V)(ani_env *env, ani_class cls, ani_static_method method,
2936                                                  ani_float *result, va_list args);
2937 
2938     /**
2939      * @brief Calls a static method with a double return type.
2940      *
2941      * This function calls the specified static method of a class and retrieves a double result using variadic
2942      * arguments.
2943      *
2944      * @param[in] env A pointer to the environment structure.
2945      * @param[in] cls The class containing the static method.
2946      * @param[in] method The static method to call.
2947      * @param[out] result A pointer to store the double result.
2948      * @param[in] ... Variadic arguments to pass to the method.
2949      * @return Returns a status code of type `ani_status` indicating success or failure.
2950      */
2951     ani_status (*Class_CallStaticMethod_Double)(ani_env *env, ani_class cls, ani_static_method method,
2952                                                 ani_double *result, ...);
2953 
2954     /**
2955      * @brief Calls a static method with a double return type (array-based).
2956      *
2957      * This function calls the specified static method of a class and retrieves a double result using arguments from an
2958      * array.
2959      *
2960      * @param[in] env A pointer to the environment structure.
2961      * @param[in] cls The class containing the static method.
2962      * @param[in] method The static method to call.
2963      * @param[out] result A pointer to store the double result.
2964      * @param[in] args An array of arguments to pass to the method.
2965      * @return Returns a status code of type `ani_status` indicating success or failure.
2966      */
2967     ani_status (*Class_CallStaticMethod_Double_A)(ani_env *env, ani_class cls, ani_static_method method,
2968                                                   ani_double *result, const ani_value *args);
2969 
2970     /**
2971      * @brief Calls a static method with a double return type (variadic arguments).
2972      *
2973      * This function calls the specified static method of a class and retrieves a double result using a `va_list`.
2974      *
2975      * @param[in] env A pointer to the environment structure.
2976      * @param[in] cls The class containing the static method.
2977      * @param[in] method The static method to call.
2978      * @param[out] result A pointer to store the double result.
2979      * @param[in] args A `va_list` of arguments to pass to the method.
2980      * @return Returns a status code of type `ani_status` indicating success or failure.
2981      */
2982     ani_status (*Class_CallStaticMethod_Double_V)(ani_env *env, ani_class cls, ani_static_method method,
2983                                                   ani_double *result, va_list args);
2984 
2985     /**
2986      * @brief Calls a static method with a reference return type.
2987      *
2988      * This function calls the specified static method of a class and retrieves a reference result using variadic
2989      * arguments.
2990      *
2991      * @param[in] env A pointer to the environment structure.
2992      * @param[in] cls The class containing the static method.
2993      * @param[in] method The static method to call.
2994      * @param[out] result A pointer to store the reference result.
2995      * @param[in] ... Variadic arguments to pass to the method.
2996      * @return Returns a status code of type `ani_status` indicating success or failure.
2997      */
2998     ani_status (*Class_CallStaticMethod_Ref)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
2999                                              ...);
3000 
3001     /**
3002      * @brief Calls a static method with a reference return type (array-based).
3003      *
3004      * This function calls the specified static method of a class and retrieves a reference result using arguments from
3005      * an array.
3006      *
3007      * @param[in] env A pointer to the environment structure.
3008      * @param[in] cls The class containing the static method.
3009      * @param[in] method The static method to call.
3010      * @param[out] result A pointer to store the reference result.
3011      * @param[in] args An array of arguments to pass to the method.
3012      * @return Returns a status code of type `ani_status` indicating success or failure.
3013      */
3014     ani_status (*Class_CallStaticMethod_Ref_A)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3015                                                const ani_value *args);
3016 
3017     /**
3018      * @brief Calls a static method with a reference return type (variadic arguments).
3019      *
3020      * This function calls the specified static method of a class and retrieves a reference result using a `va_list`.
3021      *
3022      * @param[in] env A pointer to the environment structure.
3023      * @param[in] cls The class containing the static method.
3024      * @param[in] method The static method to call.
3025      * @param[out] result A pointer to store the reference result.
3026      * @param[in] args A `va_list` of arguments to pass to the method.
3027      * @return Returns a status code of type `ani_status` indicating success or failure.
3028      */
3029     ani_status (*Class_CallStaticMethod_Ref_V)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result,
3030                                                va_list args);
3031 
3032     /**
3033      * @brief Calls a static method with no return value.
3034      *
3035      * This function calls the specified static method of a class using variadic arguments. The method does not return a
3036      * value.
3037      *
3038      * @param[in] env A pointer to the environment structure.
3039      * @param[in] cls The class containing the static method.
3040      * @param[in] method The static method to call.
3041      * @param[in] ... Variadic arguments to pass to the method.
3042      * @return Returns a status code of type `ani_status` indicating success or failure.
3043      */
3044     ani_status (*Class_CallStaticMethod_Void)(ani_env *env, ani_class cls, ani_static_method method, ...);
3045 
3046     /**
3047      * @brief Calls a static method with no return value (array-based).
3048      *
3049      * This function calls the specified static method of a class using arguments from an array. The method does not
3050      * return a value.
3051      *
3052      * @param[in] env A pointer to the environment structure.
3053      * @param[in] cls The class containing the static method.
3054      * @param[in] method The static method to call.
3055      * @param[in] args An array of arguments to pass to the method.
3056      * @return Returns a status code of type `ani_status` indicating success or failure.
3057      */
3058     ani_status (*Class_CallStaticMethod_Void_A)(ani_env *env, ani_class cls, ani_static_method method,
3059                                                 const ani_value *args);
3060 
3061     /**
3062      * @brief Calls a static method with no return value (variadic arguments).
3063      *
3064      * This function calls the specified static method of a class using a `va_list`. The method does not return a value.
3065      *
3066      * @param[in] env A pointer to the environment structure.
3067      * @param[in] cls The class containing the static method.
3068      * @param[in] method The static method to call.
3069      * @param[in] args A `va_list` of arguments to pass to the method.
3070      * @return Returns a status code of type `ani_status` indicating success or failure.
3071      */
3072     ani_status (*Class_CallStaticMethod_Void_V)(ani_env *env, ani_class cls, ani_static_method method, va_list args);
3073 
3074     /**
3075      * @brief Calls a static method by name with a boolean return type.
3076      *
3077      * This function calls the specified static method of a class by its name and retrieves a boolean result using
3078      * variadic arguments.
3079      *
3080      * @param[in] env A pointer to the environment structure.
3081      * @param[in] cls The class containing the static method.
3082      * @param[in] name The name of the static method to call.
3083      * @param[in] signature The signature of the static method to call.
3084      * @param[out] result A pointer to store the boolean result.
3085      * @param[in] ... Variadic arguments to pass to the method.
3086      * @return Returns a status code of type `ani_status` indicating success or failure.
3087      */
3088     ani_status (*Class_CallStaticMethodByName_Boolean)(ani_env *env, ani_class cls, const char *name,
3089                                                        const char *signature, ani_boolean *result, ...);
3090 
3091     /**
3092      * @brief Calls a static method by name with a boolean return type (array-based).
3093      *
3094      * This function calls the specified static method of a class by its name and retrieves a boolean result using
3095      * arguments from an array.
3096      *
3097      * @param[in] env A pointer to the environment structure.
3098      * @param[in] cls The class containing the static method.
3099      * @param[in] name The name of the static method to call.
3100      * @param[in] signature The signature of the static method to call.
3101      * @param[out] result A pointer to store the boolean result.
3102      * @param[in] args An array of arguments to pass to the method.
3103      * @return Returns a status code of type `ani_status` indicating success or failure.
3104      */
3105     ani_status (*Class_CallStaticMethodByName_Boolean_A)(ani_env *env, ani_class cls, const char *name,
3106                                                          const char *signature, ani_boolean *result,
3107                                                          const ani_value *args);
3108 
3109     /**
3110      * @brief Calls a static method by name with a boolean return type (variadic arguments).
3111      *
3112      * This function calls the specified static method of a class by its name and retrieves a boolean result using a
3113      * `va_list`.
3114      *
3115      * @param[in] env A pointer to the environment structure.
3116      * @param[in] cls The class containing the static method.
3117      * @param[in] name The name of the static method to call.
3118      * @param[in] signature The signature of the static method to call.
3119      * @param[out] result A pointer to store the boolean result.
3120      * @param[in] args A `va_list` of arguments to pass to the method.
3121      * @return Returns a status code of type `ani_status` indicating success or failure.
3122      */
3123     ani_status (*Class_CallStaticMethodByName_Boolean_V)(ani_env *env, ani_class cls, const char *name,
3124                                                          const char *signature, ani_boolean *result, va_list args);
3125 
3126     /**
3127      * @brief Calls a static method by name with a char return type.
3128      *
3129      * This function calls the specified static method of a class by its name and retrieves a char result using variadic
3130      * arguments.
3131      *
3132      * @param[in] env A pointer to the environment structure.
3133      * @param[in] cls The class containing the static method.
3134      * @param[in] name The name of the static method to call.
3135      * @param[in] signature The signature of the static method to call.
3136      * @param[out] result A pointer to store the char result.
3137      * @param[in] ... Variadic arguments to pass to the method.
3138      * @return Returns a status code of type `ani_status` indicating success or failure.
3139      */
3140     ani_status (*Class_CallStaticMethodByName_Char)(ani_env *env, ani_class cls, const char *name,
3141                                                     const char *signature, ani_char *result, ...);
3142 
3143     /**
3144      * @brief Calls a static method by name with a char return type (array-based).
3145      *
3146      * This function calls the specified static method of a class by its name and retrieves a char result using
3147      * arguments from an array.
3148      *
3149      * @param[in] env A pointer to the environment structure.
3150      * @param[in] cls The class containing the static method.
3151      * @param[in] name The name of the static method to call.
3152      * @param[in] signature The signature of the static method to call.
3153      * @param[out] result A pointer to store the char result.
3154      * @param[in] args An array of arguments to pass to the method.
3155      * @return Returns a status code of type `ani_status` indicating success or failure.
3156      */
3157     ani_status (*Class_CallStaticMethodByName_Char_A)(ani_env *env, ani_class cls, const char *name,
3158                                                       const char *signature, ani_char *result, const ani_value *args);
3159 
3160     /**
3161      * @brief Calls a static method by name with a char return type (variadic arguments).
3162      *
3163      * This function calls the specified static method of a class by its name and retrieves a char result using a
3164      * `va_list`.
3165      *
3166      * @param[in] env A pointer to the environment structure.
3167      * @param[in] cls The class containing the static method.
3168      * @param[in] name The name of the static method to call.
3169      * @param[in] signature The signature of the static method to call.
3170      * @param[out] result A pointer to store the char result.
3171      * @param[in] args A `va_list` of arguments to pass to the method.
3172      * @return Returns a status code of type `ani_status` indicating success or failure.
3173      */
3174     ani_status (*Class_CallStaticMethodByName_Char_V)(ani_env *env, ani_class cls, const char *name,
3175                                                       const char *signature, ani_char *result, va_list args);
3176 
3177     /**
3178      * @brief Calls a static method by name with a byte return type.
3179      *
3180      * This function calls the specified static method of a class by its name and retrieves a byte result using variadic
3181      * arguments.
3182      *
3183      * @param[in] env A pointer to the environment structure.
3184      * @param[in] cls The class containing the static method.
3185      * @param[in] name The name of the static method to call.
3186      * @param[in] signature The signature of the static method to call.
3187      * @param[out] result A pointer to store the byte result.
3188      * @param[in] ... Variadic arguments to pass to the method.
3189      * @return Returns a status code of type `ani_status` indicating success or failure.
3190      */
3191     ani_status (*Class_CallStaticMethodByName_Byte)(ani_env *env, ani_class cls, const char *name,
3192                                                     const char *signature, ani_byte *result, ...);
3193 
3194     /**
3195      * @brief Calls a static method by name with a byte return type (array-based).
3196      *
3197      * This function calls the specified static method of a class by its name and retrieves a byte result using
3198      * arguments from an array.
3199      *
3200      * @param[in] env A pointer to the environment structure.
3201      * @param[in] cls The class containing the static method.
3202      * @param[in] name The name of the static method to call.
3203      * @param[in] signature The signature of the static method to call.
3204      * @param[out] result A pointer to store the byte result.
3205      * @param[in] args An array of arguments to pass to the method.
3206      * @return Returns a status code of type `ani_status` indicating success or failure.
3207      */
3208     ani_status (*Class_CallStaticMethodByName_Byte_A)(ani_env *env, ani_class cls, const char *name,
3209                                                       const char *signature, ani_byte *result, const ani_value *args);
3210 
3211     /**
3212      * @brief Calls a static method by name with a byte return type (variadic arguments).
3213      *
3214      * This function calls the specified static method of a class by its name and retrieves a byte result using a
3215      * `va_list`.
3216      *
3217      * @param[in] env A pointer to the environment structure.
3218      * @param[in] cls The class containing the static method.
3219      * @param[in] name The name of the static method to call.
3220      * @param[in] signature The signature of the static method to call.
3221      * @param[out] result A pointer to store the byte result.
3222      * @param[in] args A `va_list` of arguments to pass to the method.
3223      * @return Returns a status code of type `ani_status` indicating success or failure.
3224      */
3225     ani_status (*Class_CallStaticMethodByName_Byte_V)(ani_env *env, ani_class cls, const char *name,
3226                                                       const char *signature, ani_byte *result, va_list args);
3227 
3228     /**
3229      * @brief Calls a static method by name with a short return type.
3230      *
3231      * This function calls the specified static method of a class by its name and retrieves a short result using
3232      * variadic arguments.
3233      *
3234      * @param[in] env A pointer to the environment structure.
3235      * @param[in] cls The class containing the static method.
3236      * @param[in] name The name of the static method to call.
3237      * @param[in] signature The signature of the static method to call.
3238      * @param[out] result A pointer to store the short result.
3239      * @param[in] ... Variadic arguments to pass to the method.
3240      * @return Returns a status code of type `ani_status` indicating success or failure.
3241      */
3242     ani_status (*Class_CallStaticMethodByName_Short)(ani_env *env, ani_class cls, const char *name,
3243                                                      const char *signature, ani_short *result, ...);
3244 
3245     /**
3246      * @brief Calls a static method by name with a short return type (array-based).
3247      *
3248      * This function calls the specified static method of a class by its name and retrieves a short result using
3249      * arguments from an array.
3250      *
3251      * @param[in] env A pointer to the environment structure.
3252      * @param[in] cls The class containing the static method.
3253      * @param[in] name The name of the static method to call.
3254      * @param[in] signature The signature of the static method to call.
3255      * @param[out] result A pointer to store the short result.
3256      * @param[in] args An array of arguments to pass to the method.
3257      * @return Returns a status code of type `ani_status` indicating success or failure.
3258      */
3259     ani_status (*Class_CallStaticMethodByName_Short_A)(ani_env *env, ani_class cls, const char *name,
3260                                                        const char *signature, ani_short *result, const ani_value *args);
3261 
3262     /**
3263      * @brief Calls a static method by name with a short return type (variadic arguments).
3264      *
3265      * This function calls the specified static method of a class by its name and retrieves a short result using a
3266      * `va_list`.
3267      *
3268      * @param[in] env A pointer to the environment structure.
3269      * @param[in] cls The class containing the static method.
3270      * @param[in] name The name of the static method to call.
3271      * @param[in] signature The signature of the static method to call.
3272      * @param[out] result A pointer to store the short result.
3273      * @param[in] args A `va_list` of arguments to pass to the method.
3274      * @return Returns a status code of type `ani_status` indicating success or failure.
3275      */
3276     ani_status (*Class_CallStaticMethodByName_Short_V)(ani_env *env, ani_class cls, const char *name,
3277                                                        const char *signature, ani_short *result, va_list args);
3278 
3279     /**
3280      * @brief Calls a static method by name with a integer return type.
3281      *
3282      * This function calls the specified static method of a class by its name and retrieves a integer result using
3283      * variadic arguments.
3284      *
3285      * @param[in] env A pointer to the environment structure.
3286      * @param[in] cls The class containing the static method.
3287      * @param[in] name The name of the static method to call.
3288      * @param[in] signature The signature of the static method to call.
3289      * @param[out] result A pointer to store the integer result.
3290      * @param[in] ... Variadic arguments to pass to the method.
3291      * @return Returns a status code of type `ani_status` indicating success or failure.
3292      */
3293     ani_status (*Class_CallStaticMethodByName_Int)(ani_env *env, ani_class cls, const char *name, const char *signature,
3294                                                    ani_int *result, ...);
3295 
3296     /**
3297      * @brief Calls a static method by name with a integer return type (array-based).
3298      *
3299      * This function calls the specified static method of a class by its name and retrieves a integer result using
3300      * arguments from an array.
3301      *
3302      * @param[in] env A pointer to the environment structure.
3303      * @param[in] cls The class containing the static method.
3304      * @param[in] name The name of the static method to call.
3305      * @param[in] signature The signature of the static method to call.
3306      * @param[out] result A pointer to store the integer result.
3307      * @param[in] args An array of arguments to pass to the method.
3308      * @return Returns a status code of type `ani_status` indicating success or failure.
3309      */
3310     ani_status (*Class_CallStaticMethodByName_Int_A)(ani_env *env, ani_class cls, const char *name,
3311                                                      const char *signature, ani_int *result, const ani_value *args);
3312 
3313     /**
3314      * @brief Calls a static method by name with a integer return type (variadic arguments).
3315      *
3316      * This function calls the specified static method of a class by its name and retrieves a integer result using a
3317      * `va_list`.
3318      *
3319      * @param[in] env A pointer to the environment structure.
3320      * @param[in] cls The class containing the static method.
3321      * @param[in] name The name of the static method to call.
3322      * @param[in] signature The signature of the static method to call.
3323      * @param[out] result A pointer to store the integer result.
3324      * @param[in] args A `va_list` of arguments to pass to the method.
3325      * @return Returns a status code of type `ani_status` indicating success or failure.
3326      */
3327     ani_status (*Class_CallStaticMethodByName_Int_V)(ani_env *env, ani_class cls, const char *name,
3328                                                      const char *signature, ani_int *result, va_list args);
3329 
3330     /**
3331      * @brief Calls a static method by name with a long return type.
3332      *
3333      * This function calls the specified static method of a class by its name and retrieves a long result using variadic
3334      * arguments.
3335      *
3336      * @param[in] env A pointer to the environment structure.
3337      * @param[in] cls The class containing the static method.
3338      * @param[in] name The name of the static method to call.
3339      * @param[in] signature The signature of the static method to call.
3340      * @param[out] result A pointer to store the long result.
3341      * @param[in] ... Variadic arguments to pass to the method.
3342      * @return Returns a status code of type `ani_status` indicating success or failure.
3343      */
3344     ani_status (*Class_CallStaticMethodByName_Long)(ani_env *env, ani_class cls, const char *name,
3345                                                     const char *signature, ani_long *result, ...);
3346 
3347     /**
3348      * @brief Calls a static method by name with a long return type (array-based).
3349      *
3350      * This function calls the specified static method of a class by its name and retrieves a long result using
3351      * arguments from an array.
3352      *
3353      * @param[in] env A pointer to the environment structure.
3354      * @param[in] cls The class containing the static method.
3355      * @param[in] name The name of the static method to call.
3356      * @param[in] signature The signature of the static method to call.
3357      * @param[out] result A pointer to store the long result.
3358      * @param[in] args An array of arguments to pass to the method.
3359      * @return Returns a status code of type `ani_status` indicating success or failure.
3360      */
3361     ani_status (*Class_CallStaticMethodByName_Long_A)(ani_env *env, ani_class cls, const char *name,
3362                                                       const char *signature, ani_long *result, const ani_value *args);
3363 
3364     /**
3365      * @brief Calls a static method by name with a long return type (variadic arguments).
3366      *
3367      * This function calls the specified static method of a class by its name and retrieves a long result using a
3368      * `va_list`.
3369      *
3370      * @param[in] env A pointer to the environment structure.
3371      * @param[in] cls The class containing the static method.
3372      * @param[in] name The name of the static method to call.
3373      * @param[in] signature The signature of the static method to call.
3374      * @param[out] result A pointer to store the long result.
3375      * @param[in] args A `va_list` of arguments to pass to the method.
3376      * @return Returns a status code of type `ani_status` indicating success or failure.
3377      */
3378     ani_status (*Class_CallStaticMethodByName_Long_V)(ani_env *env, ani_class cls, const char *name,
3379                                                       const char *signature, ani_long *result, va_list args);
3380 
3381     /**
3382      * @brief Calls a static method by name with a float return type.
3383      *
3384      * This function calls the specified static method of a class by its name and retrieves a float result using
3385      * variadic arguments.
3386      *
3387      * @param[in] env A pointer to the environment structure.
3388      * @param[in] cls The class containing the static method.
3389      * @param[in] name The name of the static method to call.
3390      * @param[in] signature The signature of the static method to call.
3391      * @param[out] result A pointer to store the float result.
3392      * @param[in] ... Variadic arguments to pass to the method.
3393      * @return Returns a status code of type `ani_status` indicating success or failure.
3394      */
3395     ani_status (*Class_CallStaticMethodByName_Float)(ani_env *env, ani_class cls, const char *name,
3396                                                      const char *signature, ani_float *result, ...);
3397 
3398     /**
3399      * @brief Calls a static method by name with a float return type (array-based).
3400      *
3401      * This function calls the specified static method of a class by its name and retrieves a float result using
3402      * arguments from an array.
3403      *
3404      * @param[in] env A pointer to the environment structure.
3405      * @param[in] cls The class containing the static method.
3406      * @param[in] name The name of the static method to call.
3407      * @param[in] signature The signature of the static method to call.
3408      * @param[out] result A pointer to store the float result.
3409      * @param[in] args An array of arguments to pass to the method.
3410      * @return Returns a status code of type `ani_status` indicating success or failure.
3411      */
3412     ani_status (*Class_CallStaticMethodByName_Float_A)(ani_env *env, ani_class cls, const char *name,
3413                                                        const char *signature, ani_float *result, const ani_value *args);
3414 
3415     /**
3416      * @brief Calls a static method by name with a float return type (variadic arguments).
3417      *
3418      * This function calls the specified static method of a class by its name and retrieves a float result using a
3419      * `va_list`.
3420      *
3421      * @param[in] env A pointer to the environment structure.
3422      * @param[in] cls The class containing the static method.
3423      * @param[in] name The name of the static method to call.
3424      * @param[in] signature The signature of the static method to call.
3425      * @param[out] result A pointer to store the float result.
3426      * @param[in] args A `va_list` of arguments to pass to the method.
3427      * @return Returns a status code of type `ani_status` indicating success or failure.
3428      */
3429     ani_status (*Class_CallStaticMethodByName_Float_V)(ani_env *env, ani_class cls, const char *name,
3430                                                        const char *signature, ani_float *result, va_list args);
3431 
3432     /**
3433      * @brief Calls a static method by name with a double return type.
3434      *
3435      * This function calls the specified static method of a class by its name and retrieves a double result using
3436      * variadic arguments.
3437      *
3438      * @param[in] env A pointer to the environment structure.
3439      * @param[in] cls The class containing the static method.
3440      * @param[in] name The name of the static method to call.
3441      * @param[in] signature The signature of the static method to call.
3442      * @param[out] result A pointer to store the double result.
3443      * @param[in] ... Variadic arguments to pass to the method.
3444      * @return Returns a status code of type `ani_status` indicating success or failure.
3445      */
3446     ani_status (*Class_CallStaticMethodByName_Double)(ani_env *env, ani_class cls, const char *name,
3447                                                       const char *signature, ani_double *result, ...);
3448 
3449     /**
3450      * @brief Calls a static method by name with a double return type (array-based).
3451      *
3452      * This function calls the specified static method of a class by its name and retrieves a double result using
3453      * arguments from an array.
3454      *
3455      * @param[in] env A pointer to the environment structure.
3456      * @param[in] cls The class containing the static method.
3457      * @param[in] name The name of the static method to call.
3458      * @param[in] signature The signature of the static method to call.
3459      * @param[out] result A pointer to store the double result.
3460      * @param[in] args An array of arguments to pass to the method.
3461      * @return Returns a status code of type `ani_status` indicating success or failure.
3462      */
3463     ani_status (*Class_CallStaticMethodByName_Double_A)(ani_env *env, ani_class cls, const char *name,
3464                                                         const char *signature, ani_double *result,
3465                                                         const ani_value *args);
3466 
3467     /**
3468      * @brief Calls a static method by name with a double return type (variadic arguments).
3469      *
3470      * This function calls the specified static method of a class by its name and retrieves a double result using a
3471      * `va_list`.
3472      *
3473      * @param[in] env A pointer to the environment structure.
3474      * @param[in] cls The class containing the static method.
3475      * @param[in] name The name of the static method to call.
3476      * @param[in] signature The signature of the static method to call.
3477      * @param[out] result A pointer to store the double result.
3478      * @param[in] args A `va_list` of arguments to pass to the method.
3479      * @return Returns a status code of type `ani_status` indicating success or failure.
3480      */
3481     ani_status (*Class_CallStaticMethodByName_Double_V)(ani_env *env, ani_class cls, const char *name,
3482                                                         const char *signature, ani_double *result, va_list args);
3483 
3484     /**
3485      * @brief Calls a static method by name with a reference return type.
3486      *
3487      * This function calls the specified static method of a class by its name and retrieves a reference result using
3488      * variadic arguments.
3489      *
3490      * @param[in] env A pointer to the environment structure.
3491      * @param[in] cls The class containing the static method.
3492      * @param[in] name The name of the static method to call.
3493      * @param[in] signature The signature of the static method to call.
3494      * @param[out] result A pointer to store the reference result.
3495      * @param[in] ... Variadic arguments to pass to the method.
3496      * @return Returns a status code of type `ani_status` indicating success or failure.
3497      */
3498     ani_status (*Class_CallStaticMethodByName_Ref)(ani_env *env, ani_class cls, const char *name, const char *signature,
3499                                                    ani_ref *result, ...);
3500 
3501     /**
3502      * @brief Calls a static method by name with a reference return type (array-based).
3503      *
3504      * This function calls the specified static method of a class by its name and retrieves a reference result using
3505      * arguments from an array.
3506      *
3507      * @param[in] env A pointer to the environment structure.
3508      * @param[in] cls The class containing the static method.
3509      * @param[in] name The name of the static method to call.
3510      * @param[in] signature The signature of the static method to call.
3511      * @param[out] result A pointer to store the reference result.
3512      * @param[in] args An array of arguments to pass to the method.
3513      * @return Returns a status code of type `ani_status` indicating success or failure.
3514      */
3515     ani_status (*Class_CallStaticMethodByName_Ref_A)(ani_env *env, ani_class cls, const char *name,
3516                                                      const char *signature, ani_ref *result, const ani_value *args);
3517 
3518     /**
3519      * @brief Calls a static method by name with a reference return type (variadic arguments).
3520      *
3521      * This function calls the specified static method of a class by its name and retrieves a reference result using a
3522      * `va_list`.
3523      *
3524      * @param[in] env A pointer to the environment structure.
3525      * @param[in] cls The class containing the static method.
3526      * @param[in] name The name of the static method to call.
3527      * @param[in] signature The signature of the static method to call.
3528      * @param[out] result A pointer to store the reference result.
3529      * @param[in] args A `va_list` of arguments to pass to the method.
3530      * @return Returns a status code of type `ani_status` indicating success or failure.
3531      */
3532     ani_status (*Class_CallStaticMethodByName_Ref_V)(ani_env *env, ani_class cls, const char *name,
3533                                                      const char *signature, ani_ref *result, va_list args);
3534 
3535     /**
3536      * @brief Calls a static method by name with no return value.
3537      *
3538      * This function calls the specified static method of a class by its name using variadic arguments. The method does
3539      * not return a value.
3540      *
3541      * @param[in] env A pointer to the environment structure.
3542      * @param[in] cls The class containing the static method.
3543      * @param[in] name The name of the static method to call.
3544      * @param[in] signature The signature of the static method to call.
3545      * @param[in] ... Variadic arguments to pass to the method.
3546      * @return Returns a status code of type `ani_status` indicating success or failure.
3547      */
3548     ani_status (*Class_CallStaticMethodByName_Void)(ani_env *env, ani_class cls, const char *name,
3549                                                     const char *signature, ...);
3550 
3551     /**
3552      * @brief Calls a static method by name with no return value (array-based).
3553      *
3554      * This function calls the specified static method of a class by its name using arguments from an array. The method
3555      * does not return a value.
3556      *
3557      * @param[in] env A pointer to the environment structure.
3558      * @param[in] cls The class containing the static method.
3559      * @param[in] name The name of the static method to call.
3560      * @param[in] signature The signature of the static method to call.
3561      * @param[in] args An array of arguments to pass to the method.
3562      * @return Returns a status code of type `ani_status` indicating success or failure.
3563      */
3564     ani_status (*Class_CallStaticMethodByName_Void_A)(ani_env *env, ani_class cls, const char *name,
3565                                                       const char *signature, const ani_value *args);
3566 
3567     /**
3568      * @brief Calls a static method by name with no return value (variadic arguments).
3569      *
3570      * This function calls the specified static method of a class by its name using a `va_list`. The method does not
3571      * return a value.
3572      *
3573      * @param[in] env A pointer to the environment structure.
3574      * @param[in] cls The class containing the static method.
3575      * @param[in] name The name of the static method to call.
3576      * @param[in] signature The signature of the static method to call.
3577      * @param[in] args A `va_list` of arguments to pass to the method.
3578      * @return Returns a status code of type `ani_status` indicating success or failure.
3579      */
3580     ani_status (*Class_CallStaticMethodByName_Void_V)(ani_env *env, ani_class cls, const char *name,
3581                                                       const char *signature, va_list args);
3582 
3583     /**
3584      * @brief Retrieves a boolean value from a field of an object.
3585      *
3586      * This function retrieves the boolean value of the specified field from the given object.
3587      *
3588      * @param[in] env A pointer to the environment structure.
3589      * @param[in] object The object containing the field.
3590      * @param[in] field The field to retrieve the boolean value from.
3591      * @param[out] result A pointer to store the retrieved boolean value.
3592      * @return Returns a status code of type `ani_status` indicating success or failure.
3593      */
3594     ani_status (*Object_GetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean *result);
3595 
3596     /**
3597      * @brief Retrieves a char value from a field of an object.
3598      *
3599      * This function retrieves the char value of the specified field from the given object.
3600      *
3601      * @param[in] env A pointer to the environment structure.
3602      * @param[in] object The object containing the field.
3603      * @param[in] field The field to retrieve the char value from.
3604      * @param[out] result A pointer to store the retrieved char value.
3605      * @return Returns a status code of type `ani_status` indicating success or failure.
3606      */
3607     ani_status (*Object_GetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char *result);
3608 
3609     /**
3610      * @brief Retrieves a byte value from a field of an object.
3611      *
3612      * This function retrieves the byte value of the specified field from the given object.
3613      *
3614      * @param[in] env A pointer to the environment structure.
3615      * @param[in] object The object containing the field.
3616      * @param[in] field The field to retrieve the byte value from.
3617      * @param[out] result A pointer to store the retrieved byte value.
3618      * @return Returns a status code of type `ani_status` indicating success or failure.
3619      */
3620     ani_status (*Object_GetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte *result);
3621 
3622     /**
3623      * @brief Retrieves a short value from a field of an object.
3624      *
3625      * This function retrieves the short value of the specified field from the given object.
3626      *
3627      * @param[in] env A pointer to the environment structure.
3628      * @param[in] object The object containing the field.
3629      * @param[in] field The field to retrieve the short value from.
3630      * @param[out] result A pointer to store the retrieved short value.
3631      * @return Returns a status code of type `ani_status` indicating success or failure.
3632      */
3633     ani_status (*Object_GetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short *result);
3634 
3635     /**
3636      * @brief Retrieves a integer value from a field of an object.
3637      *
3638      * This function retrieves the integer value of the specified field from the given object.
3639      *
3640      * @param[in] env A pointer to the environment structure.
3641      * @param[in] object The object containing the field.
3642      * @param[in] field The field to retrieve the integer value from.
3643      * @param[out] result A pointer to store the retrieved integer value.
3644      * @return Returns a status code of type `ani_status` indicating success or failure.
3645      */
3646     ani_status (*Object_GetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int *result);
3647 
3648     /**
3649      * @brief Retrieves a long value from a field of an object.
3650      *
3651      * This function retrieves the long value of the specified field from the given object.
3652      *
3653      * @param[in] env A pointer to the environment structure.
3654      * @param[in] object The object containing the field.
3655      * @param[in] field The field to retrieve the long value from.
3656      * @param[out] result A pointer to store the retrieved long value.
3657      * @return Returns a status code of type `ani_status` indicating success or failure.
3658      */
3659     ani_status (*Object_GetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long *result);
3660 
3661     /**
3662      * @brief Retrieves a float value from a field of an object.
3663      *
3664      * This function retrieves the float value of the specified field from the given object.
3665      *
3666      * @param[in] env A pointer to the environment structure.
3667      * @param[in] object The object containing the field.
3668      * @param[in] field The field to retrieve the float value from.
3669      * @param[out] result A pointer to store the retrieved float value.
3670      * @return Returns a status code of type `ani_status` indicating success or failure.
3671      */
3672     ani_status (*Object_GetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float *result);
3673 
3674     /**
3675      * @brief Retrieves a double value from a field of an object.
3676      *
3677      * This function retrieves the double value of the specified field from the given object.
3678      *
3679      * @param[in] env A pointer to the environment structure.
3680      * @param[in] object The object containing the field.
3681      * @param[in] field The field to retrieve the double value from.
3682      * @param[out] result A pointer to store the retrieved double value.
3683      * @return Returns a status code of type `ani_status` indicating success or failure.
3684      */
3685     ani_status (*Object_GetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double *result);
3686 
3687     /**
3688      * @brief Retrieves a reference value from a field of an object.
3689      *
3690      * This function retrieves the reference value of the specified field from the given object.
3691      *
3692      * @param[in] env A pointer to the environment structure.
3693      * @param[in] object The object containing the field.
3694      * @param[in] field The field to retrieve the reference value from.
3695      * @param[out] result A pointer to store the retrieved reference value.
3696      * @return Returns a status code of type `ani_status` indicating success or failure.
3697      */
3698     ani_status (*Object_GetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref *result);
3699 
3700     /**
3701      * @brief Sets a boolean value to a field of an object.
3702      *
3703      * This function assigns a boolean value to the specified field of the given object.
3704      *
3705      * @param[in] env A pointer to the environment structure.
3706      * @param[in] object The object containing the field.
3707      * @param[in] field The field to set the boolean value to.
3708      * @param[in] value The boolean value to assign to the field.
3709      * @return Returns a status code of type `ani_status` indicating success or failure.
3710      */
3711     ani_status (*Object_SetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean value);
3712 
3713     /**
3714      * @brief Sets a char value to a field of an object.
3715      *
3716      * This function assigns a char value to the specified field of the given object.
3717      *
3718      * @param[in] env A pointer to the environment structure.
3719      * @param[in] object The object containing the field.
3720      * @param[in] field The field to set the char value to.
3721      * @param[in] value The char value to assign to the field.
3722      * @return Returns a status code of type `ani_status` indicating success or failure.
3723      */
3724     ani_status (*Object_SetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char value);
3725 
3726     /**
3727      * @brief Sets a byte value to a field of an object.
3728      *
3729      * This function assigns a byte value to the specified field of the given object.
3730      *
3731      * @param[in] env A pointer to the environment structure.
3732      * @param[in] object The object containing the field.
3733      * @param[in] field The field to set the byte value to.
3734      * @param[in] value The byte value to assign to the field.
3735      * @return Returns a status code of type `ani_status` indicating success or failure.
3736      */
3737     ani_status (*Object_SetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte value);
3738 
3739     /**
3740      * @brief Sets a short value to a field of an object.
3741      *
3742      * This function assigns a short value to the specified field of the given object.
3743      *
3744      * @param[in] env A pointer to the environment structure.
3745      * @param[in] object The object containing the field.
3746      * @param[in] field The field to set the short value to.
3747      * @param[in] value The short value to assign to the field.
3748      * @return Returns a status code of type `ani_status` indicating success or failure.
3749      */
3750     ani_status (*Object_SetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short value);
3751 
3752     /**
3753      * @brief Sets a integer value to a field of an object.
3754      *
3755      * This function assigns a integer value to the specified field of the given object.
3756      *
3757      * @param[in] env A pointer to the environment structure.
3758      * @param[in] object The object containing the field.
3759      * @param[in] field The field to set the integer value to.
3760      * @param[in] value The integer value to assign to the field.
3761      * @return Returns a status code of type `ani_status` indicating success or failure.
3762      */
3763     ani_status (*Object_SetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int value);
3764 
3765     /**
3766      * @brief Sets a long value to a field of an object.
3767      *
3768      * This function assigns a long value to the specified field of the given object.
3769      *
3770      * @param[in] env A pointer to the environment structure.
3771      * @param[in] object The object containing the field.
3772      * @param[in] field The field to set the long value to.
3773      * @param[in] value The long value to assign to the field.
3774      * @return Returns a status code of type `ani_status` indicating success or failure.
3775      */
3776     ani_status (*Object_SetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long value);
3777 
3778     /**
3779      * @brief Sets a float value to a field of an object.
3780      *
3781      * This function assigns a float value to the specified field of the given object.
3782      *
3783      * @param[in] env A pointer to the environment structure.
3784      * @param[in] object The object containing the field.
3785      * @param[in] field The field to set the float value to.
3786      * @param[in] value The float value to assign to the field.
3787      * @return Returns a status code of type `ani_status` indicating success or failure.
3788      */
3789     ani_status (*Object_SetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float value);
3790 
3791     /**
3792      * @brief Sets a double value to a field of an object.
3793      *
3794      * This function assigns a double value to the specified field of the given object.
3795      *
3796      * @param[in] env A pointer to the environment structure.
3797      * @param[in] object The object containing the field.
3798      * @param[in] field The field to set the double value to.
3799      * @param[in] value The double value to assign to the field.
3800      * @return Returns a status code of type `ani_status` indicating success or failure.
3801      */
3802     ani_status (*Object_SetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double value);
3803 
3804     /**
3805      * @brief Sets a reference value to a field of an object.
3806      *
3807      * This function assigns a reference value to the specified field of the given object.
3808      *
3809      * @param[in] env A pointer to the environment structure.
3810      * @param[in] object The object containing the field.
3811      * @param[in] field The field to set the reference value to.
3812      * @param[in] value The reference value to assign to the field.
3813      * @return Returns a status code of type `ani_status` indicating success or failure.
3814      */
3815     ani_status (*Object_SetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref value);
3816 
3817     /**
3818      * @brief Retrieves a boolean value from a field of an object by its name.
3819      *
3820      * This function retrieves the boolean value of the specified field from the given object by its name.
3821      *
3822      * @param[in] env A pointer to the environment structure.
3823      * @param[in] object The object containing the field.
3824      * @param[in] name The name of the field to retrieve the boolean value from.
3825      * @param[out] result A pointer to store the retrieved boolean value.
3826      * @return Returns a status code of type `ani_status` indicating success or failure.
3827      */
3828     ani_status (*Object_GetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean *result);
3829 
3830     /**
3831      * @brief Retrieves a char value from a field of an object by its name.
3832      *
3833      * This function retrieves the char value of the specified field from the given object by its name.
3834      *
3835      * @param[in] env A pointer to the environment structure.
3836      * @param[in] object The object containing the field.
3837      * @param[in] name The name of the field to retrieve the char value from.
3838      * @param[out] result A pointer to store the retrieved char value.
3839      * @return Returns a status code of type `ani_status` indicating success or failure.
3840      */
3841     ani_status (*Object_GetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result);
3842 
3843     /**
3844      * @brief Retrieves a byte value from a field of an object by its name.
3845      *
3846      * This function retrieves the byte value of the specified field from the given object by its name.
3847      *
3848      * @param[in] env A pointer to the environment structure.
3849      * @param[in] object The object containing the field.
3850      * @param[in] name The name of the field to retrieve the byte value from.
3851      * @param[out] result A pointer to store the retrieved byte value.
3852      * @return Returns a status code of type `ani_status` indicating success or failure.
3853      */
3854     ani_status (*Object_GetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result);
3855 
3856     /**
3857      * @brief Retrieves a short value from a field of an object by its name.
3858      *
3859      * This function retrieves the short value of the specified field from the given object by its name.
3860      *
3861      * @param[in] env A pointer to the environment structure.
3862      * @param[in] object The object containing the field.
3863      * @param[in] name The name of the field to retrieve the short value from.
3864      * @param[out] result A pointer to store the retrieved short value.
3865      * @return Returns a status code of type `ani_status` indicating success or failure.
3866      */
3867     ani_status (*Object_GetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result);
3868 
3869     /**
3870      * @brief Retrieves a integer value from a field of an object by its name.
3871      *
3872      * This function retrieves the integer value of the specified field from the given object by its name.
3873      *
3874      * @param[in] env A pointer to the environment structure.
3875      * @param[in] object The object containing the field.
3876      * @param[in] name The name of the field to retrieve the integer value from.
3877      * @param[out] result A pointer to store the retrieved integer value.
3878      * @return Returns a status code of type `ani_status` indicating success or failure.
3879      */
3880     ani_status (*Object_GetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result);
3881 
3882     /**
3883      * @brief Retrieves a long value from a field of an object by its name.
3884      *
3885      * This function retrieves the long value of the specified field from the given object by its name.
3886      *
3887      * @param[in] env A pointer to the environment structure.
3888      * @param[in] object The object containing the field.
3889      * @param[in] name The name of the field to retrieve the long value from.
3890      * @param[out] result A pointer to store the retrieved long value.
3891      * @return Returns a status code of type `ani_status` indicating success or failure.
3892      */
3893     ani_status (*Object_GetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result);
3894 
3895     /**
3896      * @brief Retrieves a float value from a field of an object by its name.
3897      *
3898      * This function retrieves the float value of the specified field from the given object by its name.
3899      *
3900      * @param[in] env A pointer to the environment structure.
3901      * @param[in] object The object containing the field.
3902      * @param[in] name The name of the field to retrieve the float value from.
3903      * @param[out] result A pointer to store the retrieved float value.
3904      * @return Returns a status code of type `ani_status` indicating success or failure.
3905      */
3906     ani_status (*Object_GetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result);
3907 
3908     /**
3909      * @brief Retrieves a double value from a field of an object by its name.
3910      *
3911      * This function retrieves the double value of the specified field from the given object by its name.
3912      *
3913      * @param[in] env A pointer to the environment structure.
3914      * @param[in] object The object containing the field.
3915      * @param[in] name The name of the field to retrieve the double value from.
3916      * @param[out] result A pointer to store the retrieved double value.
3917      * @return Returns a status code of type `ani_status` indicating success or failure.
3918      */
3919     ani_status (*Object_GetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double *result);
3920 
3921     /**
3922      * @brief Retrieves a reference value from a field of an object by its name.
3923      *
3924      * This function retrieves the reference value of the specified field from the given object by its name.
3925      *
3926      * @param[in] env A pointer to the environment structure.
3927      * @param[in] object The object containing the field.
3928      * @param[in] name The name of the field to retrieve the reference value from.
3929      * @param[out] result A pointer to store the retrieved reference value.
3930      * @return Returns a status code of type `ani_status` indicating success or failure.
3931      */
3932     ani_status (*Object_GetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result);
3933 
3934     /**
3935      * @brief Sets a boolean value to a field of an object by its name.
3936      *
3937      * This function assigns a boolean value to the specified field of the given object by its name.
3938      *
3939      * @param[in] env A pointer to the environment structure.
3940      * @param[in] object The object containing the field.
3941      * @param[in] name The name of the field to set the boolean value to.
3942      * @param[in] value The boolean value to assign to the field.
3943      * @return Returns a status code of type `ani_status` indicating success or failure.
3944      */
3945     ani_status (*Object_SetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean value);
3946 
3947     /**
3948      * @brief Sets a char value to a field of an object by its name.
3949      *
3950      * This function assigns a char value to the specified field of the given object by its name.
3951      *
3952      * @param[in] env A pointer to the environment structure.
3953      * @param[in] object The object containing the field.
3954      * @param[in] name The name of the field to set the char value to.
3955      * @param[in] value The char value to assign to the field.
3956      * @return Returns a status code of type `ani_status` indicating success or failure.
3957      */
3958     ani_status (*Object_SetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value);
3959 
3960     /**
3961      * @brief Sets a byte value to a field of an object by its name.
3962      *
3963      * This function assigns a byte value to the specified field of the given object by its name.
3964      *
3965      * @param[in] env A pointer to the environment structure.
3966      * @param[in] object The object containing the field.
3967      * @param[in] name The name of the field to set the byte value to.
3968      * @param[in] value The byte value to assign to the field.
3969      * @return Returns a status code of type `ani_status` indicating success or failure.
3970      */
3971     ani_status (*Object_SetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value);
3972 
3973     /**
3974      * @brief Sets a short value to a field of an object by its name.
3975      *
3976      * This function assigns a short value to the specified field of the given object by its name.
3977      *
3978      * @param[in] env A pointer to the environment structure.
3979      * @param[in] object The object containing the field.
3980      * @param[in] name The name of the field to set the short value to.
3981      * @param[in] value The short value to assign to the field.
3982      * @return Returns a status code of type `ani_status` indicating success or failure.
3983      */
3984     ani_status (*Object_SetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value);
3985 
3986     /**
3987      * @brief Sets a integer value to a field of an object by its name.
3988      *
3989      * This function assigns a integer value to the specified field of the given object by its name.
3990      *
3991      * @param[in] env A pointer to the environment structure.
3992      * @param[in] object The object containing the field.
3993      * @param[in] name The name of the field to set the integer value to.
3994      * @param[in] value The integer value to assign to the field.
3995      * @return Returns a status code of type `ani_status` indicating success or failure.
3996      */
3997     ani_status (*Object_SetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value);
3998 
3999     /**
4000      * @brief Sets a long value to a field of an object by its name.
4001      *
4002      * This function assigns a long value to the specified field of the given object by its name.
4003      *
4004      * @param[in] env A pointer to the environment structure.
4005      * @param[in] object The object containing the field.
4006      * @param[in] name The name of the field to set the long value to.
4007      * @param[in] value The long value to assign to the field.
4008      * @return Returns a status code of type `ani_status` indicating success or failure.
4009      */
4010     ani_status (*Object_SetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value);
4011 
4012     /**
4013      * @brief Sets a float value to a field of an object by its name.
4014      *
4015      * This function assigns a float value to the specified field of the given object by its name.
4016      *
4017      * @param[in] env A pointer to the environment structure.
4018      * @param[in] object The object containing the field.
4019      * @param[in] name The name of the field to set the float value to.
4020      * @param[in] value The float value to assign to the field.
4021      * @return Returns a status code of type `ani_status` indicating success or failure.
4022      */
4023     ani_status (*Object_SetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value);
4024 
4025     /**
4026      * @brief Sets a double value to a field of an object by its name.
4027      *
4028      * This function assigns a double value to the specified field of the given object by its name.
4029      *
4030      * @param[in] env A pointer to the environment structure.
4031      * @param[in] object The object containing the field.
4032      * @param[in] name The name of the field to set the double value to.
4033      * @param[in] value The double value to assign to the field.
4034      * @return Returns a status code of type `ani_status` indicating success or failure.
4035      */
4036     ani_status (*Object_SetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value);
4037 
4038     /**
4039      * @brief Sets a reference value to a field of an object by its name.
4040      *
4041      * This function assigns a reference value to the specified field of the given object by its name.
4042      *
4043      * @param[in] env A pointer to the environment structure.
4044      * @param[in] object The object containing the field.
4045      * @param[in] name The name of the field to set the reference value to.
4046      * @param[in] value The reference value to assign to the field.
4047      * @return Returns a status code of type `ani_status` indicating success or failure.
4048      */
4049     ani_status (*Object_SetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value);
4050 
4051     /**
4052      * @brief Retrieves a boolean value from a property of an object by its name.
4053      *
4054      * This function retrieves the boolean value of the specified property from the given object by its name.
4055      *
4056      * @param[in] env A pointer to the environment structure.
4057      * @param[in] object The object containing the property.
4058      * @param[in] name The name of the property to retrieve the boolean value from.
4059      * @param[out] result A pointer to store the retrieved boolean value.
4060      * @return Returns a status code of type `ani_status` indicating success or failure.
4061      */
4062     ani_status (*Object_GetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name,
4063                                                    ani_boolean *result);
4064 
4065     /**
4066      * @brief Retrieves a char value from a property of an object by its name.
4067      *
4068      * This function retrieves the char value of the specified property from the given object by its name.
4069      *
4070      * @param[in] env A pointer to the environment structure.
4071      * @param[in] object The object containing the property.
4072      * @param[in] name The name of the property to retrieve the char value from.
4073      * @param[out] result A pointer to store the retrieved char value.
4074      * @return Returns a status code of type `ani_status` indicating success or failure.
4075      */
4076     ani_status (*Object_GetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result);
4077 
4078     /**
4079      * @brief Retrieves a byte value from a property of an object by its name.
4080      *
4081      * This function retrieves the byte value of the specified property from the given object by its name.
4082      *
4083      * @param[in] env A pointer to the environment structure.
4084      * @param[in] object The object containing the property.
4085      * @param[in] name The name of the property to retrieve the byte value from.
4086      * @param[out] result A pointer to store the retrieved byte value.
4087      * @return Returns a status code of type `ani_status` indicating success or failure.
4088      */
4089     ani_status (*Object_GetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result);
4090 
4091     /**
4092      * @brief Retrieves a short value from a property of an object by its name.
4093      *
4094      * This function retrieves the short value of the specified property from the given object by its name.
4095      *
4096      * @param[in] env A pointer to the environment structure.
4097      * @param[in] object The object containing the property.
4098      * @param[in] name The name of the property to retrieve the short value from.
4099      * @param[out] result A pointer to store the retrieved short value.
4100      * @return Returns a status code of type `ani_status` indicating success or failure.
4101      */
4102     ani_status (*Object_GetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result);
4103 
4104     /**
4105      * @brief Retrieves a integer value from a property of an object by its name.
4106      *
4107      * This function retrieves the integer value of the specified property from the given object by its name.
4108      *
4109      * @param[in] env A pointer to the environment structure.
4110      * @param[in] object The object containing the property.
4111      * @param[in] name The name of the property to retrieve the integer value from.
4112      * @param[out] result A pointer to store the retrieved integer value.
4113      * @return Returns a status code of type `ani_status` indicating success or failure.
4114      */
4115     ani_status (*Object_GetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result);
4116 
4117     /**
4118      * @brief Retrieves a long value from a property of an object by its name.
4119      *
4120      * This function retrieves the long value of the specified property from the given object by its name.
4121      *
4122      * @param[in] env A pointer to the environment structure.
4123      * @param[in] object The object containing the property.
4124      * @param[in] name The name of the property to retrieve the long value from.
4125      * @param[out] result A pointer to store the retrieved long value.
4126      * @return Returns a status code of type `ani_status` indicating success or failure.
4127      */
4128     ani_status (*Object_GetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result);
4129 
4130     /**
4131      * @brief Retrieves a float value from a property of an object by its name.
4132      *
4133      * This function retrieves the float value of the specified property from the given object by its name.
4134      *
4135      * @param[in] env A pointer to the environment structure.
4136      * @param[in] object The object containing the property.
4137      * @param[in] name The name of the property to retrieve the float value from.
4138      * @param[out] result A pointer to store the retrieved float value.
4139      * @return Returns a status code of type `ani_status` indicating success or failure.
4140      */
4141     ani_status (*Object_GetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result);
4142 
4143     /**
4144      * @brief Retrieves a double value from a property of an object by its name.
4145      *
4146      * This function retrieves the double value of the specified property from the given object by its name.
4147      *
4148      * @param[in] env A pointer to the environment structure.
4149      * @param[in] object The object containing the property.
4150      * @param[in] name The name of the property to retrieve the double value from.
4151      * @param[out] result A pointer to store the retrieved double value.
4152      * @return Returns a status code of type `ani_status` indicating success or failure.
4153      */
4154     ani_status (*Object_GetPropertyByName_Double)(ani_env *env, ani_object object, const char *name,
4155                                                   ani_double *result);
4156 
4157     /**
4158      * @brief Retrieves a reference value from a property of an object by its name.
4159      *
4160      * This function retrieves the reference value of the specified property from the given object by its name.
4161      *
4162      * @param[in] env A pointer to the environment structure.
4163      * @param[in] object The object containing the property.
4164      * @param[in] name The name of the property to retrieve the reference value from.
4165      * @param[out] result A pointer to store the retrieved reference value.
4166      * @return Returns a status code of type `ani_status` indicating success or failure.
4167      */
4168     ani_status (*Object_GetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result);
4169 
4170     /**
4171      * @brief Sets a boolean value to a property of an object by its name.
4172      *
4173      * This function assigns a boolean value to the specified property of the given object by its name.
4174      *
4175      * @param[in] env A pointer to the environment structure.
4176      * @param[in] object The object containing the property.
4177      * @param[in] name The name of the property to set the boolean value to.
4178      * @param[in] value The boolean value to assign to the property.
4179      * @return Returns a status code of type `ani_status` indicating success or failure.
4180      */
4181     ani_status (*Object_SetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name,
4182                                                    ani_boolean value);
4183 
4184     /**
4185      * @brief Sets a char value to a property of an object by its name.
4186      *
4187      * This function assigns a char value to the specified property of the given object by its name.
4188      *
4189      * @param[in] env A pointer to the environment structure.
4190      * @param[in] object The object containing the property.
4191      * @param[in] name The name of the property to set the char value to.
4192      * @param[in] value The char value to assign to the property.
4193      * @return Returns a status code of type `ani_status` indicating success or failure.
4194      */
4195     ani_status (*Object_SetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value);
4196 
4197     /**
4198      * @brief Sets a byte value to a property of an object by its name.
4199      *
4200      * This function assigns a byte value to the specified property of the given object by its name.
4201      *
4202      * @param[in] env A pointer to the environment structure.
4203      * @param[in] object The object containing the property.
4204      * @param[in] name The name of the property to set the byte value to.
4205      * @param[in] value The byte value to assign to the property.
4206      * @return Returns a status code of type `ani_status` indicating success or failure.
4207      */
4208     ani_status (*Object_SetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value);
4209 
4210     /**
4211      * @brief Sets a short value to a property of an object by its name.
4212      *
4213      * This function assigns a short value to the specified property of the given object by its name.
4214      *
4215      * @param[in] env A pointer to the environment structure.
4216      * @param[in] object The object containing the property.
4217      * @param[in] name The name of the property to set the short value to.
4218      * @param[in] value The short value to assign to the property.
4219      * @return Returns a status code of type `ani_status` indicating success or failure.
4220      */
4221     ani_status (*Object_SetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value);
4222 
4223     /**
4224      * @brief Sets a integer value to a property of an object by its name.
4225      *
4226      * This function assigns a integer value to the specified property of the given object by its name.
4227      *
4228      * @param[in] env A pointer to the environment structure.
4229      * @param[in] object The object containing the property.
4230      * @param[in] name The name of the property to set the integer value to.
4231      * @param[in] value The integer value to assign to the property.
4232      * @return Returns a status code of type `ani_status` indicating success or failure.
4233      */
4234     ani_status (*Object_SetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value);
4235 
4236     /**
4237      * @brief Sets a long value to a property of an object by its name.
4238      *
4239      * This function assigns a long value to the specified property of the given object by its name.
4240      *
4241      * @param[in] env A pointer to the environment structure.
4242      * @param[in] object The object containing the property.
4243      * @param[in] name The name of the property to set the long value to.
4244      * @param[in] value The long value to assign to the property.
4245      * @return Returns a status code of type `ani_status` indicating success or failure.
4246      */
4247     ani_status (*Object_SetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value);
4248 
4249     /**
4250      * @brief Sets a float value to a property of an object by its name.
4251      *
4252      * This function assigns a float value to the specified property of the given object by its name.
4253      *
4254      * @param[in] env A pointer to the environment structure.
4255      * @param[in] object The object containing the property.
4256      * @param[in] name The name of the property to set the float value to.
4257      * @param[in] value The float value to assign to the property.
4258      * @return Returns a status code of type `ani_status` indicating success or failure.
4259      */
4260     ani_status (*Object_SetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value);
4261 
4262     /**
4263      * @brief Sets a double value to a property of an object by its name.
4264      *
4265      * This function assigns a double value to the specified property of the given object by its name.
4266      *
4267      * @param[in] env A pointer to the environment structure.
4268      * @param[in] object The object containing the property.
4269      * @param[in] name The name of the property to set the double value to.
4270      * @param[in] value The double value to assign to the property.
4271      * @return Returns a status code of type `ani_status` indicating success or failure.
4272      */
4273     ani_status (*Object_SetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value);
4274 
4275     /**
4276      * @brief Sets a reference value to a property of an object by its name.
4277      *
4278      * This function assigns a reference value to the specified property of the given object by its name.
4279      *
4280      * @param[in] env A pointer to the environment structure.
4281      * @param[in] object The object containing the property.
4282      * @param[in] name The name of the property to set the reference value to.
4283      * @param[in] value The reference value to assign to the property.
4284      * @return Returns a status code of type `ani_status` indicating success or failure.
4285      */
4286     ani_status (*Object_SetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value);
4287 
4288     /**
4289      * @brief Calls a method on an object and retrieves a boolean return value.
4290      *
4291      * This function calls the specified method of an object using variadic arguments and retrieves a boolean result.
4292      *
4293      * @param[in] env A pointer to the environment structure.
4294      * @param[in] object The object on which the method is to be called.
4295      * @param[in] method The method to call.
4296      * @param[out] result A pointer to store the boolean return value.
4297      * @param[in] ... Variadic arguments to pass to the method.
4298      * @return Returns a status code of type `ani_status` indicating success or failure.
4299      */
4300     ani_status (*Object_CallMethod_Boolean)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4301                                             ...);
4302 
4303     /**
4304      * @brief Calls a method on an object and retrieves a boolean return value (array-based).
4305      *
4306      * This function calls the specified method of an object using arguments provided in an array and retrieves a
4307      * boolean result.
4308      *
4309      * @param[in] env A pointer to the environment structure.
4310      * @param[in] object The object on which the method is to be called.
4311      * @param[in] method The method to call.
4312      * @param[out] result A pointer to store the boolean return value.
4313      * @param[in] args An array of arguments to pass to the method.
4314      * @return Returns a status code of type `ani_status` indicating success or failure.
4315      */
4316     ani_status (*Object_CallMethod_Boolean_A)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4317                                               const ani_value *args);
4318 
4319     /**
4320      * @brief Calls a method on an object and retrieves a boolean return value (variadic arguments).
4321      *
4322      * This function calls the specified method of an object using a `va_list` and retrieves a boolean result.
4323      *
4324      * @param[in] env A pointer to the environment structure.
4325      * @param[in] object The object on which the method is to be called.
4326      * @param[in] method The method to call.
4327      * @param[out] result A pointer to store the boolean return value.
4328      * @param[in] args A `va_list` of arguments to pass to the method.
4329      * @return Returns a status code of type `ani_status` indicating success or failure.
4330      */
4331     ani_status (*Object_CallMethod_Boolean_V)(ani_env *env, ani_object object, ani_method method, ani_boolean *result,
4332                                               va_list args);
4333 
4334     /**
4335      * @brief Calls a method on an object and retrieves a char return value.
4336      *
4337      * This function calls the specified method of an object using variadic arguments and retrieves a char result.
4338      *
4339      * @param[in] env A pointer to the environment structure.
4340      * @param[in] object The object on which the method is to be called.
4341      * @param[in] method The method to call.
4342      * @param[out] result A pointer to store the char return value.
4343      * @param[in] ... Variadic arguments to pass to the method.
4344      * @return Returns a status code of type `ani_status` indicating success or failure.
4345      */
4346     ani_status (*Object_CallMethod_Char)(ani_env *env, ani_object object, ani_method method, ani_char *result, ...);
4347 
4348     /**
4349      * @brief Calls a method on an object and retrieves a char return value (array-based).
4350      *
4351      * This function calls the specified method of an object using arguments provided in an array and retrieves a char
4352      * result.
4353      *
4354      * @param[in] env A pointer to the environment structure.
4355      * @param[in] object The object on which the method is to be called.
4356      * @param[in] method The method to call.
4357      * @param[out] result A pointer to store the char return value.
4358      * @param[in] args An array of arguments to pass to the method.
4359      * @return Returns a status code of type `ani_status` indicating success or failure.
4360      */
4361     ani_status (*Object_CallMethod_Char_A)(ani_env *env, ani_object object, ani_method method, ani_char *result,
4362                                            const ani_value *args);
4363 
4364     /**
4365      * @brief Calls a method on an object and retrieves a char return value (variadic arguments).
4366      *
4367      * This function calls the specified method of an object using a `va_list` and retrieves a char result.
4368      *
4369      * @param[in] env A pointer to the environment structure.
4370      * @param[in] object The object on which the method is to be called.
4371      * @param[in] method The method to call.
4372      * @param[out] result A pointer to store the char return value.
4373      * @param[in] args A `va_list` of arguments to pass to the method.
4374      * @return Returns a status code of type `ani_status` indicating success or failure.
4375      */
4376     ani_status (*Object_CallMethod_Char_V)(ani_env *env, ani_object object, ani_method method, ani_char *result,
4377                                            va_list args);
4378 
4379     /**
4380      * @brief Calls a method on an object and retrieves a byte return value.
4381      *
4382      * This function calls the specified method of an object using variadic arguments and retrieves a byte result.
4383      *
4384      * @param[in] env A pointer to the environment structure.
4385      * @param[in] object The object on which the method is to be called.
4386      * @param[in] method The method to call.
4387      * @param[out] result A pointer to store the byte return value.
4388      * @param[in] ... Variadic arguments to pass to the method.
4389      * @return Returns a status code of type `ani_status` indicating success or failure.
4390      */
4391     ani_status (*Object_CallMethod_Byte)(ani_env *env, ani_object object, ani_method method, ani_byte *result, ...);
4392 
4393     /**
4394      * @brief Calls a method on an object and retrieves a byte return value (array-based).
4395      *
4396      * This function calls the specified method of an object using arguments provided in an array and retrieves a byte
4397      * result.
4398      *
4399      * @param[in] env A pointer to the environment structure.
4400      * @param[in] object The object on which the method is to be called.
4401      * @param[in] method The method to call.
4402      * @param[out] result A pointer to store the byte return value.
4403      * @param[in] args An array of arguments to pass to the method.
4404      * @return Returns a status code of type `ani_status` indicating success or failure.
4405      */
4406     ani_status (*Object_CallMethod_Byte_A)(ani_env *env, ani_object object, ani_method method, ani_byte *result,
4407                                            const ani_value *args);
4408 
4409     /**
4410      * @brief Calls a method on an object and retrieves a byte return value (variadic arguments).
4411      *
4412      * This function calls the specified method of an object using a `va_list` and retrieves a byte result.
4413      *
4414      * @param[in] env A pointer to the environment structure.
4415      * @param[in] object The object on which the method is to be called.
4416      * @param[in] method The method to call.
4417      * @param[out] result A pointer to store the byte return value.
4418      * @param[in] args A `va_list` of arguments to pass to the method.
4419      * @return Returns a status code of type `ani_status` indicating success or failure.
4420      */
4421     ani_status (*Object_CallMethod_Byte_V)(ani_env *env, ani_object object, ani_method method, ani_byte *result,
4422                                            va_list args);
4423 
4424     /**
4425      * @brief Calls a method on an object and retrieves a short return value.
4426      *
4427      * This function calls the specified method of an object using variadic arguments and retrieves a short result.
4428      *
4429      * @param[in] env A pointer to the environment structure.
4430      * @param[in] object The object on which the method is to be called.
4431      * @param[in] method The method to call.
4432      * @param[out] result A pointer to store the short return value.
4433      * @param[in] ... Variadic arguments to pass to the method.
4434      * @return Returns a status code of type `ani_status` indicating success or failure.
4435      */
4436     ani_status (*Object_CallMethod_Short)(ani_env *env, ani_object object, ani_method method, ani_short *result, ...);
4437 
4438     /**
4439      * @brief Calls a method on an object and retrieves a short return value (array-based).
4440      *
4441      * This function calls the specified method of an object using arguments provided in an array and retrieves a short
4442      * result.
4443      *
4444      * @param[in] env A pointer to the environment structure.
4445      * @param[in] object The object on which the method is to be called.
4446      * @param[in] method The method to call.
4447      * @param[out] result A pointer to store the short return value.
4448      * @param[in] args An array of arguments to pass to the method.
4449      * @return Returns a status code of type `ani_status` indicating success or failure.
4450      */
4451     ani_status (*Object_CallMethod_Short_A)(ani_env *env, ani_object object, ani_method method, ani_short *result,
4452                                             const ani_value *args);
4453 
4454     /**
4455      * @brief Calls a method on an object and retrieves a short return value (variadic arguments).
4456      *
4457      * This function calls the specified method of an object using a `va_list` and retrieves a short result.
4458      *
4459      * @param[in] env A pointer to the environment structure.
4460      * @param[in] object The object on which the method is to be called.
4461      * @param[in] method The method to call.
4462      * @param[out] result A pointer to store the short return value.
4463      * @param[in] args A `va_list` of arguments to pass to the method.
4464      * @return Returns a status code of type `ani_status` indicating success or failure.
4465      */
4466     ani_status (*Object_CallMethod_Short_V)(ani_env *env, ani_object object, ani_method method, ani_short *result,
4467                                             va_list args);
4468 
4469     /**
4470      * @brief Calls a method on an object and retrieves a integer return value.
4471      *
4472      * This function calls the specified method of an object using variadic arguments and retrieves a integer result.
4473      *
4474      * @param[in] env A pointer to the environment structure.
4475      * @param[in] object The object on which the method is to be called.
4476      * @param[in] method The method to call.
4477      * @param[out] result A pointer to store the integer return value.
4478      * @param[in] ... Variadic arguments to pass to the method.
4479      * @return Returns a status code of type `ani_status` indicating success or failure.
4480      */
4481     ani_status (*Object_CallMethod_Int)(ani_env *env, ani_object object, ani_method method, ani_int *result, ...);
4482 
4483     /**
4484      * @brief Calls a method on an object and retrieves a integer return value (array-based).
4485      *
4486      * This function calls the specified method of an object using arguments provided in an array and retrieves a
4487      * integer result.
4488      *
4489      * @param[in] env A pointer to the environment structure.
4490      * @param[in] object The object on which the method is to be called.
4491      * @param[in] method The method to call.
4492      * @param[out] result A pointer to store the integer return value.
4493      * @param[in] args An array of arguments to pass to the method.
4494      * @return Returns a status code of type `ani_status` indicating success or failure.
4495      */
4496     ani_status (*Object_CallMethod_Int_A)(ani_env *env, ani_object object, ani_method method, ani_int *result,
4497                                           const ani_value *args);
4498 
4499     /**
4500      * @brief Calls a method on an object and retrieves a integer return value (variadic arguments).
4501      *
4502      * This function calls the specified method of an object using a `va_list` and retrieves a integer result.
4503      *
4504      * @param[in] env A pointer to the environment structure.
4505      * @param[in] object The object on which the method is to be called.
4506      * @param[in] method The method to call.
4507      * @param[out] result A pointer to store the integer return value.
4508      * @param[in] args A `va_list` of arguments to pass to the method.
4509      * @return Returns a status code of type `ani_status` indicating success or failure.
4510      */
4511     ani_status (*Object_CallMethod_Int_V)(ani_env *env, ani_object object, ani_method method, ani_int *result,
4512                                           va_list args);
4513 
4514     /**
4515      * @brief Calls a method on an object and retrieves a long return value.
4516      *
4517      * This function calls the specified method of an object using variadic arguments and retrieves a long result.
4518      *
4519      * @param[in] env A pointer to the environment structure.
4520      * @param[in] object The object on which the method is to be called.
4521      * @param[in] method The method to call.
4522      * @param[out] result A pointer to store the long return value.
4523      * @param[in] ... Variadic arguments to pass to the method.
4524      * @return Returns a status code of type `ani_status` indicating success or failure.
4525      */
4526     ani_status (*Object_CallMethod_Long)(ani_env *env, ani_object object, ani_method method, ani_long *result, ...);
4527 
4528     /**
4529      * @brief Calls a method on an object and retrieves a long return value (array-based).
4530      *
4531      * This function calls the specified method of an object using arguments provided in an array and retrieves a long
4532      * result.
4533      *
4534      * @param[in] env A pointer to the environment structure.
4535      * @param[in] object The object on which the method is to be called.
4536      * @param[in] method The method to call.
4537      * @param[out] result A pointer to store the long return value.
4538      * @param[in] args An array of arguments to pass to the method.
4539      * @return Returns a status code of type `ani_status` indicating success or failure.
4540      */
4541     ani_status (*Object_CallMethod_Long_A)(ani_env *env, ani_object object, ani_method method, ani_long *result,
4542                                            const ani_value *args);
4543 
4544     /**
4545      * @brief Calls a method on an object and retrieves a long return value (variadic arguments).
4546      *
4547      * This function calls the specified method of an object using a `va_list` and retrieves a long result.
4548      *
4549      * @param[in] env A pointer to the environment structure.
4550      * @param[in] object The object on which the method is to be called.
4551      * @param[in] method The method to call.
4552      * @param[out] result A pointer to store the long return value.
4553      * @param[in] args A `va_list` of arguments to pass to the method.
4554      * @return Returns a status code of type `ani_status` indicating success or failure.
4555      */
4556     ani_status (*Object_CallMethod_Long_V)(ani_env *env, ani_object object, ani_method method, ani_long *result,
4557                                            va_list args);
4558 
4559     /**
4560      * @brief Calls a method on an object and retrieves a float return value.
4561      *
4562      * This function calls the specified method of an object using variadic arguments and retrieves a float result.
4563      *
4564      * @param[in] env A pointer to the environment structure.
4565      * @param[in] object The object on which the method is to be called.
4566      * @param[in] method The method to call.
4567      * @param[out] result A pointer to store the float return value.
4568      * @param[in] ... Variadic arguments to pass to the method.
4569      * @return Returns a status code of type `ani_status` indicating success or failure.
4570      */
4571     ani_status (*Object_CallMethod_Float)(ani_env *env, ani_object object, ani_method method, ani_float *result, ...);
4572 
4573     /**
4574      * @brief Calls a method on an object and retrieves a float return value (array-based).
4575      *
4576      * This function calls the specified method of an object using arguments provided in an array and retrieves a float
4577      * result.
4578      *
4579      * @param[in] env A pointer to the environment structure.
4580      * @param[in] object The object on which the method is to be called.
4581      * @param[in] method The method to call.
4582      * @param[out] result A pointer to store the float return value.
4583      * @param[in] args An array of arguments to pass to the method.
4584      * @return Returns a status code of type `ani_status` indicating success or failure.
4585      */
4586     ani_status (*Object_CallMethod_Float_A)(ani_env *env, ani_object object, ani_method method, ani_float *result,
4587                                             const ani_value *args);
4588 
4589     /**
4590      * @brief Calls a method on an object and retrieves a float return value (variadic arguments).
4591      *
4592      * This function calls the specified method of an object using a `va_list` and retrieves a float result.
4593      *
4594      * @param[in] env A pointer to the environment structure.
4595      * @param[in] object The object on which the method is to be called.
4596      * @param[in] method The method to call.
4597      * @param[out] result A pointer to store the float return value.
4598      * @param[in] args A `va_list` of arguments to pass to the method.
4599      * @return Returns a status code of type `ani_status` indicating success or failure.
4600      */
4601     ani_status (*Object_CallMethod_Float_V)(ani_env *env, ani_object object, ani_method method, ani_float *result,
4602                                             va_list args);
4603 
4604     /**
4605      * @brief Calls a method on an object and retrieves a double return value.
4606      *
4607      * This function calls the specified method of an object using variadic arguments and retrieves a double result.
4608      *
4609      * @param[in] env A pointer to the environment structure.
4610      * @param[in] object The object on which the method is to be called.
4611      * @param[in] method The method to call.
4612      * @param[out] result A pointer to store the double return value.
4613      * @param[in] ... Variadic arguments to pass to the method.
4614      * @return Returns a status code of type `ani_status` indicating success or failure.
4615      */
4616     ani_status (*Object_CallMethod_Double)(ani_env *env, ani_object object, ani_method method, ani_double *result, ...);
4617 
4618     /**
4619      * @brief Calls a method on an object and retrieves a double return value (array-based).
4620      *
4621      * This function calls the specified method of an object using arguments provided in an array and retrieves a double
4622      * result.
4623      *
4624      * @param[in] env A pointer to the environment structure.
4625      * @param[in] object The object on which the method is to be called.
4626      * @param[in] method The method to call.
4627      * @param[out] result A pointer to store the double return value.
4628      * @param[in] args An array of arguments to pass to the method.
4629      * @return Returns a status code of type `ani_status` indicating success or failure.
4630      */
4631     ani_status (*Object_CallMethod_Double_A)(ani_env *env, ani_object object, ani_method method, ani_double *result,
4632                                              const ani_value *args);
4633 
4634     /**
4635      * @brief Calls a method on an object and retrieves a double return value (variadic arguments).
4636      *
4637      * This function calls the specified method of an object using a `va_list` and retrieves a double result.
4638      *
4639      * @param[in] env A pointer to the environment structure.
4640      * @param[in] object The object on which the method is to be called.
4641      * @param[in] method The method to call.
4642      * @param[out] result A pointer to store the double return value.
4643      * @param[in] args A `va_list` of arguments to pass to the method.
4644      * @return Returns a status code of type `ani_status` indicating success or failure.
4645      */
4646     ani_status (*Object_CallMethod_Double_V)(ani_env *env, ani_object object, ani_method method, ani_double *result,
4647                                              va_list args);
4648 
4649     /**
4650      * @brief Calls a method on an object and retrieves a reference return value.
4651      *
4652      * This function calls the specified method of an object using variadic arguments and retrieves a reference result.
4653      *
4654      * @param[in] env A pointer to the environment structure.
4655      * @param[in] object The object on which the method is to be called.
4656      * @param[in] method The method to call.
4657      * @param[out] result A pointer to store the reference return value.
4658      * @param[in] ... Variadic arguments to pass to the method.
4659      * @return Returns a status code of type `ani_status` indicating success or failure.
4660      */
4661     ani_status (*Object_CallMethod_Ref)(ani_env *env, ani_object object, ani_method method, ani_ref *result, ...);
4662 
4663     /**
4664      * @brief Calls a method on an object and retrieves a reference return value (array-based).
4665      *
4666      * This function calls the specified method of an object using arguments provided in an array and retrieves a
4667      * reference result.
4668      *
4669      * @param[in] env A pointer to the environment structure.
4670      * @param[in] object The object on which the method is to be called.
4671      * @param[in] method The method to call.
4672      * @param[out] result A pointer to store the reference return value.
4673      * @param[in] args An array of arguments to pass to the method.
4674      * @return Returns a status code of type `ani_status` indicating success or failure.
4675      */
4676     ani_status (*Object_CallMethod_Ref_A)(ani_env *env, ani_object object, ani_method method, ani_ref *result,
4677                                           const ani_value *args);
4678 
4679     /**
4680      * @brief Calls a method on an object and retrieves a reference return value (variadic arguments).
4681      *
4682      * This function calls the specified method of an object using a `va_list` and retrieves a reference result.
4683      *
4684      * @param[in] env A pointer to the environment structure.
4685      * @param[in] object The object on which the method is to be called.
4686      * @param[in] method The method to call.
4687      * @param[out] result A pointer to store the reference return value.
4688      * @param[in] args A `va_list` of arguments to pass to the method.
4689      * @return Returns a status code of type `ani_status` indicating success or failure.
4690      */
4691     ani_status (*Object_CallMethod_Ref_V)(ani_env *env, ani_object object, ani_method method, ani_ref *result,
4692                                           va_list args);
4693 
4694     /**
4695      * @brief Calls a method on an object with no return value.
4696      *
4697      * This function calls the specified method of an object using variadic arguments. The method does not return a
4698      * value.
4699      *
4700      * @param[in] env A pointer to the environment structure.
4701      * @param[in] object The object on which the method is to be called.
4702      * @param[in] method The method to call.
4703      * @param[in] ... Variadic arguments to pass to the method.
4704      * @return Returns a status code of type `ani_status` indicating success or failure.
4705      */
4706     ani_status (*Object_CallMethod_Void)(ani_env *env, ani_object object, ani_method method, ...);
4707 
4708     /**
4709      * @brief Calls a method on an object with no return value (array-based).
4710      *
4711      * This function calls the specified method of an object using arguments provided in an array. The method does not
4712      * return a value.
4713      *
4714      * @param[in] env A pointer to the environment structure.
4715      * @param[in] object The object on which the method is to be called.
4716      * @param[in] method The method to call.
4717      * @param[in] args An array of arguments to pass to the method.
4718      * @return Returns a status code of type `ani_status` indicating success or failure.
4719      */
4720     ani_status (*Object_CallMethod_Void_A)(ani_env *env, ani_object object, ani_method method, const ani_value *args);
4721 
4722     /**
4723      * @brief Calls a method on an object with no return value (variadic arguments).
4724      *
4725      * This function calls the specified method of an object using a `va_list`. The method does not return a value.
4726      *
4727      * @param[in] env A pointer to the environment structure.
4728      * @param[in] object The object on which the method is to be called.
4729      * @param[in] method The method to call.
4730      * @param[in] args A `va_list` of arguments to pass to the method.
4731      * @return Returns a status code of type `ani_status` indicating success or failure.
4732      */
4733     ani_status (*Object_CallMethod_Void_V)(ani_env *env, ani_object object, ani_method method, va_list args);
4734 
4735     /**
4736      * @brief Calls a method by name on an object and retrieves a boolean return value.
4737      *
4738      * This function calls the specified method by its name and signature on an object using variadic arguments and
4739      * retrieves a boolean result.
4740      *
4741      * @param[in] env A pointer to the environment structure.
4742      * @param[in] object The object on which the method is to be called.
4743      * @param[in] name The name of the method to call.
4744      * @param[in] signature The signature of the method to call.
4745      * @param[out] result A pointer to store the boolean return value.
4746      * @param[in] ... Variadic arguments to pass to the method.
4747      * @return Returns a status code of type `ani_status` indicating success or failure.
4748      */
4749     ani_status (*Object_CallMethodByName_Boolean)(ani_env *env, ani_object object, const char *name,
4750                                                   const char *signature, ani_boolean *result, ...);
4751 
4752     /**
4753      * @brief Calls a method by name on an object and retrieves a boolean return value (array-based).
4754      *
4755      * This function calls the specified method by its name and signature on an object using arguments provided in an
4756      * array and retrieves a boolean result.
4757      *
4758      * @param[in] env A pointer to the environment structure.
4759      * @param[in] object The object on which the method is to be called.
4760      * @param[in] name The name of the method to call.
4761      * @param[in] signature The signature of the method to call.
4762      * @param[out] result A pointer to store the boolean return value.
4763      * @param[in] args An array of arguments to pass to the method.
4764      * @return Returns a status code of type `ani_status` indicating success or failure.
4765      */
4766     ani_status (*Object_CallMethodByName_Boolean_A)(ani_env *env, ani_object object, const char *name,
4767                                                     const char *signature, ani_boolean *result, const ani_value *args);
4768 
4769     /**
4770      * @brief Calls a method by name on an object and retrieves a boolean return value (variadic arguments).
4771      *
4772      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4773      * boolean result.
4774      *
4775      * @param[in] env A pointer to the environment structure.
4776      * @param[in] object The object on which the method is to be called.
4777      * @param[in] name The name of the method to call.
4778      * @param[in] signature The signature of the method to call.
4779      * @param[out] result A pointer to store the boolean return value.
4780      * @param[in] args A `va_list` of arguments to pass to the method.
4781      * @return Returns a status code of type `ani_status` indicating success or failure.
4782      */
4783     ani_status (*Object_CallMethodByName_Boolean_V)(ani_env *env, ani_object object, const char *name,
4784                                                     const char *signature, ani_boolean *result, va_list args);
4785 
4786     /**
4787      * @brief Calls a method by name on an object and retrieves a char return value.
4788      *
4789      * This function calls the specified method by its name and signature on an object using variadic arguments and
4790      * retrieves a char result.
4791      *
4792      * @param[in] env A pointer to the environment structure.
4793      * @param[in] object The object on which the method is to be called.
4794      * @param[in] name The name of the method to call.
4795      * @param[in] signature The signature of the method to call.
4796      * @param[out] result A pointer to store the char return value.
4797      * @param[in] ... Variadic arguments to pass to the method.
4798      * @return Returns a status code of type `ani_status` indicating success or failure.
4799      */
4800     ani_status (*Object_CallMethodByName_Char)(ani_env *env, ani_object object, const char *name, const char *signature,
4801                                                ani_char *result, ...);
4802 
4803     /**
4804      * @brief Calls a method by name on an object and retrieves a char return value (array-based).
4805      *
4806      * This function calls the specified method by its name and signature on an object using arguments provided in an
4807      * array and retrieves a char result.
4808      *
4809      * @param[in] env A pointer to the environment structure.
4810      * @param[in] object The object on which the method is to be called.
4811      * @param[in] name The name of the method to call.
4812      * @param[in] signature The signature of the method to call.
4813      * @param[out] result A pointer to store the char return value.
4814      * @param[in] args An array of arguments to pass to the method.
4815      * @return Returns a status code of type `ani_status` indicating success or failure.
4816      */
4817     ani_status (*Object_CallMethodByName_Char_A)(ani_env *env, ani_object object, const char *name,
4818                                                  const char *signature, ani_char *result, const ani_value *args);
4819 
4820     /**
4821      * @brief Calls a method by name on an object and retrieves a char return value (variadic arguments).
4822      *
4823      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4824      * char result.
4825      *
4826      * @param[in] env A pointer to the environment structure.
4827      * @param[in] object The object on which the method is to be called.
4828      * @param[in] name The name of the method to call.
4829      * @param[in] signature The signature of the method to call.
4830      * @param[out] result A pointer to store the char return value.
4831      * @param[in] args A `va_list` of arguments to pass to the method.
4832      * @return Returns a status code of type `ani_status` indicating success or failure.
4833      */
4834     ani_status (*Object_CallMethodByName_Char_V)(ani_env *env, ani_object object, const char *name,
4835                                                  const char *signature, ani_char *result, va_list args);
4836 
4837     /**
4838      * @brief Calls a method by name on an object and retrieves a byte return value.
4839      *
4840      * This function calls the specified method by its name and signature on an object using variadic arguments and
4841      * retrieves a byte result.
4842      *
4843      * @param[in] env A pointer to the environment structure.
4844      * @param[in] object The object on which the method is to be called.
4845      * @param[in] name The name of the method to call.
4846      * @param[in] signature The signature of the method to call.
4847      * @param[out] result A pointer to store the byte return value.
4848      * @param[in] ... Variadic arguments to pass to the method.
4849      * @return Returns a status code of type `ani_status` indicating success or failure.
4850      */
4851     ani_status (*Object_CallMethodByName_Byte)(ani_env *env, ani_object object, const char *name, const char *signature,
4852                                                ani_byte *result, ...);
4853 
4854     /**
4855      * @brief Calls a method by name on an object and retrieves a byte return value (array-based).
4856      *
4857      * This function calls the specified method by its name and signature on an object using arguments provided in an
4858      * array and retrieves a byte result.
4859      *
4860      * @param[in] env A pointer to the environment structure.
4861      * @param[in] object The object on which the method is to be called.
4862      * @param[in] name The name of the method to call.
4863      * @param[in] signature The signature of the method to call.
4864      * @param[out] result A pointer to store the byte return value.
4865      * @param[in] args An array of arguments to pass to the method.
4866      * @return Returns a status code of type `ani_status` indicating success or failure.
4867      */
4868     ani_status (*Object_CallMethodByName_Byte_A)(ani_env *env, ani_object object, const char *name,
4869                                                  const char *signature, ani_byte *result, const ani_value *args);
4870 
4871     /**
4872      * @brief Calls a method by name on an object and retrieves a byte return value (variadic arguments).
4873      *
4874      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4875      * byte result.
4876      *
4877      * @param[in] env A pointer to the environment structure.
4878      * @param[in] object The object on which the method is to be called.
4879      * @param[in] name The name of the method to call.
4880      * @param[in] signature The signature of the method to call.
4881      * @param[out] result A pointer to store the byte return value.
4882      * @param[in] args A `va_list` of arguments to pass to the method.
4883      * @return Returns a status code of type `ani_status` indicating success or failure.
4884      */
4885     ani_status (*Object_CallMethodByName_Byte_V)(ani_env *env, ani_object object, const char *name,
4886                                                  const char *signature, ani_byte *result, va_list args);
4887 
4888     /**
4889      * @brief Calls a method by name on an object and retrieves a short return value.
4890      *
4891      * This function calls the specified method by its name and signature on an object using variadic arguments and
4892      * retrieves a short result.
4893      *
4894      * @param[in] env A pointer to the environment structure.
4895      * @param[in] object The object on which the method is to be called.
4896      * @param[in] name The name of the method to call.
4897      * @param[in] signature The signature of the method to call.
4898      * @param[out] result A pointer to store the short return value.
4899      * @param[in] ... Variadic arguments to pass to the method.
4900      * @return Returns a status code of type `ani_status` indicating success or failure.
4901      */
4902     ani_status (*Object_CallMethodByName_Short)(ani_env *env, ani_object object, const char *name,
4903                                                 const char *signature, ani_short *result, ...);
4904 
4905     /**
4906      * @brief Calls a method by name on an object and retrieves a short return value (array-based).
4907      *
4908      * This function calls the specified method by its name and signature on an object using arguments provided in an
4909      * array and retrieves a short result.
4910      *
4911      * @param[in] env A pointer to the environment structure.
4912      * @param[in] object The object on which the method is to be called.
4913      * @param[in] name The name of the method to call.
4914      * @param[in] signature The signature of the method to call.
4915      * @param[out] result A pointer to store the short return value.
4916      * @param[in] args An array of arguments to pass to the method.
4917      * @return Returns a status code of type `ani_status` indicating success or failure.
4918      */
4919     ani_status (*Object_CallMethodByName_Short_A)(ani_env *env, ani_object object, const char *name,
4920                                                   const char *signature, ani_short *result, const ani_value *args);
4921 
4922     /**
4923      * @brief Calls a method by name on an object and retrieves a short return value (variadic arguments).
4924      *
4925      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4926      * short result.
4927      *
4928      * @param[in] env A pointer to the environment structure.
4929      * @param[in] object The object on which the method is to be called.
4930      * @param[in] name The name of the method to call.
4931      * @param[in] signature The signature of the method to call.
4932      * @param[out] result A pointer to store the short return value.
4933      * @param[in] args A `va_list` of arguments to pass to the method.
4934      * @return Returns a status code of type `ani_status` indicating success or failure.
4935      */
4936     ani_status (*Object_CallMethodByName_Short_V)(ani_env *env, ani_object object, const char *name,
4937                                                   const char *signature, ani_short *result, va_list args);
4938 
4939     /**
4940      * @brief Calls a method by name on an object and retrieves a integer return value.
4941      *
4942      * This function calls the specified method by its name and signature on an object using variadic arguments and
4943      * retrieves a integer result.
4944      *
4945      * @param[in] env A pointer to the environment structure.
4946      * @param[in] object The object on which the method is to be called.
4947      * @param[in] name The name of the method to call.
4948      * @param[in] signature The signature of the method to call.
4949      * @param[out] result A pointer to store the integer return value.
4950      * @param[in] ... Variadic arguments to pass to the method.
4951      * @return Returns a status code of type `ani_status` indicating success or failure.
4952      */
4953     ani_status (*Object_CallMethodByName_Int)(ani_env *env, ani_object object, const char *name, const char *signature,
4954                                               ani_int *result, ...);
4955 
4956     /**
4957      * @brief Calls a method by name on an object and retrieves a integer return value (array-based).
4958      *
4959      * This function calls the specified method by its name and signature on an object using arguments provided in an
4960      * array and retrieves a integer result.
4961      *
4962      * @param[in] env A pointer to the environment structure.
4963      * @param[in] object The object on which the method is to be called.
4964      * @param[in] name The name of the method to call.
4965      * @param[in] signature The signature of the method to call.
4966      * @param[out] result A pointer to store the integer return value.
4967      * @param[in] args An array of arguments to pass to the method.
4968      * @return Returns a status code of type `ani_status` indicating success or failure.
4969      */
4970     ani_status (*Object_CallMethodByName_Int_A)(ani_env *env, ani_object object, const char *name,
4971                                                 const char *signature, ani_int *result, const ani_value *args);
4972 
4973     /**
4974      * @brief Calls a method by name on an object and retrieves a integer return value (variadic arguments).
4975      *
4976      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
4977      * integer result.
4978      *
4979      * @param[in] env A pointer to the environment structure.
4980      * @param[in] object The object on which the method is to be called.
4981      * @param[in] name The name of the method to call.
4982      * @param[in] signature The signature of the method to call.
4983      * @param[out] result A pointer to store the integer return value.
4984      * @param[in] args A `va_list` of arguments to pass to the method.
4985      * @return Returns a status code of type `ani_status` indicating success or failure.
4986      */
4987     ani_status (*Object_CallMethodByName_Int_V)(ani_env *env, ani_object object, const char *name,
4988                                                 const char *signature, ani_int *result, va_list args);
4989 
4990     /**
4991      * @brief Calls a method by name on an object and retrieves a long return value.
4992      *
4993      * This function calls the specified method by its name and signature on an object using variadic arguments and
4994      * retrieves a long result.
4995      *
4996      * @param[in] env A pointer to the environment structure.
4997      * @param[in] object The object on which the method is to be called.
4998      * @param[in] name The name of the method to call.
4999      * @param[in] signature The signature of the method to call.
5000      * @param[out] result A pointer to store the long return value.
5001      * @param[in] ... Variadic arguments to pass to the method.
5002      * @return Returns a status code of type `ani_status` indicating success or failure.
5003      */
5004     ani_status (*Object_CallMethodByName_Long)(ani_env *env, ani_object object, const char *name, const char *signature,
5005                                                ani_long *result, ...);
5006 
5007     /**
5008      * @brief Calls a method by name on an object and retrieves a long return value (array-based).
5009      *
5010      * This function calls the specified method by its name and signature on an object using arguments provided in an
5011      * array and retrieves a long result.
5012      *
5013      * @param[in] env A pointer to the environment structure.
5014      * @param[in] object The object on which the method is to be called.
5015      * @param[in] name The name of the method to call.
5016      * @param[in] signature The signature of the method to call.
5017      * @param[out] result A pointer to store the long return value.
5018      * @param[in] args An array of arguments to pass to the method.
5019      * @return Returns a status code of type `ani_status` indicating success or failure.
5020      */
5021     ani_status (*Object_CallMethodByName_Long_A)(ani_env *env, ani_object object, const char *name,
5022                                                  const char *signature, ani_long *result, const ani_value *args);
5023 
5024     /**
5025      * @brief Calls a method by name on an object and retrieves a long return value (variadic arguments).
5026      *
5027      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5028      * long result.
5029      *
5030      * @param[in] env A pointer to the environment structure.
5031      * @param[in] object The object on which the method is to be called.
5032      * @param[in] name The name of the method to call.
5033      * @param[in] signature The signature of the method to call.
5034      * @param[out] result A pointer to store the long return value.
5035      * @param[in] args A `va_list` of arguments to pass to the method.
5036      * @return Returns a status code of type `ani_status` indicating success or failure.
5037      */
5038     ani_status (*Object_CallMethodByName_Long_V)(ani_env *env, ani_object object, const char *name,
5039                                                  const char *signature, ani_long *result, va_list args);
5040 
5041     /**
5042      * @brief Calls a method by name on an object and retrieves a float return value.
5043      *
5044      * This function calls the specified method by its name and signature on an object using variadic arguments and
5045      * retrieves a float result.
5046      *
5047      * @param[in] env A pointer to the environment structure.
5048      * @param[in] object The object on which the method is to be called.
5049      * @param[in] name The name of the method to call.
5050      * @param[in] signature The signature of the method to call.
5051      * @param[out] result A pointer to store the float return value.
5052      * @param[in] ... Variadic arguments to pass to the method.
5053      * @return Returns a status code of type `ani_status` indicating success or failure.
5054      */
5055     ani_status (*Object_CallMethodByName_Float)(ani_env *env, ani_object object, const char *name,
5056                                                 const char *signature, ani_float *result, ...);
5057 
5058     /**
5059      * @brief Calls a method by name on an object and retrieves a float return value (array-based).
5060      *
5061      * This function calls the specified method by its name and signature on an object using arguments provided in an
5062      * array and retrieves a float result.
5063      *
5064      * @param[in] env A pointer to the environment structure.
5065      * @param[in] object The object on which the method is to be called.
5066      * @param[in] name The name of the method to call.
5067      * @param[in] signature The signature of the method to call.
5068      * @param[out] result A pointer to store the float return value.
5069      * @param[in] args An array of arguments to pass to the method.
5070      * @return Returns a status code of type `ani_status` indicating success or failure.
5071      */
5072     ani_status (*Object_CallMethodByName_Float_A)(ani_env *env, ani_object object, const char *name,
5073                                                   const char *signature, ani_float *result, const ani_value *args);
5074 
5075     /**
5076      * @brief Calls a method by name on an object and retrieves a float return value (variadic arguments).
5077      *
5078      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5079      * float result.
5080      *
5081      * @param[in] env A pointer to the environment structure.
5082      * @param[in] object The object on which the method is to be called.
5083      * @param[in] name The name of the method to call.
5084      * @param[in] signature The signature of the method to call.
5085      * @param[out] result A pointer to store the float return value.
5086      * @param[in] args A `va_list` of arguments to pass to the method.
5087      * @return Returns a status code of type `ani_status` indicating success or failure.
5088      */
5089     ani_status (*Object_CallMethodByName_Float_V)(ani_env *env, ani_object object, const char *name,
5090                                                   const char *signature, ani_float *result, va_list args);
5091 
5092     /**
5093      * @brief Calls a method by name on an object and retrieves a double return value.
5094      *
5095      * This function calls the specified method by its name and signature on an object using variadic arguments and
5096      * retrieves a double result.
5097      *
5098      * @param[in] env A pointer to the environment structure.
5099      * @param[in] object The object on which the method is to be called.
5100      * @param[in] name The name of the method to call.
5101      * @param[in] signature The signature of the method to call.
5102      * @param[out] result A pointer to store the double return value.
5103      * @param[in] ... Variadic arguments to pass to the method.
5104      * @return Returns a status code of type `ani_status` indicating success or failure.
5105      */
5106     ani_status (*Object_CallMethodByName_Double)(ani_env *env, ani_object object, const char *name,
5107                                                  const char *signature, ani_double *result, ...);
5108 
5109     /**
5110      * @brief Calls a method by name on an object and retrieves a double return value (array-based).
5111      *
5112      * This function calls the specified method by its name and signature on an object using arguments provided in an
5113      * array and retrieves a double result.
5114      *
5115      * @param[in] env A pointer to the environment structure.
5116      * @param[in] object The object on which the method is to be called.
5117      * @param[in] name The name of the method to call.
5118      * @param[in] signature The signature of the method to call.
5119      * @param[out] result A pointer to store the double return value.
5120      * @param[in] args An array of arguments to pass to the method.
5121      * @return Returns a status code of type `ani_status` indicating success or failure.
5122      */
5123     ani_status (*Object_CallMethodByName_Double_A)(ani_env *env, ani_object object, const char *name,
5124                                                    const char *signature, ani_double *result, const ani_value *args);
5125 
5126     /**
5127      * @brief Calls a method by name on an object and retrieves a double return value (variadic arguments).
5128      *
5129      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5130      * double result.
5131      *
5132      * @param[in] env A pointer to the environment structure.
5133      * @param[in] object The object on which the method is to be called.
5134      * @param[in] name The name of the method to call.
5135      * @param[in] signature The signature of the method to call.
5136      * @param[out] result A pointer to store the double return value.
5137      * @param[in] args A `va_list` of arguments to pass to the method.
5138      * @return Returns a status code of type `ani_status` indicating success or failure.
5139      */
5140     ani_status (*Object_CallMethodByName_Double_V)(ani_env *env, ani_object object, const char *name,
5141                                                    const char *signature, ani_double *result, va_list args);
5142 
5143     /**
5144      * @brief Calls a method by name on an object and retrieves a reference return value.
5145      *
5146      * This function calls the specified method by its name and signature on an object using variadic arguments and
5147      * retrieves a reference result.
5148      *
5149      * @param[in] env A pointer to the environment structure.
5150      * @param[in] object The object on which the method is to be called.
5151      * @param[in] name The name of the method to call.
5152      * @param[in] signature The signature of the method to call.
5153      * @param[out] result A pointer to store the reference return value.
5154      * @param[in] ... Variadic arguments to pass to the method.
5155      * @return Returns a status code of type `ani_status` indicating success or failure.
5156      */
5157     ani_status (*Object_CallMethodByName_Ref)(ani_env *env, ani_object object, const char *name, const char *signature,
5158                                               ani_ref *result, ...);
5159 
5160     /**
5161      * @brief Calls a method by name on an object and retrieves a reference return value (array-based).
5162      *
5163      * This function calls the specified method by its name and signature on an object using arguments provided in an
5164      * array and retrieves a reference result.
5165      *
5166      * @param[in] env A pointer to the environment structure.
5167      * @param[in] object The object on which the method is to be called.
5168      * @param[in] name The name of the method to call.
5169      * @param[in] signature The signature of the method to call.
5170      * @param[out] result A pointer to store the reference return value.
5171      * @param[in] args An array of arguments to pass to the method.
5172      * @return Returns a status code of type `ani_status` indicating success or failure.
5173      */
5174     ani_status (*Object_CallMethodByName_Ref_A)(ani_env *env, ani_object object, const char *name,
5175                                                 const char *signature, ani_ref *result, const ani_value *args);
5176 
5177     /**
5178      * @brief Calls a method by name on an object and retrieves a reference return value (variadic arguments).
5179      *
5180      * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a
5181      * reference result.
5182      *
5183      * @param[in] env A pointer to the environment structure.
5184      * @param[in] object The object on which the method is to be called.
5185      * @param[in] name The name of the method to call.
5186      * @param[in] signature The signature of the method to call.
5187      * @param[out] result A pointer to store the reference return value.
5188      * @param[in] args A `va_list` of arguments to pass to the method.
5189      * @return Returns a status code of type `ani_status` indicating success or failure.
5190      */
5191     ani_status (*Object_CallMethodByName_Ref_V)(ani_env *env, ani_object object, const char *name,
5192                                                 const char *signature, ani_ref *result, va_list args);
5193 
5194     /**
5195      * @brief Calls a method by name on an object with no return value.
5196      *
5197      * This function calls the specified method by its name and signature on an object using variadic arguments. The
5198      * method does not return a value.
5199      *
5200      * @param[in] env A pointer to the environment structure.
5201      * @param[in] object The object on which the method is to be called.
5202      * @param[in] name The name of the method to call.
5203      * @param[in] signature The signature of the method to call.
5204      * @param[in] ... Variadic arguments to pass to the method.
5205      * @return Returns a status code of type `ani_status` indicating success or failure.
5206      */
5207     ani_status (*Object_CallMethodByName_Void)(ani_env *env, ani_object object, const char *name, const char *signature,
5208                                                ...);
5209 
5210     /**
5211      * @brief Calls a method by name on an object with no return value (array-based).
5212      *
5213      * This function calls the specified method by its name and signature on an object using arguments provided in an
5214      * array. The method does not return a value.
5215      *
5216      * @param[in] env A pointer to the environment structure.
5217      * @param[in] object The object on which the method is to be called.
5218      * @param[in] name The name of the method to call.
5219      * @param[in] signature The signature of the method to call.
5220      * @param[in] args An array of arguments to pass to the method.
5221      * @return Returns a status code of type `ani_status` indicating success or failure.
5222      */
5223     ani_status (*Object_CallMethodByName_Void_A)(ani_env *env, ani_object object, const char *name,
5224                                                  const char *signature, const ani_value *args);
5225 
5226     /**
5227      * @brief Calls a method by name on an object with no return value (variadic arguments).
5228      *
5229      * This function calls the specified method by its name and signature on an object using a `va_list`. The method
5230      * does not return a value.
5231      *
5232      * @param[in] env A pointer to the environment structure.
5233      * @param[in] object The object on which the method is to be called.
5234      * @param[in] name The name of the method to call.
5235      * @param[in] signature The signature of the method to call.
5236      * @param[in] args A `va_list` of arguments to pass to the method.
5237      * @return Returns a status code of type `ani_status` indicating success or failure.
5238      */
5239     ani_status (*Object_CallMethodByName_Void_V)(ani_env *env, ani_object object, const char *name,
5240                                                  const char *signature, va_list args);
5241 
5242     /**
5243      * @brief Retrieves the number of items in a tuple value.
5244      *
5245      * This function retrieves the total number of items in the specified tuple value.
5246      *
5247      * @param[in] env A pointer to the environment structure.
5248      * @param[in] tuple_value The tuple value whose number of items is to be retrieved.
5249      * @param[out] result A pointer to store the number of items.
5250      * @return Returns a status code of type `ani_status` indicating success or failure.
5251      */
5252     ani_status (*TupleValue_GetNumberOfItems)(ani_env *env, ani_tuple_value tuple_value, ani_size *result);
5253 
5254     /**
5255      * @brief Retrieves a boolean item from a tuple value.
5256      *
5257      * This function retrieves the boolean value of the item at the specified index in the tuple value.
5258      *
5259      * @param[in] env A pointer to the environment structure.
5260      * @param[in] tuple_value The tuple value containing the item.
5261      * @param[in] index The index of the item.
5262      * @param[out] result A pointer to store the boolean value of the item.
5263      * @return Returns a status code of type `ani_status` indicating success or failure.
5264      */
5265     ani_status (*TupleValue_GetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5266                                              ani_boolean *result);
5267 
5268     /**
5269      * @brief Retrieves a char item from a tuple value.
5270      *
5271      * This function retrieves the char value of the item at the specified index in the tuple value.
5272      *
5273      * @param[in] env A pointer to the environment structure.
5274      * @param[in] tuple_value The tuple value containing the item.
5275      * @param[in] index The index of the item.
5276      * @param[out] result A pointer to store the char value of the item.
5277      * @return Returns a status code of type `ani_status` indicating success or failure.
5278      */
5279     ani_status (*TupleValue_GetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char *result);
5280 
5281     /**
5282      * @brief Retrieves a byte item from a tuple value.
5283      *
5284      * This function retrieves the byte value of the item at the specified index in the tuple value.
5285      *
5286      * @param[in] env A pointer to the environment structure.
5287      * @param[in] tuple_value The tuple value containing the item.
5288      * @param[in] index The index of the item.
5289      * @param[out] result A pointer to store the byte value of the item.
5290      * @return Returns a status code of type `ani_status` indicating success or failure.
5291      */
5292     ani_status (*TupleValue_GetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte *result);
5293 
5294     /**
5295      * @brief Retrieves a short item from a tuple value.
5296      *
5297      * This function retrieves the short value of the item at the specified index in the tuple value.
5298      *
5299      * @param[in] env A pointer to the environment structure.
5300      * @param[in] tuple_value The tuple value containing the item.
5301      * @param[in] index The index of the item.
5302      * @param[out] result A pointer to store the short value of the item.
5303      * @return Returns a status code of type `ani_status` indicating success or failure.
5304      */
5305     ani_status (*TupleValue_GetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5306                                            ani_short *result);
5307 
5308     /**
5309      * @brief Retrieves a integer item from a tuple value.
5310      *
5311      * This function retrieves the integer value of the item at the specified index in the tuple value.
5312      *
5313      * @param[in] env A pointer to the environment structure.
5314      * @param[in] tuple_value The tuple value containing the item.
5315      * @param[in] index The index of the item.
5316      * @param[out] result A pointer to store the integer value of the item.
5317      * @return Returns a status code of type `ani_status` indicating success or failure.
5318      */
5319     ani_status (*TupleValue_GetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int *result);
5320 
5321     /**
5322      * @brief Retrieves a long item from a tuple value.
5323      *
5324      * This function retrieves the long value of the item at the specified index in the tuple value.
5325      *
5326      * @param[in] env A pointer to the environment structure.
5327      * @param[in] tuple_value The tuple value containing the item.
5328      * @param[in] index The index of the item.
5329      * @param[out] result A pointer to store the long value of the item.
5330      * @return Returns a status code of type `ani_status` indicating success or failure.
5331      */
5332     ani_status (*TupleValue_GetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long *result);
5333 
5334     /**
5335      * @brief Retrieves a float item from a tuple value.
5336      *
5337      * This function retrieves the float value of the item at the specified index in the tuple value.
5338      *
5339      * @param[in] env A pointer to the environment structure.
5340      * @param[in] tuple_value The tuple value containing the item.
5341      * @param[in] index The index of the item.
5342      * @param[out] result A pointer to store the float value of the item.
5343      * @return Returns a status code of type `ani_status` indicating success or failure.
5344      */
5345     ani_status (*TupleValue_GetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5346                                            ani_float *result);
5347 
5348     /**
5349      * @brief Retrieves a double item from a tuple value.
5350      *
5351      * This function retrieves the double value of the item at the specified index in the tuple value.
5352      *
5353      * @param[in] env A pointer to the environment structure.
5354      * @param[in] tuple_value The tuple value containing the item.
5355      * @param[in] index The index of the item.
5356      * @param[out] result A pointer to store the double value of the item.
5357      * @return Returns a status code of type `ani_status` indicating success or failure.
5358      */
5359     ani_status (*TupleValue_GetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5360                                             ani_double *result);
5361 
5362     /**
5363      * @brief Retrieves a reference item from a tuple value.
5364      *
5365      * This function retrieves the reference value of the item at the specified index in the tuple value.
5366      *
5367      * @param[in] env A pointer to the environment structure.
5368      * @param[in] tuple_value The tuple value containing the item.
5369      * @param[in] index The index of the item.
5370      * @param[out] result A pointer to store the reference value of the item.
5371      * @return Returns a status code of type `ani_status` indicating success or failure.
5372      */
5373     ani_status (*TupleValue_GetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref *result);
5374 
5375     /**
5376      * @brief Sets a boolean value to an item in a tuple value.
5377      *
5378      * This function assigns a boolean value to the item at the specified index in the tuple value.
5379      *
5380      * @param[in] env A pointer to the environment structure.
5381      * @param[in] tuple_value The tuple value containing the item.
5382      * @param[in] index The index of the item.
5383      * @param[in] value The boolean value to assign to the item.
5384      * @return Returns a status code of type `ani_status` indicating success or failure.
5385      */
5386     ani_status (*TupleValue_SetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5387                                              ani_boolean value);
5388 
5389     /**
5390      * @brief Sets a char value to an item in a tuple value.
5391      *
5392      * This function assigns a char value to the item at the specified index in the tuple value.
5393      *
5394      * @param[in] env A pointer to the environment structure.
5395      * @param[in] tuple_value The tuple value containing the item.
5396      * @param[in] index The index of the item.
5397      * @param[in] value The char value to assign to the item.
5398      * @return Returns a status code of type `ani_status` indicating success or failure.
5399      */
5400     ani_status (*TupleValue_SetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char value);
5401 
5402     /**
5403      * @brief Sets a byte value to an item in a tuple value.
5404      *
5405      * This function assigns a byte value to the item at the specified index in the tuple value.
5406      *
5407      * @param[in] env A pointer to the environment structure.
5408      * @param[in] tuple_value The tuple value containing the item.
5409      * @param[in] index The index of the item.
5410      * @param[in] value The byte value to assign to the item.
5411      * @return Returns a status code of type `ani_status` indicating success or failure.
5412      */
5413     ani_status (*TupleValue_SetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte value);
5414 
5415     /**
5416      * @brief Sets a short value to an item in a tuple value.
5417      *
5418      * This function assigns a short value to the item at the specified index in the tuple value.
5419      *
5420      * @param[in] env A pointer to the environment structure.
5421      * @param[in] tuple_value The tuple value containing the item.
5422      * @param[in] index The index of the item.
5423      * @param[in] value The short value to assign to the item.
5424      * @return Returns a status code of type `ani_status` indicating success or failure.
5425      */
5426     ani_status (*TupleValue_SetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_short value);
5427 
5428     /**
5429      * @brief Sets a integer value to an item in a tuple value.
5430      *
5431      * This function assigns a integer value to the item at the specified index in the tuple value.
5432      *
5433      * @param[in] env A pointer to the environment structure.
5434      * @param[in] tuple_value The tuple value containing the item.
5435      * @param[in] index The index of the item.
5436      * @param[in] value The integer value to assign to the item.
5437      * @return Returns a status code of type `ani_status` indicating success or failure.
5438      */
5439     ani_status (*TupleValue_SetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int value);
5440 
5441     /**
5442      * @brief Sets a long value to an item in a tuple value.
5443      *
5444      * This function assigns a long value to the item at the specified index in the tuple value.
5445      *
5446      * @param[in] env A pointer to the environment structure.
5447      * @param[in] tuple_value The tuple value containing the item.
5448      * @param[in] index The index of the item.
5449      * @param[in] value The long value to assign to the item.
5450      * @return Returns a status code of type `ani_status` indicating success or failure.
5451      */
5452     ani_status (*TupleValue_SetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long value);
5453 
5454     /**
5455      * @brief Sets a float value to an item in a tuple value.
5456      *
5457      * This function assigns a float value to the item at the specified index in the tuple value.
5458      *
5459      * @param[in] env A pointer to the environment structure.
5460      * @param[in] tuple_value The tuple value containing the item.
5461      * @param[in] index The index of the item.
5462      * @param[in] value The float value to assign to the item.
5463      * @return Returns a status code of type `ani_status` indicating success or failure.
5464      */
5465     ani_status (*TupleValue_SetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_float value);
5466 
5467     /**
5468      * @brief Sets a double value to an item in a tuple value.
5469      *
5470      * This function assigns a double value to the item at the specified index in the tuple value.
5471      *
5472      * @param[in] env A pointer to the environment structure.
5473      * @param[in] tuple_value The tuple value containing the item.
5474      * @param[in] index The index of the item.
5475      * @param[in] value The double value to assign to the item.
5476      * @return Returns a status code of type `ani_status` indicating success or failure.
5477      */
5478     ani_status (*TupleValue_SetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index,
5479                                             ani_double value);
5480 
5481     /**
5482      * @brief Sets a reference value to an item in a tuple value.
5483      *
5484      * This function assigns a reference value to the item at the specified index in the tuple value.
5485      *
5486      * @param[in] env A pointer to the environment structure.
5487      * @param[in] tuple_value The tuple value containing the item.
5488      * @param[in] index The index of the item.
5489      * @param[in] value The reference value to assign to the item.
5490      * @return Returns a status code of type `ani_status` indicating success or failure.
5491      */
5492     ani_status (*TupleValue_SetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref value);
5493 
5494     /**
5495      * @brief Creates a global reference.
5496      *
5497      * This function creates a global reference from a local reference.
5498      *
5499      * @param[in] env A pointer to the environment structure.
5500      * @param[in] ref The local reference to convert to a global reference.
5501      * @param[out] result A pointer to store the created global reference.
5502      * @return Returns a status code of type `ani_status` indicating success or failure.
5503      */
5504     ani_status (*GlobalReference_Create)(ani_env *env, ani_ref ref, ani_ref *result);
5505 
5506     /**
5507      * @brief Deletes a global reference.
5508      *
5509      * This function deletes the specified global reference, releasing all associated resources.
5510      *
5511      * @param[in] env A pointer to the environment structure.
5512      * @param[in] gref The global reference to delete.
5513      * @return Returns a status code of type `ani_status` indicating success or failure.
5514      */
5515     ani_status (*GlobalReference_Delete)(ani_env *env, ani_ref gref);
5516 
5517     /**
5518      * @brief Creates a weak reference.
5519      *
5520      * This function creates a weak reference from a local reference.
5521      *
5522      * @param[in] env A pointer to the environment structure.
5523      * @param[in] ref The local reference to convert to a weak reference.
5524      * @param[out] result A pointer to store the created weak reference.
5525      * @return Returns a status code of type `ani_status` indicating success or failure.
5526      */
5527     ani_status (*WeakReference_Create)(ani_env *env, ani_ref ref, ani_wref *result);
5528 
5529     /**
5530      * @brief Deletes a weak reference.
5531      *
5532      * This function deletes the specified weak reference, releasing all associated resources.
5533      *
5534      * @param[in] env A pointer to the environment structure.
5535      * @param[in] wref The weak reference to delete.
5536      * @return Returns a status code of type `ani_status` indicating success or failure.
5537      */
5538     ani_status (*WeakReference_Delete)(ani_env *env, ani_wref wref);
5539 
5540     /**
5541      * @brief Retrieves the local reference associated with a weak reference.
5542      *
5543      * This function retrieves the local reference that corresponds to the specified weak reference.
5544      *
5545      * @param[in] env A pointer to the environment structure.
5546      * @param[in] wref The weak reference to query.
5547      * @param[out] was_released_result A pointer to boolean flag which indicates that wref is GC collected.
5548      * @param[out] ref_result A pointer to store the retrieved local reference.
5549      * @return Returns a status code of type `ani_status` indicating success or failure.
5550      */
5551     ani_status (*WeakReference_GetReference)(ani_env *env, ani_wref wref, ani_boolean *was_released_result,
5552                                              ani_ref *ref_result);
5553 
5554     /**
5555      * @brief Creates a new array buffer.
5556      *
5557      * This function creates a new array buffer with the specified length and returns a pointer to the allocated data.
5558      *
5559      * @param[in] env A pointer to the environment structure.
5560      * @param[in] length The length of the array buffer in bytes.
5561      * @param[out] data_result A pointer to store the allocated data of the array buffer.
5562      * @param[out] arraybuffer_result A pointer to store the created array buffer object.
5563      * @return Returns a status code of type `ani_status` indicating success or failure.
5564      */
5565     ani_status (*CreateArrayBuffer)(ani_env *env, size_t length, void **data_result,
5566                                     ani_arraybuffer *arraybuffer_result);
5567 
5568     /**
5569      * @brief Creates a new array buffer using external data.
5570      *
5571      * This function creates an array buffer that uses external data. The provided finalizer will be called when the
5572      * array buffer is no longer needed.
5573      *
5574      * @param[in] env A pointer to the environment structure.
5575      * @param[in] external_data A pointer to the external data to be used by the array buffer.
5576      * @param[in] length The length of the external data in bytes.
5577      * @param[in] finalizer A callback function to be called when the array buffer is finalized. Can be nullptr.
5578      * @param[in] hint A user-defined hint to be passed to the finalizer. Can be nullptr.
5579      * @param[out] result A pointer to store the created array buffer object.
5580      * @return Returns a status code of type `ani_status` indicating success or failure.
5581      */
5582     ani_status (*CreateArrayBufferExternal)(ani_env *env, void *external_data, size_t length, ani_finalizer finalizer,
5583                                             void *hint, ani_arraybuffer *result);
5584 
5585     /**
5586      * @brief Retrieves information about an array buffer.
5587      *
5588      * This function retrieves the data pointer and length of the specified array buffer.
5589      *
5590      * @param[in] env A pointer to the environment structure.
5591      * @param[in] arraybuffer The array buffer to query.
5592      * @param[out] data_result A pointer to store the data of the array buffer.
5593      * @param[out] length_result A pointer to store the length of the array buffer in bytes.
5594      * @return Returns a status code of type `ani_status` indicating success or failure.
5595      */
5596     ani_status (*ArrayBuffer_GetInfo)(ani_env *env, ani_arraybuffer arraybuffer, void **data_result,
5597                                       size_t *length_result);
5598 
5599     /**
5600      * @brief Creates a new Promise.
5601      *
5602      * This function creates a new promise and a resolver to manage it.
5603      *
5604      * @param[in] env A pointer to the environment structure.
5605      * @param[out] result_resolver A pointer to store the created resolver.
5606      * @param[out] result_promise A pointer to store the created promise.
5607      * @return Returns a status code of type `ani_status` indicating success or failure.
5608      */
5609     ani_status (*Promise_New)(ani_env *env, ani_resolver *result_resolver, ani_object *result_promise);
5610 
5611     /**
5612      * @brief Resolves a promise.
5613      *
5614      * This function resolves a promise by way of the resolver with which it is associated
5615      * and queues promise `then` callbacks.
5616      *
5617      * @param[in] env A pointer to the environment structure.
5618      * @param[in] resolver A resolver whose associated promise to resolve.
5619      * @param[in] resolution A reference with which to resolve the promise.
5620      * @return Returns a status code of type `ani_status` indicating success or failure.
5621      * The `resolver` is freed upon successful completion.
5622      */
5623     ani_status (*PromiseResolver_Resolve)(ani_env *env, ani_resolver resolver, ani_ref resolution);
5624 
5625     /**
5626      * @brief Rejects a promise.
5627      *
5628      * This function rejects a promise by way of the resolver with which it is associated
5629      * and queues promise `catch` callbacks.
5630      *
5631      * @param[in] env A pointer to the environment structure.
5632      * @param[in] resolver A resolver whose associated promise to resolve.
5633      * @param[in] rejection An error with which to reject the promise.
5634      * @return Returns a status code of type `ani_status` indicating success or failure.
5635      * The `resolver` is freed upon successful completion.
5636      */
5637     ani_status (*PromiseResolver_Reject)(ani_env *env, ani_resolver resolver, ani_error rejection);
5638 
5639     /**
5640      * @brief Creates a new fixedarray of booleans.
5641      *
5642      * This function creates a new array of the specified length for boolean values.
5643      *
5644      * @param[in] env A pointer to the environment structure.
5645      * @param[in] length The length of the fixedarray to be created.
5646      * @param[out] result A pointer to store the created FixedArray.
5647      * @return Returns a status code of type `ani_status` indicating success or failure.
5648      */
5649     ani_status (*FixedArray_New_Boolean)(ani_env *env, ani_size length, ani_array_boolean *result);
5650 
5651     /**
5652      * @brief Creates a new FixedArray of characters.
5653      *
5654      * This function creates a new FixedArray of the specified length for character values.
5655      *
5656      * @param[in] env A pointer to the environment structure.
5657      * @param[in] length The length of the FixedArray to be created.
5658      * @param[out] result A pointer to store the created FixedArray.
5659      * @return Returns a status code of type `ani_status` indicating success or failure.
5660      */
5661     ani_status (*FixedArray_New_Char)(ani_env *env, ani_size length, ani_array_char *result);
5662 
5663     /**
5664      * @brief Creates a new FixedArray of bytes.
5665      *
5666      * This function creates a new FixedArray of the specified length for byte values.
5667      *
5668      * @param[in] env A pointer to the environment structure.
5669      * @param[in] length The length of the FixedArray to be created.
5670      * @param[out] result A pointer to store the created FixedArray.
5671      * @return Returns a status code of type `ani_status` indicating success or failure.
5672      */
5673     ani_status (*FixedArray_New_Byte)(ani_env *env, ani_size length, ani_array_byte *result);
5674 
5675     /**
5676      * @brief Creates a new FixedArray of shorts.
5677      *
5678      * This function creates a new FixedArray of the specified length for short integer values.
5679      *
5680      * @param[in] env A pointer to the environment structure.
5681      * @param[in] length The length of the FixedArray to be created.
5682      * @param[out] result A pointer to store the created FixedArray.
5683      * @return Returns a status code of type `ani_status` indicating success or failure.
5684      */
5685     ani_status (*FixedArray_New_Short)(ani_env *env, ani_size length, ani_array_short *result);
5686 
5687     /**
5688      * @brief Creates a new FixedArray of integers.
5689      *
5690      * This function creates a new FixedArray of the specified length for integer values.
5691      *
5692      * @param[in] env A pointer to the environment structure.
5693      * @param[in] length The length of the FixedArray to be created.
5694      * @param[out] result A pointer to store the created FixedArray.
5695      * @return Returns a status code of type `ani_status` indicating success or failure.
5696      */
5697     ani_status (*FixedArray_New_Int)(ani_env *env, ani_size length, ani_array_int *result);
5698 
5699     /**
5700      * @brief Creates a new FixedArray of long integers.
5701      *
5702      * This function creates a new FixedArray of the specified length for long integer values.
5703      *
5704      * @param[in] env A pointer to the environment structure.
5705      * @param[in] length The length of the FixedArray to be created.
5706      * @param[out] result A pointer to store the created FixedArray.
5707      * @return Returns a status code of type `ani_status` indicating success or failure.
5708      */
5709     ani_status (*FixedArray_New_Long)(ani_env *env, ani_size length, ani_array_long *result);
5710 
5711     /**
5712      * @brief Creates a new FixedArray of floats.
5713      *
5714      * This function creates a new FixedArray of the specified length for float values.
5715      *
5716      * @param[in] env A pointer to the environment structure.
5717      * @param[in] length The length of the FixedArray to be created.
5718      * @param[out] result A pointer to store the created FixedArray.
5719      * @return Returns a status code of type `ani_status` indicating success or failure.
5720      */
5721     ani_status (*FixedArray_New_Float)(ani_env *env, ani_size length, ani_array_float *result);
5722 
5723     /**
5724      * @brief Creates a new FixedArray of doubles.
5725      *
5726      * This function creates a new FixedArray of the specified length for double values.
5727      *
5728      * @param[in] env A pointer to the environment structure.
5729      * @param[in] length The length of the FixedArray to be created.
5730      * @param[out] result A pointer to store the created FixedArray.
5731      * @return Returns a status code of type `ani_status` indicating success or failure.
5732      */
5733     ani_status (*FixedArray_New_Double)(ani_env *env, ani_size length, ani_array_double *result);
5734 
5735     /**
5736      * @brief Creates a new FixedArray of references.
5737      *
5738      * This function creates a new FixedArray of references, optionally initializing it with an FixedArray of
5739      * references.
5740      *
5741      * @param[in] env A pointer to the environment structure.
5742      * @param[in] type The type of the elements of the FixedArray.
5743      * @param[in] length The length of the FixedArray to be created.
5744      * @param[in] initial_element An optional reference to initialize the FixedArray. Can be null.
5745      * @param[out] result A pointer to store the created FixedArray of references.
5746      * @return Returns a status code of type `ani_status` indicating success or failure.
5747      */
5748     ani_status (*FixedArray_New_Ref)(ani_env *env, ani_type type, ani_size length, ani_ref initial_element,
5749                                      ani_array_ref *result);
5750 };
5751 
5752 // C++ API
5753 struct __ani_vm {
5754     const struct __ani_vm_api *c_api;
5755 
5756 #ifdef __cplusplus
DestroyVM__ani_vm5757     ani_status DestroyVM()
5758     {
5759         return c_api->DestroyVM(this);
5760     }
GetEnv__ani_vm5761     ani_status GetEnv(uint32_t version, ani_env **result)
5762     {
5763         return c_api->GetEnv(this, version, result);
5764     }
AttachCurrentThread__ani_vm5765     ani_status AttachCurrentThread(const ani_options *options, uint32_t version, ani_env **result)
5766     {
5767         return c_api->AttachCurrentThread(this, options, version, result);
5768     }
DetachCurrentThread__ani_vm5769     ani_status DetachCurrentThread()
5770     {
5771         return c_api->DetachCurrentThread(this);
5772     }
5773 #endif  // __cplusplus
5774 };
5775 
5776 struct __ani_env {
5777     const struct __ani_interaction_api *c_api;
5778 
5779 #ifdef __cplusplus
GetVersion__ani_env5780     ani_status GetVersion(uint32_t *result)
5781     {
5782         return c_api->GetVersion(this, result);
5783     }
GetVM__ani_env5784     ani_status GetVM(ani_vm **result)
5785     {
5786         return c_api->GetVM(this, result);
5787     }
Object_New__ani_env5788     ani_status Object_New(ani_class cls, ani_method method, ani_object *result, ...)
5789     {
5790         va_list args;
5791         va_start(args, result);
5792         ani_status status = c_api->Object_New_V(this, cls, method, result, args);
5793         va_end(args);
5794         return status;
5795     }
Object_New_A__ani_env5796     ani_status Object_New_A(ani_class cls, ani_method method, ani_object *result, const ani_value *args)
5797     {
5798         return c_api->Object_New_A(this, cls, method, result, args);
5799     }
Object_New_V__ani_env5800     ani_status Object_New_V(ani_class cls, ani_method method, ani_object *result, va_list args)
5801     {
5802         return c_api->Object_New_V(this, cls, method, result, args);
5803     }
Object_GetType__ani_env5804     ani_status Object_GetType(ani_object object, ani_type *result)
5805     {
5806         return c_api->Object_GetType(this, object, result);
5807     }
Object_InstanceOf__ani_env5808     ani_status Object_InstanceOf(ani_object object, ani_type type, ani_boolean *result)
5809     {
5810         return c_api->Object_InstanceOf(this, object, type, result);
5811     }
Type_GetSuperClass__ani_env5812     ani_status Type_GetSuperClass(ani_type type, ani_class *result)
5813     {
5814         return c_api->Type_GetSuperClass(this, type, result);
5815     }
Type_IsAssignableFrom__ani_env5816     ani_status Type_IsAssignableFrom(ani_type from_type, ani_type to_type, ani_boolean *result)
5817     {
5818         return c_api->Type_IsAssignableFrom(this, from_type, to_type, result);
5819     }
FindModule__ani_env5820     ani_status FindModule(const char *module_descriptor, ani_module *result)
5821     {
5822         return c_api->FindModule(this, module_descriptor, result);
5823     }
FindNamespace__ani_env5824     ani_status FindNamespace(const char *namespace_descriptor, ani_namespace *result)
5825     {
5826         return c_api->FindNamespace(this, namespace_descriptor, result);
5827     }
FindClass__ani_env5828     ani_status FindClass(const char *class_descriptor, ani_class *result)
5829     {
5830         return c_api->FindClass(this, class_descriptor, result);
5831     }
FindEnum__ani_env5832     ani_status FindEnum(const char *enum_descriptor, ani_enum *result)
5833     {
5834         return c_api->FindEnum(this, enum_descriptor, result);
5835     }
Module_FindNamespace__ani_env5836     ani_status Module_FindNamespace(ani_module module, const char *namespace_descriptor, ani_namespace *result)
5837     {
5838         return c_api->Module_FindNamespace(this, module, namespace_descriptor, result);
5839     }
Module_FindClass__ani_env5840     ani_status Module_FindClass(ani_module module, const char *class_descriptor, ani_class *result)
5841     {
5842         return c_api->Module_FindClass(this, module, class_descriptor, result);
5843     }
Module_FindEnum__ani_env5844     ani_status Module_FindEnum(ani_module module, const char *enum_descriptor, ani_enum *result)
5845     {
5846         return c_api->Module_FindEnum(this, module, enum_descriptor, result);
5847     }
Module_FindFunction__ani_env5848     ani_status Module_FindFunction(ani_module module, const char *name, const char *signature, ani_function *result)
5849     {
5850         return c_api->Module_FindFunction(this, module, name, signature, result);
5851     }
Module_FindVariable__ani_env5852     ani_status Module_FindVariable(ani_module module, const char *name, ani_variable *result)
5853     {
5854         return c_api->Module_FindVariable(this, module, name, result);
5855     }
Namespace_FindNamespace__ani_env5856     ani_status Namespace_FindNamespace(ani_namespace ns, const char *namespace_descriptor, ani_namespace *result)
5857     {
5858         return c_api->Namespace_FindNamespace(this, ns, namespace_descriptor, result);
5859     }
Namespace_FindClass__ani_env5860     ani_status Namespace_FindClass(ani_namespace ns, const char *class_descriptor, ani_class *result)
5861     {
5862         return c_api->Namespace_FindClass(this, ns, class_descriptor, result);
5863     }
Namespace_FindEnum__ani_env5864     ani_status Namespace_FindEnum(ani_namespace ns, const char *enum_descriptor, ani_enum *result)
5865     {
5866         return c_api->Namespace_FindEnum(this, ns, enum_descriptor, result);
5867     }
Namespace_FindFunction__ani_env5868     ani_status Namespace_FindFunction(ani_namespace ns, const char *name, const char *signature, ani_function *result)
5869     {
5870         return c_api->Namespace_FindFunction(this, ns, name, signature, result);
5871     }
Namespace_FindVariable__ani_env5872     ani_status Namespace_FindVariable(ani_namespace ns, const char *name, ani_variable *result)
5873     {
5874         return c_api->Namespace_FindVariable(this, ns, name, result);
5875     }
Module_BindNativeFunctions__ani_env5876     ani_status Module_BindNativeFunctions(ani_module module, const ani_native_function *functions,
5877                                           ani_size nr_functions)
5878     {
5879         return c_api->Module_BindNativeFunctions(this, module, functions, nr_functions);
5880     }
Namespace_BindNativeFunctions__ani_env5881     ani_status Namespace_BindNativeFunctions(ani_namespace ns, const ani_native_function *functions,
5882                                              ani_size nr_functions)
5883     {
5884         return c_api->Namespace_BindNativeFunctions(this, ns, functions, nr_functions);
5885     }
Class_BindNativeMethods__ani_env5886     ani_status Class_BindNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods)
5887     {
5888         return c_api->Class_BindNativeMethods(this, cls, methods, nr_methods);
5889     }
Reference_Delete__ani_env5890     ani_status Reference_Delete(ani_ref ref)
5891     {
5892         return c_api->Reference_Delete(this, ref);
5893     }
EnsureEnoughReferences__ani_env5894     ani_status EnsureEnoughReferences(ani_size nr_refs)
5895     {
5896         return c_api->EnsureEnoughReferences(this, nr_refs);
5897     }
CreateLocalScope__ani_env5898     ani_status CreateLocalScope(ani_size nr_refs)
5899     {
5900         return c_api->CreateLocalScope(this, nr_refs);
5901     }
DestroyLocalScope__ani_env5902     ani_status DestroyLocalScope()
5903     {
5904         return c_api->DestroyLocalScope(this);
5905     }
CreateEscapeLocalScope__ani_env5906     ani_status CreateEscapeLocalScope(ani_size nr_refs)
5907     {
5908         return c_api->CreateEscapeLocalScope(this, nr_refs);
5909     }
DestroyEscapeLocalScope__ani_env5910     ani_status DestroyEscapeLocalScope(ani_ref ref, ani_ref *result)
5911     {
5912         return c_api->DestroyEscapeLocalScope(this, ref, result);
5913     }
ThrowError__ani_env5914     ani_status ThrowError(ani_error err)
5915     {
5916         return c_api->ThrowError(this, err);
5917     }
ExistUnhandledError__ani_env5918     ani_status ExistUnhandledError(ani_boolean *result)
5919     {
5920         return c_api->ExistUnhandledError(this, result);
5921     }
GetUnhandledError__ani_env5922     ani_status GetUnhandledError(ani_error *result)
5923     {
5924         return c_api->GetUnhandledError(this, result);
5925     }
ResetError__ani_env5926     ani_status ResetError()
5927     {
5928         return c_api->ResetError(this);
5929     }
DescribeError__ani_env5930     ani_status DescribeError()
5931     {
5932         return c_api->DescribeError(this);
5933     }
Abort__ani_env5934     ani_status Abort(const char *message)
5935     {
5936         return c_api->Abort(this, message);
5937     }
GetNull__ani_env5938     ani_status GetNull(ani_ref *result)
5939     {
5940         return c_api->GetNull(this, result);
5941     }
GetUndefined__ani_env5942     ani_status GetUndefined(ani_ref *result)
5943     {
5944         return c_api->GetUndefined(this, result);
5945     }
Reference_IsNull__ani_env5946     ani_status Reference_IsNull(ani_ref ref, ani_boolean *result)
5947     {
5948         return c_api->Reference_IsNull(this, ref, result);
5949     }
Reference_IsUndefined__ani_env5950     ani_status Reference_IsUndefined(ani_ref ref, ani_boolean *result)
5951     {
5952         return c_api->Reference_IsUndefined(this, ref, result);
5953     }
Reference_IsNullishValue__ani_env5954     ani_status Reference_IsNullishValue(ani_ref ref, ani_boolean *result)
5955     {
5956         return c_api->Reference_IsNullishValue(this, ref, result);
5957     }
Reference_Equals__ani_env5958     ani_status Reference_Equals(ani_ref ref0, ani_ref ref1, ani_boolean *result)
5959     {
5960         return c_api->Reference_Equals(this, ref0, ref1, result);
5961     }
Reference_StrictEquals__ani_env5962     ani_status Reference_StrictEquals(ani_ref ref0, ani_ref ref1, ani_boolean *result)
5963     {
5964         return c_api->Reference_StrictEquals(this, ref0, ref1, result);
5965     }
String_NewUTF16__ani_env5966     ani_status String_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_string *result)
5967     {
5968         return c_api->String_NewUTF16(this, utf16_string, utf16_size, result);
5969     }
String_GetUTF16Size__ani_env5970     ani_status String_GetUTF16Size(ani_string string, ani_size *result)
5971     {
5972         return c_api->String_GetUTF16Size(this, string, result);
5973     }
String_GetUTF16__ani_env5974     ani_status String_GetUTF16(ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result)
5975     {
5976         return c_api->String_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result);
5977     }
String_GetUTF16SubString__ani_env5978     ani_status String_GetUTF16SubString(ani_string string, ani_size substr_offset, ani_size substr_size,
5979                                         uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result)
5980     {
5981         return c_api->String_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer,
5982                                                utf16_buffer_size, result);
5983     }
String_NewUTF8__ani_env5984     ani_status String_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_string *result)
5985     {
5986         return c_api->String_NewUTF8(this, utf8_string, utf8_size, result);
5987     }
String_GetUTF8Size__ani_env5988     ani_status String_GetUTF8Size(ani_string string, ani_size *result)
5989     {
5990         return c_api->String_GetUTF8Size(this, string, result);
5991     }
String_GetUTF8__ani_env5992     ani_status String_GetUTF8(ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result)
5993     {
5994         return c_api->String_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result);
5995     }
String_GetUTF8SubString__ani_env5996     ani_status String_GetUTF8SubString(ani_string string, ani_size substr_offset, ani_size substr_size,
5997                                        char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result)
5998     {
5999         return c_api->String_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer, utf8_buffer_size,
6000                                               result);
6001     }
Array_GetLength__ani_env6002     ani_status Array_GetLength(ani_array array, ani_size *result)
6003     {
6004         return c_api->Array_GetLength(this, array, result);
6005     }
Array_New_Boolean__ani_env6006     ani_status Array_New_Boolean(ani_size length, ani_array_boolean *result)
6007     {
6008         return c_api->Array_New_Boolean(this, length, result);
6009     }
Array_New_Char__ani_env6010     ani_status Array_New_Char(ani_size length, ani_array_char *result)
6011     {
6012         return c_api->Array_New_Char(this, length, result);
6013     }
Array_New_Byte__ani_env6014     ani_status Array_New_Byte(ani_size length, ani_array_byte *result)
6015     {
6016         return c_api->Array_New_Byte(this, length, result);
6017     }
Array_New_Short__ani_env6018     ani_status Array_New_Short(ani_size length, ani_array_short *result)
6019     {
6020         return c_api->Array_New_Short(this, length, result);
6021     }
Array_New_Int__ani_env6022     ani_status Array_New_Int(ani_size length, ani_array_int *result)
6023     {
6024         return c_api->Array_New_Int(this, length, result);
6025     }
Array_New_Long__ani_env6026     ani_status Array_New_Long(ani_size length, ani_array_long *result)
6027     {
6028         return c_api->Array_New_Long(this, length, result);
6029     }
Array_New_Float__ani_env6030     ani_status Array_New_Float(ani_size length, ani_array_float *result)
6031     {
6032         return c_api->Array_New_Float(this, length, result);
6033     }
Array_New_Double__ani_env6034     ani_status Array_New_Double(ani_size length, ani_array_double *result)
6035     {
6036         return c_api->Array_New_Double(this, length, result);
6037     }
Array_GetRegion_Boolean__ani_env6038     ani_status Array_GetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length,
6039                                        ani_boolean *native_buffer)
6040     {
6041         return c_api->Array_GetRegion_Boolean(this, array, offset, length, native_buffer);
6042     }
Array_GetRegion_Char__ani_env6043     ani_status Array_GetRegion_Char(ani_array_char array, ani_size offset, ani_size length, ani_char *native_buffer)
6044     {
6045         return c_api->Array_GetRegion_Char(this, array, offset, length, native_buffer);
6046     }
Array_GetRegion_Byte__ani_env6047     ani_status Array_GetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length, ani_byte *native_buffer)
6048     {
6049         return c_api->Array_GetRegion_Byte(this, array, offset, length, native_buffer);
6050     }
Array_GetRegion_Short__ani_env6051     ani_status Array_GetRegion_Short(ani_array_short array, ani_size offset, ani_size length, ani_short *native_buffer)
6052     {
6053         return c_api->Array_GetRegion_Short(this, array, offset, length, native_buffer);
6054     }
Array_GetRegion_Int__ani_env6055     ani_status Array_GetRegion_Int(ani_array_int array, ani_size offset, ani_size length, ani_int *native_buffer)
6056     {
6057         return c_api->Array_GetRegion_Int(this, array, offset, length, native_buffer);
6058     }
Array_GetRegion_Long__ani_env6059     ani_status Array_GetRegion_Long(ani_array_long array, ani_size offset, ani_size length, ani_long *native_buffer)
6060     {
6061         return c_api->Array_GetRegion_Long(this, array, offset, length, native_buffer);
6062     }
Array_GetRegion_Float__ani_env6063     ani_status Array_GetRegion_Float(ani_array_float array, ani_size offset, ani_size length, ani_float *native_buffer)
6064     {
6065         return c_api->Array_GetRegion_Float(this, array, offset, length, native_buffer);
6066     }
Array_GetRegion_Double__ani_env6067     ani_status Array_GetRegion_Double(ani_array_double array, ani_size offset, ani_size length,
6068                                       ani_double *native_buffer)
6069     {
6070         return c_api->Array_GetRegion_Double(this, array, offset, length, native_buffer);
6071     }
Array_SetRegion_Boolean__ani_env6072     ani_status Array_SetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length,
6073                                        const ani_boolean *native_buffer)
6074     {
6075         return c_api->Array_SetRegion_Boolean(this, array, offset, length, native_buffer);
6076     }
Array_SetRegion_Char__ani_env6077     ani_status Array_SetRegion_Char(ani_array_char array, ani_size offset, ani_size length,
6078                                     const ani_char *native_buffer)
6079     {
6080         return c_api->Array_SetRegion_Char(this, array, offset, length, native_buffer);
6081     }
Array_SetRegion_Byte__ani_env6082     ani_status Array_SetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length,
6083                                     const ani_byte *native_buffer)
6084     {
6085         return c_api->Array_SetRegion_Byte(this, array, offset, length, native_buffer);
6086     }
Array_SetRegion_Short__ani_env6087     ani_status Array_SetRegion_Short(ani_array_short array, ani_size offset, ani_size length,
6088                                      const ani_short *native_buffer)
6089     {
6090         return c_api->Array_SetRegion_Short(this, array, offset, length, native_buffer);
6091     }
Array_SetRegion_Int__ani_env6092     ani_status Array_SetRegion_Int(ani_array_int array, ani_size offset, ani_size length, const ani_int *native_buffer)
6093     {
6094         return c_api->Array_SetRegion_Int(this, array, offset, length, native_buffer);
6095     }
Array_SetRegion_Long__ani_env6096     ani_status Array_SetRegion_Long(ani_array_long array, ani_size offset, ani_size length,
6097                                     const ani_long *native_buffer)
6098     {
6099         return c_api->Array_SetRegion_Long(this, array, offset, length, native_buffer);
6100     }
Array_SetRegion_Float__ani_env6101     ani_status Array_SetRegion_Float(ani_array_float array, ani_size offset, ani_size length,
6102                                      const ani_float *native_buffer)
6103     {
6104         return c_api->Array_SetRegion_Float(this, array, offset, length, native_buffer);
6105     }
Array_SetRegion_Double__ani_env6106     ani_status Array_SetRegion_Double(ani_array_double array, ani_size offset, ani_size length,
6107                                       const ani_double *native_buffer)
6108     {
6109         return c_api->Array_SetRegion_Double(this, array, offset, length, native_buffer);
6110     }
Array_New_Ref__ani_env6111     ani_status Array_New_Ref(ani_type type, ani_size length, ani_ref initial_element, ani_array_ref *result)
6112     {
6113         return c_api->Array_New_Ref(this, type, length, initial_element, result);
6114     }
Array_Set_Ref__ani_env6115     ani_status Array_Set_Ref(ani_array_ref array, ani_size index, ani_ref ref)
6116     {
6117         return c_api->Array_Set_Ref(this, array, index, ref);
6118     }
Array_Get_Ref__ani_env6119     ani_status Array_Get_Ref(ani_array_ref array, ani_size index, ani_ref *result)
6120     {
6121         return c_api->Array_Get_Ref(this, array, index, result);
6122     }
Enum_GetEnumItemByName__ani_env6123     ani_status Enum_GetEnumItemByName(ani_enum enm, const char *name, ani_enum_item *result)
6124     {
6125         return c_api->Enum_GetEnumItemByName(this, enm, name, result);
6126     }
Enum_GetEnumItemByIndex__ani_env6127     ani_status Enum_GetEnumItemByIndex(ani_enum enm, ani_size index, ani_enum_item *result)
6128     {
6129         return c_api->Enum_GetEnumItemByIndex(this, enm, index, result);
6130     }
EnumItem_GetEnum__ani_env6131     ani_status EnumItem_GetEnum(ani_enum_item enum_item, ani_enum *result)
6132     {
6133         return c_api->EnumItem_GetEnum(this, enum_item, result);
6134     }
EnumItem_GetValue_Int__ani_env6135     ani_status EnumItem_GetValue_Int(ani_enum_item enum_item, ani_int *result)
6136     {
6137         return c_api->EnumItem_GetValue_Int(this, enum_item, result);
6138     }
EnumItem_GetValue_String__ani_env6139     ani_status EnumItem_GetValue_String(ani_enum_item enum_item, ani_string *result)
6140     {
6141         return c_api->EnumItem_GetValue_String(this, enum_item, result);
6142     }
EnumItem_GetName__ani_env6143     ani_status EnumItem_GetName(ani_enum_item enum_item, ani_string *result)
6144     {
6145         return c_api->EnumItem_GetName(this, enum_item, result);
6146     }
EnumItem_GetIndex__ani_env6147     ani_status EnumItem_GetIndex(ani_enum_item enum_item, ani_size *result)
6148     {
6149         return c_api->EnumItem_GetIndex(this, enum_item, result);
6150     }
FunctionalObject_Call__ani_env6151     ani_status FunctionalObject_Call(ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result)
6152     {
6153         return c_api->FunctionalObject_Call(this, fn, argc, argv, result);
6154     }
Variable_SetValue_Boolean__ani_env6155     ani_status Variable_SetValue_Boolean(ani_variable variable, ani_boolean value)
6156     {
6157         return c_api->Variable_SetValue_Boolean(this, variable, value);
6158     }
Variable_SetValue_Char__ani_env6159     ani_status Variable_SetValue_Char(ani_variable variable, ani_char value)
6160     {
6161         return c_api->Variable_SetValue_Char(this, variable, value);
6162     }
Variable_SetValue_Byte__ani_env6163     ani_status Variable_SetValue_Byte(ani_variable variable, ani_byte value)
6164     {
6165         return c_api->Variable_SetValue_Byte(this, variable, value);
6166     }
Variable_SetValue_Short__ani_env6167     ani_status Variable_SetValue_Short(ani_variable variable, ani_short value)
6168     {
6169         return c_api->Variable_SetValue_Short(this, variable, value);
6170     }
Variable_SetValue_Int__ani_env6171     ani_status Variable_SetValue_Int(ani_variable variable, ani_int value)
6172     {
6173         return c_api->Variable_SetValue_Int(this, variable, value);
6174     }
Variable_SetValue_Long__ani_env6175     ani_status Variable_SetValue_Long(ani_variable variable, ani_long value)
6176     {
6177         return c_api->Variable_SetValue_Long(this, variable, value);
6178     }
Variable_SetValue_Float__ani_env6179     ani_status Variable_SetValue_Float(ani_variable variable, ani_float value)
6180     {
6181         return c_api->Variable_SetValue_Float(this, variable, value);
6182     }
Variable_SetValue_Double__ani_env6183     ani_status Variable_SetValue_Double(ani_variable variable, ani_double value)
6184     {
6185         return c_api->Variable_SetValue_Double(this, variable, value);
6186     }
Variable_SetValue_Ref__ani_env6187     ani_status Variable_SetValue_Ref(ani_variable variable, ani_ref value)
6188     {
6189         return c_api->Variable_SetValue_Ref(this, variable, value);
6190     }
Variable_GetValue_Boolean__ani_env6191     ani_status Variable_GetValue_Boolean(ani_variable variable, ani_boolean *result)
6192     {
6193         return c_api->Variable_GetValue_Boolean(this, variable, result);
6194     }
Variable_GetValue_Char__ani_env6195     ani_status Variable_GetValue_Char(ani_variable variable, ani_char *result)
6196     {
6197         return c_api->Variable_GetValue_Char(this, variable, result);
6198     }
Variable_GetValue_Byte__ani_env6199     ani_status Variable_GetValue_Byte(ani_variable variable, ani_byte *result)
6200     {
6201         return c_api->Variable_GetValue_Byte(this, variable, result);
6202     }
Variable_GetValue_Short__ani_env6203     ani_status Variable_GetValue_Short(ani_variable variable, ani_short *result)
6204     {
6205         return c_api->Variable_GetValue_Short(this, variable, result);
6206     }
Variable_GetValue_Int__ani_env6207     ani_status Variable_GetValue_Int(ani_variable variable, ani_int *result)
6208     {
6209         return c_api->Variable_GetValue_Int(this, variable, result);
6210     }
Variable_GetValue_Long__ani_env6211     ani_status Variable_GetValue_Long(ani_variable variable, ani_long *result)
6212     {
6213         return c_api->Variable_GetValue_Long(this, variable, result);
6214     }
Variable_GetValue_Float__ani_env6215     ani_status Variable_GetValue_Float(ani_variable variable, ani_float *result)
6216     {
6217         return c_api->Variable_GetValue_Float(this, variable, result);
6218     }
Variable_GetValue_Double__ani_env6219     ani_status Variable_GetValue_Double(ani_variable variable, ani_double *result)
6220     {
6221         return c_api->Variable_GetValue_Double(this, variable, result);
6222     }
Variable_GetValue_Ref__ani_env6223     ani_status Variable_GetValue_Ref(ani_variable variable, ani_ref *result)
6224     {
6225         return c_api->Variable_GetValue_Ref(this, variable, result);
6226     }
Function_Call_Boolean__ani_env6227     ani_status Function_Call_Boolean(ani_function fn, ani_boolean *result, ...)
6228     {
6229         va_list args;
6230         va_start(args, result);
6231         ani_status status = c_api->Function_Call_Boolean_V(this, fn, result, args);
6232         va_end(args);
6233         return status;
6234     }
Function_Call_Boolean_A__ani_env6235     ani_status Function_Call_Boolean_A(ani_function fn, ani_boolean *result, const ani_value *args)
6236     {
6237         return c_api->Function_Call_Boolean_A(this, fn, result, args);
6238     }
Function_Call_Boolean_V__ani_env6239     ani_status Function_Call_Boolean_V(ani_function fn, ani_boolean *result, va_list args)
6240     {
6241         return c_api->Function_Call_Boolean_V(this, fn, result, args);
6242     }
Function_Call_Char__ani_env6243     ani_status Function_Call_Char(ani_function fn, ani_char *result, ...)
6244     {
6245         va_list args;
6246         va_start(args, result);
6247         ani_status status = c_api->Function_Call_Char_V(this, fn, result, args);
6248         va_end(args);
6249         return status;
6250     }
Function_Call_Char_A__ani_env6251     ani_status Function_Call_Char_A(ani_function fn, ani_char *result, const ani_value *args)
6252     {
6253         return c_api->Function_Call_Char_A(this, fn, result, args);
6254     }
Function_Call_Char_V__ani_env6255     ani_status Function_Call_Char_V(ani_function fn, ani_char *result, va_list args)
6256     {
6257         return c_api->Function_Call_Char_V(this, fn, result, args);
6258     }
Function_Call_Byte__ani_env6259     ani_status Function_Call_Byte(ani_function fn, ani_byte *result, ...)
6260     {
6261         va_list args;
6262         va_start(args, result);
6263         ani_status status = c_api->Function_Call_Byte_V(this, fn, result, args);
6264         va_end(args);
6265         return status;
6266     }
Function_Call_Byte_A__ani_env6267     ani_status Function_Call_Byte_A(ani_function fn, ani_byte *result, const ani_value *args)
6268     {
6269         return c_api->Function_Call_Byte_A(this, fn, result, args);
6270     }
Function_Call_Byte_V__ani_env6271     ani_status Function_Call_Byte_V(ani_function fn, ani_byte *result, va_list args)
6272     {
6273         return c_api->Function_Call_Byte_V(this, fn, result, args);
6274     }
Function_Call_Short__ani_env6275     ani_status Function_Call_Short(ani_function fn, ani_short *result, ...)
6276     {
6277         va_list args;
6278         va_start(args, result);
6279         ani_status status = c_api->Function_Call_Short_V(this, fn, result, args);
6280         va_end(args);
6281         return status;
6282     }
Function_Call_Short_A__ani_env6283     ani_status Function_Call_Short_A(ani_function fn, ani_short *result, const ani_value *args)
6284     {
6285         return c_api->Function_Call_Short_A(this, fn, result, args);
6286     }
Function_Call_Short_V__ani_env6287     ani_status Function_Call_Short_V(ani_function fn, ani_short *result, va_list args)
6288     {
6289         return c_api->Function_Call_Short_V(this, fn, result, args);
6290     }
Function_Call_Int__ani_env6291     ani_status Function_Call_Int(ani_function fn, ani_int *result, ...)
6292     {
6293         va_list args;
6294         va_start(args, result);
6295         ani_status status = c_api->Function_Call_Int_V(this, fn, result, args);
6296         va_end(args);
6297         return status;
6298     }
Function_Call_Int_A__ani_env6299     ani_status Function_Call_Int_A(ani_function fn, ani_int *result, const ani_value *args)
6300     {
6301         return c_api->Function_Call_Int_A(this, fn, result, args);
6302     }
Function_Call_Int_V__ani_env6303     ani_status Function_Call_Int_V(ani_function fn, ani_int *result, va_list args)
6304     {
6305         return c_api->Function_Call_Int_V(this, fn, result, args);
6306     }
Function_Call_Long__ani_env6307     ani_status Function_Call_Long(ani_function fn, ani_long *result, ...)
6308     {
6309         va_list args;
6310         va_start(args, result);
6311         ani_status status = c_api->Function_Call_Long_V(this, fn, result, args);
6312         va_end(args);
6313         return status;
6314     }
Function_Call_Long_A__ani_env6315     ani_status Function_Call_Long_A(ani_function fn, ani_long *result, const ani_value *args)
6316     {
6317         return c_api->Function_Call_Long_A(this, fn, result, args);
6318     }
Function_Call_Long_V__ani_env6319     ani_status Function_Call_Long_V(ani_function fn, ani_long *result, va_list args)
6320     {
6321         return c_api->Function_Call_Long_V(this, fn, result, args);
6322     }
Function_Call_Float__ani_env6323     ani_status Function_Call_Float(ani_function fn, ani_float *result, ...)
6324     {
6325         va_list args;
6326         va_start(args, result);
6327         ani_status status = c_api->Function_Call_Float_V(this, fn, result, args);
6328         va_end(args);
6329         return status;
6330     }
Function_Call_Float_A__ani_env6331     ani_status Function_Call_Float_A(ani_function fn, ani_float *result, const ani_value *args)
6332     {
6333         return c_api->Function_Call_Float_A(this, fn, result, args);
6334     }
Function_Call_Float_V__ani_env6335     ani_status Function_Call_Float_V(ani_function fn, ani_float *result, va_list args)
6336     {
6337         return c_api->Function_Call_Float_V(this, fn, result, args);
6338     }
Function_Call_Double__ani_env6339     ani_status Function_Call_Double(ani_function fn, ani_double *result, ...)
6340     {
6341         va_list args;
6342         va_start(args, result);
6343         ani_status status = c_api->Function_Call_Double_V(this, fn, result, args);
6344         va_end(args);
6345         return status;
6346     }
Function_Call_Double_A__ani_env6347     ani_status Function_Call_Double_A(ani_function fn, ani_double *result, const ani_value *args)
6348     {
6349         return c_api->Function_Call_Double_A(this, fn, result, args);
6350     }
Function_Call_Double_V__ani_env6351     ani_status Function_Call_Double_V(ani_function fn, ani_double *result, va_list args)
6352     {
6353         return c_api->Function_Call_Double_V(this, fn, result, args);
6354     }
Function_Call_Ref__ani_env6355     ani_status Function_Call_Ref(ani_function fn, ani_ref *result, ...)
6356     {
6357         va_list args;
6358         va_start(args, result);
6359         ani_status status = c_api->Function_Call_Ref_V(this, fn, result, args);
6360         va_end(args);
6361         return status;
6362     }
Function_Call_Ref_A__ani_env6363     ani_status Function_Call_Ref_A(ani_function fn, ani_ref *result, const ani_value *args)
6364     {
6365         return c_api->Function_Call_Ref_A(this, fn, result, args);
6366     }
Function_Call_Ref_V__ani_env6367     ani_status Function_Call_Ref_V(ani_function fn, ani_ref *result, va_list args)
6368     {
6369         return c_api->Function_Call_Ref_V(this, fn, result, args);
6370     }
Function_Call_Void__ani_env6371     ani_status Function_Call_Void(ani_function fn, ...)
6372     {
6373         va_list args;
6374         va_start(args, fn);
6375         ani_status status = c_api->Function_Call_Void_V(this, fn, args);
6376         va_end(args);
6377         return status;
6378     }
Function_Call_Void_A__ani_env6379     ani_status Function_Call_Void_A(ani_function fn, const ani_value *args)
6380     {
6381         return c_api->Function_Call_Void_A(this, fn, args);
6382     }
Function_Call_Void_V__ani_env6383     ani_status Function_Call_Void_V(ani_function fn, va_list args)
6384     {
6385         return c_api->Function_Call_Void_V(this, fn, args);
6386     }
Class_FindField__ani_env6387     ani_status Class_FindField(ani_class cls, const char *name, ani_field *result)
6388     {
6389         return c_api->Class_FindField(this, cls, name, result);
6390     }
Class_FindStaticField__ani_env6391     ani_status Class_FindStaticField(ani_class cls, const char *name, ani_static_field *result)
6392     {
6393         return c_api->Class_FindStaticField(this, cls, name, result);
6394     }
Class_FindMethod__ani_env6395     ani_status Class_FindMethod(ani_class cls, const char *name, const char *signature, ani_method *result)
6396     {
6397         return c_api->Class_FindMethod(this, cls, name, signature, result);
6398     }
Class_FindStaticMethod__ani_env6399     ani_status Class_FindStaticMethod(ani_class cls, const char *name, const char *signature, ani_static_method *result)
6400     {
6401         return c_api->Class_FindStaticMethod(this, cls, name, signature, result);
6402     }
Class_FindSetter__ani_env6403     ani_status Class_FindSetter(ani_class cls, const char *name, ani_method *result)
6404     {
6405         return c_api->Class_FindSetter(this, cls, name, result);
6406     }
Class_FindGetter__ani_env6407     ani_status Class_FindGetter(ani_class cls, const char *name, ani_method *result)
6408     {
6409         return c_api->Class_FindGetter(this, cls, name, result);
6410     }
Class_FindIndexableGetter__ani_env6411     ani_status Class_FindIndexableGetter(ani_class cls, const char *signature, ani_method *result)
6412     {
6413         return c_api->Class_FindIndexableGetter(this, cls, signature, result);
6414     }
Class_FindIndexableSetter__ani_env6415     ani_status Class_FindIndexableSetter(ani_class cls, const char *signature, ani_method *result)
6416     {
6417         return c_api->Class_FindIndexableSetter(this, cls, signature, result);
6418     }
Class_FindIterator__ani_env6419     ani_status Class_FindIterator(ani_class cls, ani_method *result)
6420     {
6421         return c_api->Class_FindIterator(this, cls, result);
6422     }
Class_GetStaticField_Boolean__ani_env6423     ani_status Class_GetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean *result)
6424     {
6425         return c_api->Class_GetStaticField_Boolean(this, cls, field, result);
6426     }
Class_GetStaticField_Char__ani_env6427     ani_status Class_GetStaticField_Char(ani_class cls, ani_static_field field, ani_char *result)
6428     {
6429         return c_api->Class_GetStaticField_Char(this, cls, field, result);
6430     }
Class_GetStaticField_Byte__ani_env6431     ani_status Class_GetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte *result)
6432     {
6433         return c_api->Class_GetStaticField_Byte(this, cls, field, result);
6434     }
Class_GetStaticField_Short__ani_env6435     ani_status Class_GetStaticField_Short(ani_class cls, ani_static_field field, ani_short *result)
6436     {
6437         return c_api->Class_GetStaticField_Short(this, cls, field, result);
6438     }
Class_GetStaticField_Int__ani_env6439     ani_status Class_GetStaticField_Int(ani_class cls, ani_static_field field, ani_int *result)
6440     {
6441         return c_api->Class_GetStaticField_Int(this, cls, field, result);
6442     }
Class_GetStaticField_Long__ani_env6443     ani_status Class_GetStaticField_Long(ani_class cls, ani_static_field field, ani_long *result)
6444     {
6445         return c_api->Class_GetStaticField_Long(this, cls, field, result);
6446     }
Class_GetStaticField_Float__ani_env6447     ani_status Class_GetStaticField_Float(ani_class cls, ani_static_field field, ani_float *result)
6448     {
6449         return c_api->Class_GetStaticField_Float(this, cls, field, result);
6450     }
Class_GetStaticField_Double__ani_env6451     ani_status Class_GetStaticField_Double(ani_class cls, ani_static_field field, ani_double *result)
6452     {
6453         return c_api->Class_GetStaticField_Double(this, cls, field, result);
6454     }
Class_GetStaticField_Ref__ani_env6455     ani_status Class_GetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref *result)
6456     {
6457         return c_api->Class_GetStaticField_Ref(this, cls, field, result);
6458     }
Class_SetStaticField_Boolean__ani_env6459     ani_status Class_SetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean value)
6460     {
6461         return c_api->Class_SetStaticField_Boolean(this, cls, field, value);
6462     }
Class_SetStaticField_Char__ani_env6463     ani_status Class_SetStaticField_Char(ani_class cls, ani_static_field field, ani_char value)
6464     {
6465         return c_api->Class_SetStaticField_Char(this, cls, field, value);
6466     }
Class_SetStaticField_Byte__ani_env6467     ani_status Class_SetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte value)
6468     {
6469         return c_api->Class_SetStaticField_Byte(this, cls, field, value);
6470     }
Class_SetStaticField_Short__ani_env6471     ani_status Class_SetStaticField_Short(ani_class cls, ani_static_field field, ani_short value)
6472     {
6473         return c_api->Class_SetStaticField_Short(this, cls, field, value);
6474     }
Class_SetStaticField_Int__ani_env6475     ani_status Class_SetStaticField_Int(ani_class cls, ani_static_field field, ani_int value)
6476     {
6477         return c_api->Class_SetStaticField_Int(this, cls, field, value);
6478     }
Class_SetStaticField_Long__ani_env6479     ani_status Class_SetStaticField_Long(ani_class cls, ani_static_field field, ani_long value)
6480     {
6481         return c_api->Class_SetStaticField_Long(this, cls, field, value);
6482     }
Class_SetStaticField_Float__ani_env6483     ani_status Class_SetStaticField_Float(ani_class cls, ani_static_field field, ani_float value)
6484     {
6485         return c_api->Class_SetStaticField_Float(this, cls, field, value);
6486     }
Class_SetStaticField_Double__ani_env6487     ani_status Class_SetStaticField_Double(ani_class cls, ani_static_field field, ani_double value)
6488     {
6489         return c_api->Class_SetStaticField_Double(this, cls, field, value);
6490     }
Class_SetStaticField_Ref__ani_env6491     ani_status Class_SetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref value)
6492     {
6493         return c_api->Class_SetStaticField_Ref(this, cls, field, value);
6494     }
Class_GetStaticFieldByName_Boolean__ani_env6495     ani_status Class_GetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean *result)
6496     {
6497         return c_api->Class_GetStaticFieldByName_Boolean(this, cls, name, result);
6498     }
Class_GetStaticFieldByName_Char__ani_env6499     ani_status Class_GetStaticFieldByName_Char(ani_class cls, const char *name, ani_char *result)
6500     {
6501         return c_api->Class_GetStaticFieldByName_Char(this, cls, name, result);
6502     }
Class_GetStaticFieldByName_Byte__ani_env6503     ani_status Class_GetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte *result)
6504     {
6505         return c_api->Class_GetStaticFieldByName_Byte(this, cls, name, result);
6506     }
Class_GetStaticFieldByName_Short__ani_env6507     ani_status Class_GetStaticFieldByName_Short(ani_class cls, const char *name, ani_short *result)
6508     {
6509         return c_api->Class_GetStaticFieldByName_Short(this, cls, name, result);
6510     }
Class_GetStaticFieldByName_Int__ani_env6511     ani_status Class_GetStaticFieldByName_Int(ani_class cls, const char *name, ani_int *result)
6512     {
6513         return c_api->Class_GetStaticFieldByName_Int(this, cls, name, result);
6514     }
Class_GetStaticFieldByName_Long__ani_env6515     ani_status Class_GetStaticFieldByName_Long(ani_class cls, const char *name, ani_long *result)
6516     {
6517         return c_api->Class_GetStaticFieldByName_Long(this, cls, name, result);
6518     }
Class_GetStaticFieldByName_Float__ani_env6519     ani_status Class_GetStaticFieldByName_Float(ani_class cls, const char *name, ani_float *result)
6520     {
6521         return c_api->Class_GetStaticFieldByName_Float(this, cls, name, result);
6522     }
Class_GetStaticFieldByName_Double__ani_env6523     ani_status Class_GetStaticFieldByName_Double(ani_class cls, const char *name, ani_double *result)
6524     {
6525         return c_api->Class_GetStaticFieldByName_Double(this, cls, name, result);
6526     }
Class_GetStaticFieldByName_Ref__ani_env6527     ani_status Class_GetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref *result)
6528     {
6529         return c_api->Class_GetStaticFieldByName_Ref(this, cls, name, result);
6530     }
Class_SetStaticFieldByName_Boolean__ani_env6531     ani_status Class_SetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean value)
6532     {
6533         return c_api->Class_SetStaticFieldByName_Boolean(this, cls, name, value);
6534     }
Class_SetStaticFieldByName_Char__ani_env6535     ani_status Class_SetStaticFieldByName_Char(ani_class cls, const char *name, ani_char value)
6536     {
6537         return c_api->Class_SetStaticFieldByName_Char(this, cls, name, value);
6538     }
Class_SetStaticFieldByName_Byte__ani_env6539     ani_status Class_SetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte value)
6540     {
6541         return c_api->Class_SetStaticFieldByName_Byte(this, cls, name, value);
6542     }
Class_SetStaticFieldByName_Short__ani_env6543     ani_status Class_SetStaticFieldByName_Short(ani_class cls, const char *name, ani_short value)
6544     {
6545         return c_api->Class_SetStaticFieldByName_Short(this, cls, name, value);
6546     }
Class_SetStaticFieldByName_Int__ani_env6547     ani_status Class_SetStaticFieldByName_Int(ani_class cls, const char *name, ani_int value)
6548     {
6549         return c_api->Class_SetStaticFieldByName_Int(this, cls, name, value);
6550     }
Class_SetStaticFieldByName_Long__ani_env6551     ani_status Class_SetStaticFieldByName_Long(ani_class cls, const char *name, ani_long value)
6552     {
6553         return c_api->Class_SetStaticFieldByName_Long(this, cls, name, value);
6554     }
Class_SetStaticFieldByName_Float__ani_env6555     ani_status Class_SetStaticFieldByName_Float(ani_class cls, const char *name, ani_float value)
6556     {
6557         return c_api->Class_SetStaticFieldByName_Float(this, cls, name, value);
6558     }
Class_SetStaticFieldByName_Double__ani_env6559     ani_status Class_SetStaticFieldByName_Double(ani_class cls, const char *name, ani_double value)
6560     {
6561         return c_api->Class_SetStaticFieldByName_Double(this, cls, name, value);
6562     }
Class_SetStaticFieldByName_Ref__ani_env6563     ani_status Class_SetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref value)
6564     {
6565         return c_api->Class_SetStaticFieldByName_Ref(this, cls, name, value);
6566     }
Class_CallStaticMethod_Boolean__ani_env6567     ani_status Class_CallStaticMethod_Boolean(ani_class cls, ani_static_method method, ani_boolean *result, ...)
6568     {
6569         va_list args;
6570         va_start(args, result);
6571         ani_status status = c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args);
6572         va_end(args);
6573         return status;
6574     }
Class_CallStaticMethod_Boolean_A__ani_env6575     ani_status Class_CallStaticMethod_Boolean_A(ani_class cls, ani_static_method method, ani_boolean *result,
6576                                                 const ani_value *args)
6577     {
6578         return c_api->Class_CallStaticMethod_Boolean_A(this, cls, method, result, args);
6579     }
Class_CallStaticMethod_Boolean_V__ani_env6580     ani_status Class_CallStaticMethod_Boolean_V(ani_class cls, ani_static_method method, ani_boolean *result,
6581                                                 va_list args)
6582     {
6583         return c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args);
6584     }
Class_CallStaticMethod_Char__ani_env6585     ani_status Class_CallStaticMethod_Char(ani_class cls, ani_static_method method, ani_char *result, ...)
6586     {
6587         va_list args;
6588         va_start(args, result);
6589         ani_status status = c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args);
6590         va_end(args);
6591         return status;
6592     }
Class_CallStaticMethod_Char_A__ani_env6593     ani_status Class_CallStaticMethod_Char_A(ani_class cls, ani_static_method method, ani_char *result,
6594                                              const ani_value *args)
6595     {
6596         return c_api->Class_CallStaticMethod_Char_A(this, cls, method, result, args);
6597     }
Class_CallStaticMethod_Char_V__ani_env6598     ani_status Class_CallStaticMethod_Char_V(ani_class cls, ani_static_method method, ani_char *result, va_list args)
6599     {
6600         return c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args);
6601     }
Class_CallStaticMethod_Byte__ani_env6602     ani_status Class_CallStaticMethod_Byte(ani_class cls, ani_static_method method, ani_byte *result, ...)
6603     {
6604         va_list args;
6605         va_start(args, result);
6606         ani_status status = c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args);
6607         va_end(args);
6608         return status;
6609     }
Class_CallStaticMethod_Byte_A__ani_env6610     ani_status Class_CallStaticMethod_Byte_A(ani_class cls, ani_static_method method, ani_byte *result,
6611                                              const ani_value *args)
6612     {
6613         return c_api->Class_CallStaticMethod_Byte_A(this, cls, method, result, args);
6614     }
Class_CallStaticMethod_Byte_V__ani_env6615     ani_status Class_CallStaticMethod_Byte_V(ani_class cls, ani_static_method method, ani_byte *result, va_list args)
6616     {
6617         return c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args);
6618     }
Class_CallStaticMethod_Short__ani_env6619     ani_status Class_CallStaticMethod_Short(ani_class cls, ani_static_method method, ani_short *result, ...)
6620     {
6621         va_list args;
6622         va_start(args, result);
6623         ani_status status = c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args);
6624         va_end(args);
6625         return status;
6626     }
Class_CallStaticMethod_Short_A__ani_env6627     ani_status Class_CallStaticMethod_Short_A(ani_class cls, ani_static_method method, ani_short *result,
6628                                               const ani_value *args)
6629     {
6630         return c_api->Class_CallStaticMethod_Short_A(this, cls, method, result, args);
6631     }
Class_CallStaticMethod_Short_V__ani_env6632     ani_status Class_CallStaticMethod_Short_V(ani_class cls, ani_static_method method, ani_short *result, va_list args)
6633     {
6634         return c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args);
6635     }
Class_CallStaticMethod_Int__ani_env6636     ani_status Class_CallStaticMethod_Int(ani_class cls, ani_static_method method, ani_int *result, ...)
6637     {
6638         va_list args;
6639         va_start(args, result);
6640         ani_status status = c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args);
6641         va_end(args);
6642         return status;
6643     }
Class_CallStaticMethod_Int_A__ani_env6644     ani_status Class_CallStaticMethod_Int_A(ani_class cls, ani_static_method method, ani_int *result,
6645                                             const ani_value *args)
6646     {
6647         return c_api->Class_CallStaticMethod_Int_A(this, cls, method, result, args);
6648     }
Class_CallStaticMethod_Int_V__ani_env6649     ani_status Class_CallStaticMethod_Int_V(ani_class cls, ani_static_method method, ani_int *result, va_list args)
6650     {
6651         return c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args);
6652     }
Class_CallStaticMethod_Long__ani_env6653     ani_status Class_CallStaticMethod_Long(ani_class cls, ani_static_method method, ani_long *result, ...)
6654     {
6655         va_list args;
6656         va_start(args, result);
6657         ani_status status = c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args);
6658         va_end(args);
6659         return status;
6660     }
Class_CallStaticMethod_Long_A__ani_env6661     ani_status Class_CallStaticMethod_Long_A(ani_class cls, ani_static_method method, ani_long *result,
6662                                              const ani_value *args)
6663     {
6664         return c_api->Class_CallStaticMethod_Long_A(this, cls, method, result, args);
6665     }
Class_CallStaticMethod_Long_V__ani_env6666     ani_status Class_CallStaticMethod_Long_V(ani_class cls, ani_static_method method, ani_long *result, va_list args)
6667     {
6668         return c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args);
6669     }
Class_CallStaticMethod_Float__ani_env6670     ani_status Class_CallStaticMethod_Float(ani_class cls, ani_static_method method, ani_float *result, ...)
6671     {
6672         va_list args;
6673         va_start(args, result);
6674         ani_status status = c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args);
6675         va_end(args);
6676         return status;
6677     }
Class_CallStaticMethod_Float_A__ani_env6678     ani_status Class_CallStaticMethod_Float_A(ani_class cls, ani_static_method method, ani_float *result,
6679                                               const ani_value *args)
6680     {
6681         return c_api->Class_CallStaticMethod_Float_A(this, cls, method, result, args);
6682     }
Class_CallStaticMethod_Float_V__ani_env6683     ani_status Class_CallStaticMethod_Float_V(ani_class cls, ani_static_method method, ani_float *result, va_list args)
6684     {
6685         return c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args);
6686     }
Class_CallStaticMethod_Double__ani_env6687     ani_status Class_CallStaticMethod_Double(ani_class cls, ani_static_method method, ani_double *result, ...)
6688     {
6689         va_list args;
6690         va_start(args, result);
6691         ani_status status = c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args);
6692         va_end(args);
6693         return status;
6694     }
Class_CallStaticMethod_Double_A__ani_env6695     ani_status Class_CallStaticMethod_Double_A(ani_class cls, ani_static_method method, ani_double *result,
6696                                                const ani_value *args)
6697     {
6698         return c_api->Class_CallStaticMethod_Double_A(this, cls, method, result, args);
6699     }
Class_CallStaticMethod_Double_V__ani_env6700     ani_status Class_CallStaticMethod_Double_V(ani_class cls, ani_static_method method, ani_double *result,
6701                                                va_list args)
6702     {
6703         return c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args);
6704     }
Class_CallStaticMethod_Ref__ani_env6705     ani_status Class_CallStaticMethod_Ref(ani_class cls, ani_static_method method, ani_ref *result, ...)
6706     {
6707         va_list args;
6708         va_start(args, result);
6709         ani_status status = c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args);
6710         va_end(args);
6711         return status;
6712     }
Class_CallStaticMethod_Ref_A__ani_env6713     ani_status Class_CallStaticMethod_Ref_A(ani_class cls, ani_static_method method, ani_ref *result,
6714                                             const ani_value *args)
6715     {
6716         return c_api->Class_CallStaticMethod_Ref_A(this, cls, method, result, args);
6717     }
Class_CallStaticMethod_Ref_V__ani_env6718     ani_status Class_CallStaticMethod_Ref_V(ani_class cls, ani_static_method method, ani_ref *result, va_list args)
6719     {
6720         return c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args);
6721     }
Class_CallStaticMethod_Void__ani_env6722     ani_status Class_CallStaticMethod_Void(ani_class cls, ani_static_method method, ...)
6723     {
6724         va_list args;
6725         va_start(args, method);
6726         ani_status status = c_api->Class_CallStaticMethod_Void_V(this, cls, method, args);
6727         va_end(args);
6728         return status;
6729     }
Class_CallStaticMethod_Void_A__ani_env6730     ani_status Class_CallStaticMethod_Void_A(ani_class cls, ani_static_method method, const ani_value *args)
6731     {
6732         return c_api->Class_CallStaticMethod_Void_A(this, cls, method, args);
6733     }
Class_CallStaticMethod_Void_V__ani_env6734     ani_status Class_CallStaticMethod_Void_V(ani_class cls, ani_static_method method, va_list args)
6735     {
6736         return c_api->Class_CallStaticMethod_Void_V(this, cls, method, args);
6737     }
Class_CallStaticMethodByName_Boolean__ani_env6738     ani_status Class_CallStaticMethodByName_Boolean(ani_class cls, const char *name, const char *signature,
6739                                                     ani_boolean *result, ...)
6740     {
6741         va_list args;
6742         va_start(args, result);
6743         ani_status status = c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args);
6744         va_end(args);
6745         return status;
6746     }
Class_CallStaticMethodByName_Boolean_A__ani_env6747     ani_status Class_CallStaticMethodByName_Boolean_A(ani_class cls, const char *name, const char *signature,
6748                                                       ani_boolean *result, const ani_value *args)
6749     {
6750         return c_api->Class_CallStaticMethodByName_Boolean_A(this, cls, name, signature, result, args);
6751     }
Class_CallStaticMethodByName_Boolean_V__ani_env6752     ani_status Class_CallStaticMethodByName_Boolean_V(ani_class cls, const char *name, const char *signature,
6753                                                       ani_boolean *result, va_list args)
6754     {
6755         return c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args);
6756     }
Class_CallStaticMethodByName_Char__ani_env6757     ani_status Class_CallStaticMethodByName_Char(ani_class cls, const char *name, const char *signature,
6758                                                  ani_char *result, ...)
6759     {
6760         va_list args;
6761         va_start(args, result);
6762         ani_status status = c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args);
6763         va_end(args);
6764         return status;
6765     }
Class_CallStaticMethodByName_Char_A__ani_env6766     ani_status Class_CallStaticMethodByName_Char_A(ani_class cls, const char *name, const char *signature,
6767                                                    ani_char *result, const ani_value *args)
6768     {
6769         return c_api->Class_CallStaticMethodByName_Char_A(this, cls, name, signature, result, args);
6770     }
Class_CallStaticMethodByName_Char_V__ani_env6771     ani_status Class_CallStaticMethodByName_Char_V(ani_class cls, const char *name, const char *signature,
6772                                                    ani_char *result, va_list args)
6773     {
6774         return c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args);
6775     }
Class_CallStaticMethodByName_Byte__ani_env6776     ani_status Class_CallStaticMethodByName_Byte(ani_class cls, const char *name, const char *signature,
6777                                                  ani_byte *result, ...)
6778     {
6779         va_list args;
6780         va_start(args, result);
6781         ani_status status = c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args);
6782         va_end(args);
6783         return status;
6784     }
Class_CallStaticMethodByName_Byte_A__ani_env6785     ani_status Class_CallStaticMethodByName_Byte_A(ani_class cls, const char *name, const char *signature,
6786                                                    ani_byte *result, const ani_value *args)
6787     {
6788         return c_api->Class_CallStaticMethodByName_Byte_A(this, cls, name, signature, result, args);
6789     }
Class_CallStaticMethodByName_Byte_V__ani_env6790     ani_status Class_CallStaticMethodByName_Byte_V(ani_class cls, const char *name, const char *signature,
6791                                                    ani_byte *result, va_list args)
6792     {
6793         return c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args);
6794     }
Class_CallStaticMethodByName_Short__ani_env6795     ani_status Class_CallStaticMethodByName_Short(ani_class cls, const char *name, const char *signature,
6796                                                   ani_short *result, ...)
6797     {
6798         va_list args;
6799         va_start(args, result);
6800         ani_status status = c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args);
6801         va_end(args);
6802         return status;
6803     }
Class_CallStaticMethodByName_Short_A__ani_env6804     ani_status Class_CallStaticMethodByName_Short_A(ani_class cls, const char *name, const char *signature,
6805                                                     ani_short *result, const ani_value *args)
6806     {
6807         return c_api->Class_CallStaticMethodByName_Short_A(this, cls, name, signature, result, args);
6808     }
Class_CallStaticMethodByName_Short_V__ani_env6809     ani_status Class_CallStaticMethodByName_Short_V(ani_class cls, const char *name, const char *signature,
6810                                                     ani_short *result, va_list args)
6811     {
6812         return c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args);
6813     }
Class_CallStaticMethodByName_Int__ani_env6814     ani_status Class_CallStaticMethodByName_Int(ani_class cls, const char *name, const char *signature, ani_int *result,
6815                                                 ...)
6816     {
6817         va_list args;
6818         va_start(args, result);
6819         ani_status status = c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args);
6820         va_end(args);
6821         return status;
6822     }
Class_CallStaticMethodByName_Int_A__ani_env6823     ani_status Class_CallStaticMethodByName_Int_A(ani_class cls, const char *name, const char *signature,
6824                                                   ani_int *result, const ani_value *args)
6825     {
6826         return c_api->Class_CallStaticMethodByName_Int_A(this, cls, name, signature, result, args);
6827     }
Class_CallStaticMethodByName_Int_V__ani_env6828     ani_status Class_CallStaticMethodByName_Int_V(ani_class cls, const char *name, const char *signature,
6829                                                   ani_int *result, va_list args)
6830     {
6831         return c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args);
6832     }
Class_CallStaticMethodByName_Long__ani_env6833     ani_status Class_CallStaticMethodByName_Long(ani_class cls, const char *name, const char *signature,
6834                                                  ani_long *result, ...)
6835     {
6836         va_list args;
6837         va_start(args, result);
6838         ani_status status = c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args);
6839         va_end(args);
6840         return status;
6841     }
Class_CallStaticMethodByName_Long_A__ani_env6842     ani_status Class_CallStaticMethodByName_Long_A(ani_class cls, const char *name, const char *signature,
6843                                                    ani_long *result, const ani_value *args)
6844     {
6845         return c_api->Class_CallStaticMethodByName_Long_A(this, cls, name, signature, result, args);
6846     }
Class_CallStaticMethodByName_Long_V__ani_env6847     ani_status Class_CallStaticMethodByName_Long_V(ani_class cls, const char *name, const char *signature,
6848                                                    ani_long *result, va_list args)
6849     {
6850         return c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args);
6851     }
Class_CallStaticMethodByName_Float__ani_env6852     ani_status Class_CallStaticMethodByName_Float(ani_class cls, const char *name, const char *signature,
6853                                                   ani_float *result, ...)
6854     {
6855         va_list args;
6856         va_start(args, result);
6857         ani_status status = c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args);
6858         va_end(args);
6859         return status;
6860     }
Class_CallStaticMethodByName_Float_A__ani_env6861     ani_status Class_CallStaticMethodByName_Float_A(ani_class cls, const char *name, const char *signature,
6862                                                     ani_float *result, const ani_value *args)
6863     {
6864         return c_api->Class_CallStaticMethodByName_Float_A(this, cls, name, signature, result, args);
6865     }
Class_CallStaticMethodByName_Float_V__ani_env6866     ani_status Class_CallStaticMethodByName_Float_V(ani_class cls, const char *name, const char *signature,
6867                                                     ani_float *result, va_list args)
6868     {
6869         return c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args);
6870     }
Class_CallStaticMethodByName_Double__ani_env6871     ani_status Class_CallStaticMethodByName_Double(ani_class cls, const char *name, const char *signature,
6872                                                    ani_double *result, ...)
6873     {
6874         va_list args;
6875         va_start(args, result);
6876         ani_status status = c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args);
6877         va_end(args);
6878         return status;
6879     }
Class_CallStaticMethodByName_Double_A__ani_env6880     ani_status Class_CallStaticMethodByName_Double_A(ani_class cls, const char *name, const char *signature,
6881                                                      ani_double *result, const ani_value *args)
6882     {
6883         return c_api->Class_CallStaticMethodByName_Double_A(this, cls, name, signature, result, args);
6884     }
Class_CallStaticMethodByName_Double_V__ani_env6885     ani_status Class_CallStaticMethodByName_Double_V(ani_class cls, const char *name, const char *signature,
6886                                                      ani_double *result, va_list args)
6887     {
6888         return c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args);
6889     }
Class_CallStaticMethodByName_Ref__ani_env6890     ani_status Class_CallStaticMethodByName_Ref(ani_class cls, const char *name, const char *signature, ani_ref *result,
6891                                                 ...)
6892     {
6893         va_list args;
6894         va_start(args, result);
6895         ani_status status = c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args);
6896         va_end(args);
6897         return status;
6898     }
Class_CallStaticMethodByName_Ref_A__ani_env6899     ani_status Class_CallStaticMethodByName_Ref_A(ani_class cls, const char *name, const char *signature,
6900                                                   ani_ref *result, const ani_value *args)
6901     {
6902         return c_api->Class_CallStaticMethodByName_Ref_A(this, cls, name, signature, result, args);
6903     }
Class_CallStaticMethodByName_Ref_V__ani_env6904     ani_status Class_CallStaticMethodByName_Ref_V(ani_class cls, const char *name, const char *signature,
6905                                                   ani_ref *result, va_list args)
6906     {
6907         return c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args);
6908     }
Class_CallStaticMethodByName_Void__ani_env6909     ani_status Class_CallStaticMethodByName_Void(ani_class cls, const char *name, const char *signature, ...)
6910     {
6911         va_list args;
6912         va_start(args, signature);
6913         ani_status status = c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args);
6914         va_end(args);
6915         return status;
6916     }
Class_CallStaticMethodByName_Void_A__ani_env6917     ani_status Class_CallStaticMethodByName_Void_A(ani_class cls, const char *name, const char *signature,
6918                                                    const ani_value *args)
6919     {
6920         return c_api->Class_CallStaticMethodByName_Void_A(this, cls, name, signature, args);
6921     }
Class_CallStaticMethodByName_Void_V__ani_env6922     ani_status Class_CallStaticMethodByName_Void_V(ani_class cls, const char *name, const char *signature, va_list args)
6923     {
6924         return c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args);
6925     }
Object_GetField_Boolean__ani_env6926     ani_status Object_GetField_Boolean(ani_object object, ani_field field, ani_boolean *result)
6927     {
6928         return c_api->Object_GetField_Boolean(this, object, field, result);
6929     }
Object_GetField_Char__ani_env6930     ani_status Object_GetField_Char(ani_object object, ani_field field, ani_char *result)
6931     {
6932         return c_api->Object_GetField_Char(this, object, field, result);
6933     }
Object_GetField_Byte__ani_env6934     ani_status Object_GetField_Byte(ani_object object, ani_field field, ani_byte *result)
6935     {
6936         return c_api->Object_GetField_Byte(this, object, field, result);
6937     }
Object_GetField_Short__ani_env6938     ani_status Object_GetField_Short(ani_object object, ani_field field, ani_short *result)
6939     {
6940         return c_api->Object_GetField_Short(this, object, field, result);
6941     }
Object_GetField_Int__ani_env6942     ani_status Object_GetField_Int(ani_object object, ani_field field, ani_int *result)
6943     {
6944         return c_api->Object_GetField_Int(this, object, field, result);
6945     }
Object_GetField_Long__ani_env6946     ani_status Object_GetField_Long(ani_object object, ani_field field, ani_long *result)
6947     {
6948         return c_api->Object_GetField_Long(this, object, field, result);
6949     }
Object_GetField_Float__ani_env6950     ani_status Object_GetField_Float(ani_object object, ani_field field, ani_float *result)
6951     {
6952         return c_api->Object_GetField_Float(this, object, field, result);
6953     }
Object_GetField_Double__ani_env6954     ani_status Object_GetField_Double(ani_object object, ani_field field, ani_double *result)
6955     {
6956         return c_api->Object_GetField_Double(this, object, field, result);
6957     }
Object_GetField_Ref__ani_env6958     ani_status Object_GetField_Ref(ani_object object, ani_field field, ani_ref *result)
6959     {
6960         return c_api->Object_GetField_Ref(this, object, field, result);
6961     }
Object_SetField_Boolean__ani_env6962     ani_status Object_SetField_Boolean(ani_object object, ani_field field, ani_boolean value)
6963     {
6964         return c_api->Object_SetField_Boolean(this, object, field, value);
6965     }
Object_SetField_Char__ani_env6966     ani_status Object_SetField_Char(ani_object object, ani_field field, ani_char value)
6967     {
6968         return c_api->Object_SetField_Char(this, object, field, value);
6969     }
Object_SetField_Byte__ani_env6970     ani_status Object_SetField_Byte(ani_object object, ani_field field, ani_byte value)
6971     {
6972         return c_api->Object_SetField_Byte(this, object, field, value);
6973     }
Object_SetField_Short__ani_env6974     ani_status Object_SetField_Short(ani_object object, ani_field field, ani_short value)
6975     {
6976         return c_api->Object_SetField_Short(this, object, field, value);
6977     }
Object_SetField_Int__ani_env6978     ani_status Object_SetField_Int(ani_object object, ani_field field, ani_int value)
6979     {
6980         return c_api->Object_SetField_Int(this, object, field, value);
6981     }
Object_SetField_Long__ani_env6982     ani_status Object_SetField_Long(ani_object object, ani_field field, ani_long value)
6983     {
6984         return c_api->Object_SetField_Long(this, object, field, value);
6985     }
Object_SetField_Float__ani_env6986     ani_status Object_SetField_Float(ani_object object, ani_field field, ani_float value)
6987     {
6988         return c_api->Object_SetField_Float(this, object, field, value);
6989     }
Object_SetField_Double__ani_env6990     ani_status Object_SetField_Double(ani_object object, ani_field field, ani_double value)
6991     {
6992         return c_api->Object_SetField_Double(this, object, field, value);
6993     }
Object_SetField_Ref__ani_env6994     ani_status Object_SetField_Ref(ani_object object, ani_field field, ani_ref value)
6995     {
6996         return c_api->Object_SetField_Ref(this, object, field, value);
6997     }
Object_GetFieldByName_Boolean__ani_env6998     ani_status Object_GetFieldByName_Boolean(ani_object object, const char *name, ani_boolean *result)
6999     {
7000         return c_api->Object_GetFieldByName_Boolean(this, object, name, result);
7001     }
Object_GetFieldByName_Char__ani_env7002     ani_status Object_GetFieldByName_Char(ani_object object, const char *name, ani_char *result)
7003     {
7004         return c_api->Object_GetFieldByName_Char(this, object, name, result);
7005     }
Object_GetFieldByName_Byte__ani_env7006     ani_status Object_GetFieldByName_Byte(ani_object object, const char *name, ani_byte *result)
7007     {
7008         return c_api->Object_GetFieldByName_Byte(this, object, name, result);
7009     }
Object_GetFieldByName_Short__ani_env7010     ani_status Object_GetFieldByName_Short(ani_object object, const char *name, ani_short *result)
7011     {
7012         return c_api->Object_GetFieldByName_Short(this, object, name, result);
7013     }
Object_GetFieldByName_Int__ani_env7014     ani_status Object_GetFieldByName_Int(ani_object object, const char *name, ani_int *result)
7015     {
7016         return c_api->Object_GetFieldByName_Int(this, object, name, result);
7017     }
Object_GetFieldByName_Long__ani_env7018     ani_status Object_GetFieldByName_Long(ani_object object, const char *name, ani_long *result)
7019     {
7020         return c_api->Object_GetFieldByName_Long(this, object, name, result);
7021     }
Object_GetFieldByName_Float__ani_env7022     ani_status Object_GetFieldByName_Float(ani_object object, const char *name, ani_float *result)
7023     {
7024         return c_api->Object_GetFieldByName_Float(this, object, name, result);
7025     }
Object_GetFieldByName_Double__ani_env7026     ani_status Object_GetFieldByName_Double(ani_object object, const char *name, ani_double *result)
7027     {
7028         return c_api->Object_GetFieldByName_Double(this, object, name, result);
7029     }
Object_GetFieldByName_Ref__ani_env7030     ani_status Object_GetFieldByName_Ref(ani_object object, const char *name, ani_ref *result)
7031     {
7032         return c_api->Object_GetFieldByName_Ref(this, object, name, result);
7033     }
Object_SetFieldByName_Boolean__ani_env7034     ani_status Object_SetFieldByName_Boolean(ani_object object, const char *name, ani_boolean value)
7035     {
7036         return c_api->Object_SetFieldByName_Boolean(this, object, name, value);
7037     }
Object_SetFieldByName_Char__ani_env7038     ani_status Object_SetFieldByName_Char(ani_object object, const char *name, ani_char value)
7039     {
7040         return c_api->Object_SetFieldByName_Char(this, object, name, value);
7041     }
Object_SetFieldByName_Byte__ani_env7042     ani_status Object_SetFieldByName_Byte(ani_object object, const char *name, ani_byte value)
7043     {
7044         return c_api->Object_SetFieldByName_Byte(this, object, name, value);
7045     }
Object_SetFieldByName_Short__ani_env7046     ani_status Object_SetFieldByName_Short(ani_object object, const char *name, ani_short value)
7047     {
7048         return c_api->Object_SetFieldByName_Short(this, object, name, value);
7049     }
Object_SetFieldByName_Int__ani_env7050     ani_status Object_SetFieldByName_Int(ani_object object, const char *name, ani_int value)
7051     {
7052         return c_api->Object_SetFieldByName_Int(this, object, name, value);
7053     }
Object_SetFieldByName_Long__ani_env7054     ani_status Object_SetFieldByName_Long(ani_object object, const char *name, ani_long value)
7055     {
7056         return c_api->Object_SetFieldByName_Long(this, object, name, value);
7057     }
Object_SetFieldByName_Float__ani_env7058     ani_status Object_SetFieldByName_Float(ani_object object, const char *name, ani_float value)
7059     {
7060         return c_api->Object_SetFieldByName_Float(this, object, name, value);
7061     }
Object_SetFieldByName_Double__ani_env7062     ani_status Object_SetFieldByName_Double(ani_object object, const char *name, ani_double value)
7063     {
7064         return c_api->Object_SetFieldByName_Double(this, object, name, value);
7065     }
Object_SetFieldByName_Ref__ani_env7066     ani_status Object_SetFieldByName_Ref(ani_object object, const char *name, ani_ref value)
7067     {
7068         return c_api->Object_SetFieldByName_Ref(this, object, name, value);
7069     }
Object_GetPropertyByName_Boolean__ani_env7070     ani_status Object_GetPropertyByName_Boolean(ani_object object, const char *name, ani_boolean *result)
7071     {
7072         return c_api->Object_GetPropertyByName_Boolean(this, object, name, result);
7073     }
Object_GetPropertyByName_Char__ani_env7074     ani_status Object_GetPropertyByName_Char(ani_object object, const char *name, ani_char *result)
7075     {
7076         return c_api->Object_GetPropertyByName_Char(this, object, name, result);
7077     }
Object_GetPropertyByName_Byte__ani_env7078     ani_status Object_GetPropertyByName_Byte(ani_object object, const char *name, ani_byte *result)
7079     {
7080         return c_api->Object_GetPropertyByName_Byte(this, object, name, result);
7081     }
Object_GetPropertyByName_Short__ani_env7082     ani_status Object_GetPropertyByName_Short(ani_object object, const char *name, ani_short *result)
7083     {
7084         return c_api->Object_GetPropertyByName_Short(this, object, name, result);
7085     }
Object_GetPropertyByName_Int__ani_env7086     ani_status Object_GetPropertyByName_Int(ani_object object, const char *name, ani_int *result)
7087     {
7088         return c_api->Object_GetPropertyByName_Int(this, object, name, result);
7089     }
Object_GetPropertyByName_Long__ani_env7090     ani_status Object_GetPropertyByName_Long(ani_object object, const char *name, ani_long *result)
7091     {
7092         return c_api->Object_GetPropertyByName_Long(this, object, name, result);
7093     }
Object_GetPropertyByName_Float__ani_env7094     ani_status Object_GetPropertyByName_Float(ani_object object, const char *name, ani_float *result)
7095     {
7096         return c_api->Object_GetPropertyByName_Float(this, object, name, result);
7097     }
Object_GetPropertyByName_Double__ani_env7098     ani_status Object_GetPropertyByName_Double(ani_object object, const char *name, ani_double *result)
7099     {
7100         return c_api->Object_GetPropertyByName_Double(this, object, name, result);
7101     }
Object_GetPropertyByName_Ref__ani_env7102     ani_status Object_GetPropertyByName_Ref(ani_object object, const char *name, ani_ref *result)
7103     {
7104         return c_api->Object_GetPropertyByName_Ref(this, object, name, result);
7105     }
Object_SetPropertyByName_Boolean__ani_env7106     ani_status Object_SetPropertyByName_Boolean(ani_object object, const char *name, ani_boolean value)
7107     {
7108         return c_api->Object_SetPropertyByName_Boolean(this, object, name, value);
7109     }
Object_SetPropertyByName_Char__ani_env7110     ani_status Object_SetPropertyByName_Char(ani_object object, const char *name, ani_char value)
7111     {
7112         return c_api->Object_SetPropertyByName_Char(this, object, name, value);
7113     }
Object_SetPropertyByName_Byte__ani_env7114     ani_status Object_SetPropertyByName_Byte(ani_object object, const char *name, ani_byte value)
7115     {
7116         return c_api->Object_SetPropertyByName_Byte(this, object, name, value);
7117     }
Object_SetPropertyByName_Short__ani_env7118     ani_status Object_SetPropertyByName_Short(ani_object object, const char *name, ani_short value)
7119     {
7120         return c_api->Object_SetPropertyByName_Short(this, object, name, value);
7121     }
Object_SetPropertyByName_Int__ani_env7122     ani_status Object_SetPropertyByName_Int(ani_object object, const char *name, ani_int value)
7123     {
7124         return c_api->Object_SetPropertyByName_Int(this, object, name, value);
7125     }
Object_SetPropertyByName_Long__ani_env7126     ani_status Object_SetPropertyByName_Long(ani_object object, const char *name, ani_long value)
7127     {
7128         return c_api->Object_SetPropertyByName_Long(this, object, name, value);
7129     }
Object_SetPropertyByName_Float__ani_env7130     ani_status Object_SetPropertyByName_Float(ani_object object, const char *name, ani_float value)
7131     {
7132         return c_api->Object_SetPropertyByName_Float(this, object, name, value);
7133     }
Object_SetPropertyByName_Double__ani_env7134     ani_status Object_SetPropertyByName_Double(ani_object object, const char *name, ani_double value)
7135     {
7136         return c_api->Object_SetPropertyByName_Double(this, object, name, value);
7137     }
Object_SetPropertyByName_Ref__ani_env7138     ani_status Object_SetPropertyByName_Ref(ani_object object, const char *name, ani_ref value)
7139     {
7140         return c_api->Object_SetPropertyByName_Ref(this, object, name, value);
7141     }
Object_CallMethod_Boolean__ani_env7142     ani_status Object_CallMethod_Boolean(ani_object object, ani_method method, ani_boolean *result, ...)
7143     {
7144         va_list args;
7145         va_start(args, result);
7146         ani_status status = c_api->Object_CallMethod_Boolean_V(this, object, method, result, args);
7147         va_end(args);
7148         return status;
7149     }
Object_CallMethod_Boolean_A__ani_env7150     ani_status Object_CallMethod_Boolean_A(ani_object object, ani_method method, ani_boolean *result,
7151                                            const ani_value *args)
7152     {
7153         return c_api->Object_CallMethod_Boolean_A(this, object, method, result, args);
7154     }
Object_CallMethod_Boolean_V__ani_env7155     ani_status Object_CallMethod_Boolean_V(ani_object object, ani_method method, ani_boolean *result, va_list args)
7156     {
7157         return c_api->Object_CallMethod_Boolean_V(this, object, method, result, args);
7158     }
Object_CallMethod_Char__ani_env7159     ani_status Object_CallMethod_Char(ani_object object, ani_method method, ani_char *result, ...)
7160     {
7161         va_list args;
7162         va_start(args, result);
7163         ani_status status = c_api->Object_CallMethod_Char_V(this, object, method, result, args);
7164         va_end(args);
7165         return status;
7166     }
Object_CallMethod_Char_A__ani_env7167     ani_status Object_CallMethod_Char_A(ani_object object, ani_method method, ani_char *result, const ani_value *args)
7168     {
7169         return c_api->Object_CallMethod_Char_A(this, object, method, result, args);
7170     }
Object_CallMethod_Char_V__ani_env7171     ani_status Object_CallMethod_Char_V(ani_object object, ani_method method, ani_char *result, va_list args)
7172     {
7173         return c_api->Object_CallMethod_Char_V(this, object, method, result, args);
7174     }
Object_CallMethod_Byte__ani_env7175     ani_status Object_CallMethod_Byte(ani_object object, ani_method method, ani_byte *result, ...)
7176     {
7177         va_list args;
7178         va_start(args, result);
7179         ani_status status = c_api->Object_CallMethod_Byte_V(this, object, method, result, args);
7180         va_end(args);
7181         return status;
7182     }
Object_CallMethod_Byte_A__ani_env7183     ani_status Object_CallMethod_Byte_A(ani_object object, ani_method method, ani_byte *result, const ani_value *args)
7184     {
7185         return c_api->Object_CallMethod_Byte_A(this, object, method, result, args);
7186     }
Object_CallMethod_Byte_V__ani_env7187     ani_status Object_CallMethod_Byte_V(ani_object object, ani_method method, ani_byte *result, va_list args)
7188     {
7189         return c_api->Object_CallMethod_Byte_V(this, object, method, result, args);
7190     }
Object_CallMethod_Short__ani_env7191     ani_status Object_CallMethod_Short(ani_object object, ani_method method, ani_short *result, ...)
7192     {
7193         va_list args;
7194         va_start(args, result);
7195         ani_status status = c_api->Object_CallMethod_Short_V(this, object, method, result, args);
7196         va_end(args);
7197         return status;
7198     }
Object_CallMethod_Short_A__ani_env7199     ani_status Object_CallMethod_Short_A(ani_object object, ani_method method, ani_short *result, const ani_value *args)
7200     {
7201         return c_api->Object_CallMethod_Short_A(this, object, method, result, args);
7202     }
Object_CallMethod_Short_V__ani_env7203     ani_status Object_CallMethod_Short_V(ani_object object, ani_method method, ani_short *result, va_list args)
7204     {
7205         return c_api->Object_CallMethod_Short_V(this, object, method, result, args);
7206     }
Object_CallMethod_Int__ani_env7207     ani_status Object_CallMethod_Int(ani_object object, ani_method method, ani_int *result, ...)
7208     {
7209         va_list args;
7210         va_start(args, result);
7211         ani_status status = c_api->Object_CallMethod_Int_V(this, object, method, result, args);
7212         va_end(args);
7213         return status;
7214     }
Object_CallMethod_Int_A__ani_env7215     ani_status Object_CallMethod_Int_A(ani_object object, ani_method method, ani_int *result, const ani_value *args)
7216     {
7217         return c_api->Object_CallMethod_Int_A(this, object, method, result, args);
7218     }
Object_CallMethod_Int_V__ani_env7219     ani_status Object_CallMethod_Int_V(ani_object object, ani_method method, ani_int *result, va_list args)
7220     {
7221         return c_api->Object_CallMethod_Int_V(this, object, method, result, args);
7222     }
Object_CallMethod_Long__ani_env7223     ani_status Object_CallMethod_Long(ani_object object, ani_method method, ani_long *result, ...)
7224     {
7225         va_list args;
7226         va_start(args, result);
7227         ani_status status = c_api->Object_CallMethod_Long_V(this, object, method, result, args);
7228         va_end(args);
7229         return status;
7230     }
Object_CallMethod_Long_A__ani_env7231     ani_status Object_CallMethod_Long_A(ani_object object, ani_method method, ani_long *result, const ani_value *args)
7232     {
7233         return c_api->Object_CallMethod_Long_A(this, object, method, result, args);
7234     }
Object_CallMethod_Long_V__ani_env7235     ani_status Object_CallMethod_Long_V(ani_object object, ani_method method, ani_long *result, va_list args)
7236     {
7237         return c_api->Object_CallMethod_Long_V(this, object, method, result, args);
7238     }
Object_CallMethod_Float__ani_env7239     ani_status Object_CallMethod_Float(ani_object object, ani_method method, ani_float *result, ...)
7240     {
7241         va_list args;
7242         va_start(args, result);
7243         ani_status status = c_api->Object_CallMethod_Float_V(this, object, method, result, args);
7244         va_end(args);
7245         return status;
7246     }
Object_CallMethod_Float_A__ani_env7247     ani_status Object_CallMethod_Float_A(ani_object object, ani_method method, ani_float *result, const ani_value *args)
7248     {
7249         return c_api->Object_CallMethod_Float_A(this, object, method, result, args);
7250     }
Object_CallMethod_Float_V__ani_env7251     ani_status Object_CallMethod_Float_V(ani_object object, ani_method method, ani_float *result, va_list args)
7252     {
7253         return c_api->Object_CallMethod_Float_V(this, object, method, result, args);
7254     }
Object_CallMethod_Double__ani_env7255     ani_status Object_CallMethod_Double(ani_object object, ani_method method, ani_double *result, ...)
7256     {
7257         va_list args;
7258         va_start(args, result);
7259         ani_status status = c_api->Object_CallMethod_Double_V(this, object, method, result, args);
7260         va_end(args);
7261         return status;
7262     }
Object_CallMethod_Double_A__ani_env7263     ani_status Object_CallMethod_Double_A(ani_object object, ani_method method, ani_double *result,
7264                                           const ani_value *args)
7265     {
7266         return c_api->Object_CallMethod_Double_A(this, object, method, result, args);
7267     }
Object_CallMethod_Double_V__ani_env7268     ani_status Object_CallMethod_Double_V(ani_object object, ani_method method, ani_double *result, va_list args)
7269     {
7270         return c_api->Object_CallMethod_Double_V(this, object, method, result, args);
7271     }
Object_CallMethod_Ref__ani_env7272     ani_status Object_CallMethod_Ref(ani_object object, ani_method method, ani_ref *result, ...)
7273     {
7274         va_list args;
7275         va_start(args, result);
7276         ani_status status = c_api->Object_CallMethod_Ref_V(this, object, method, result, args);
7277         va_end(args);
7278         return status;
7279     }
Object_CallMethod_Ref_A__ani_env7280     ani_status Object_CallMethod_Ref_A(ani_object object, ani_method method, ani_ref *result, const ani_value *args)
7281     {
7282         return c_api->Object_CallMethod_Ref_A(this, object, method, result, args);
7283     }
Object_CallMethod_Ref_V__ani_env7284     ani_status Object_CallMethod_Ref_V(ani_object object, ani_method method, ani_ref *result, va_list args)
7285     {
7286         return c_api->Object_CallMethod_Ref_V(this, object, method, result, args);
7287     }
Object_CallMethod_Void__ani_env7288     ani_status Object_CallMethod_Void(ani_object object, ani_method method, ...)
7289     {
7290         va_list args;
7291         va_start(args, method);
7292         ani_status status = c_api->Object_CallMethod_Void_V(this, object, method, args);
7293         va_end(args);
7294         return status;
7295     }
Object_CallMethod_Void_A__ani_env7296     ani_status Object_CallMethod_Void_A(ani_object object, ani_method method, const ani_value *args)
7297     {
7298         return c_api->Object_CallMethod_Void_A(this, object, method, args);
7299     }
Object_CallMethod_Void_V__ani_env7300     ani_status Object_CallMethod_Void_V(ani_object object, ani_method method, va_list args)
7301     {
7302         return c_api->Object_CallMethod_Void_V(this, object, method, args);
7303     }
Object_CallMethodByName_Boolean__ani_env7304     ani_status Object_CallMethodByName_Boolean(ani_object object, const char *name, const char *signature,
7305                                                ani_boolean *result, ...)
7306     {
7307         va_list args;
7308         va_start(args, result);
7309         ani_status status = c_api->Object_CallMethodByName_Boolean_V(this, object, name, signature, result, args);
7310         va_end(args);
7311         return status;
7312     }
Object_CallMethodByName_Boolean_A__ani_env7313     ani_status Object_CallMethodByName_Boolean_A(ani_object object, const char *name, const char *signature,
7314                                                  ani_boolean *result, const ani_value *args)
7315     {
7316         return c_api->Object_CallMethodByName_Boolean_A(this, object, name, signature, result, args);
7317     }
Object_CallMethodByName_Boolean_V__ani_env7318     ani_status Object_CallMethodByName_Boolean_V(ani_object object, const char *name, const char *signature,
7319                                                  ani_boolean *result, va_list args)
7320     {
7321         return c_api->Object_CallMethodByName_Boolean_V(this, object, name, signature, result, args);
7322     }
Object_CallMethodByName_Char__ani_env7323     ani_status Object_CallMethodByName_Char(ani_object object, const char *name, const char *signature,
7324                                             ani_char *result, ...)
7325     {
7326         va_list args;
7327         va_start(args, result);
7328         ani_status status = c_api->Object_CallMethodByName_Char_V(this, object, name, signature, result, args);
7329         va_end(args);
7330         return status;
7331     }
Object_CallMethodByName_Char_A__ani_env7332     ani_status Object_CallMethodByName_Char_A(ani_object object, const char *name, const char *signature,
7333                                               ani_char *result, const ani_value *args)
7334     {
7335         return c_api->Object_CallMethodByName_Char_A(this, object, name, signature, result, args);
7336     }
Object_CallMethodByName_Char_V__ani_env7337     ani_status Object_CallMethodByName_Char_V(ani_object object, const char *name, const char *signature,
7338                                               ani_char *result, va_list args)
7339     {
7340         return c_api->Object_CallMethodByName_Char_V(this, object, name, signature, result, args);
7341     }
Object_CallMethodByName_Byte__ani_env7342     ani_status Object_CallMethodByName_Byte(ani_object object, const char *name, const char *signature,
7343                                             ani_byte *result, ...)
7344     {
7345         va_list args;
7346         va_start(args, result);
7347         ani_status status = c_api->Object_CallMethodByName_Byte_V(this, object, name, signature, result, args);
7348         va_end(args);
7349         return status;
7350     }
Object_CallMethodByName_Byte_A__ani_env7351     ani_status Object_CallMethodByName_Byte_A(ani_object object, const char *name, const char *signature,
7352                                               ani_byte *result, const ani_value *args)
7353     {
7354         return c_api->Object_CallMethodByName_Byte_A(this, object, name, signature, result, args);
7355     }
Object_CallMethodByName_Byte_V__ani_env7356     ani_status Object_CallMethodByName_Byte_V(ani_object object, const char *name, const char *signature,
7357                                               ani_byte *result, va_list args)
7358     {
7359         return c_api->Object_CallMethodByName_Byte_V(this, object, name, signature, result, args);
7360     }
Object_CallMethodByName_Short__ani_env7361     ani_status Object_CallMethodByName_Short(ani_object object, const char *name, const char *signature,
7362                                              ani_short *result, ...)
7363     {
7364         va_list args;
7365         va_start(args, result);
7366         ani_status status = c_api->Object_CallMethodByName_Short_V(this, object, name, signature, result, args);
7367         va_end(args);
7368         return status;
7369     }
Object_CallMethodByName_Short_A__ani_env7370     ani_status Object_CallMethodByName_Short_A(ani_object object, const char *name, const char *signature,
7371                                                ani_short *result, const ani_value *args)
7372     {
7373         return c_api->Object_CallMethodByName_Short_A(this, object, name, signature, result, args);
7374     }
Object_CallMethodByName_Short_V__ani_env7375     ani_status Object_CallMethodByName_Short_V(ani_object object, const char *name, const char *signature,
7376                                                ani_short *result, va_list args)
7377     {
7378         return c_api->Object_CallMethodByName_Short_V(this, object, name, signature, result, args);
7379     }
Object_CallMethodByName_Int__ani_env7380     ani_status Object_CallMethodByName_Int(ani_object object, const char *name, const char *signature, ani_int *result,
7381                                            ...)
7382     {
7383         va_list args;
7384         va_start(args, result);
7385         ani_status status = c_api->Object_CallMethodByName_Int_V(this, object, name, signature, result, args);
7386         va_end(args);
7387         return status;
7388     }
Object_CallMethodByName_Int_A__ani_env7389     ani_status Object_CallMethodByName_Int_A(ani_object object, const char *name, const char *signature,
7390                                              ani_int *result, const ani_value *args)
7391     {
7392         return c_api->Object_CallMethodByName_Int_A(this, object, name, signature, result, args);
7393     }
Object_CallMethodByName_Int_V__ani_env7394     ani_status Object_CallMethodByName_Int_V(ani_object object, const char *name, const char *signature,
7395                                              ani_int *result, va_list args)
7396     {
7397         return c_api->Object_CallMethodByName_Int_V(this, object, name, signature, result, args);
7398     }
Object_CallMethodByName_Long__ani_env7399     ani_status Object_CallMethodByName_Long(ani_object object, const char *name, const char *signature,
7400                                             ani_long *result, ...)
7401     {
7402         va_list args;
7403         va_start(args, result);
7404         ani_status status = c_api->Object_CallMethodByName_Long_V(this, object, name, signature, result, args);
7405         va_end(args);
7406         return status;
7407     }
Object_CallMethodByName_Long_A__ani_env7408     ani_status Object_CallMethodByName_Long_A(ani_object object, const char *name, const char *signature,
7409                                               ani_long *result, const ani_value *args)
7410     {
7411         return c_api->Object_CallMethodByName_Long_A(this, object, name, signature, result, args);
7412     }
Object_CallMethodByName_Long_V__ani_env7413     ani_status Object_CallMethodByName_Long_V(ani_object object, const char *name, const char *signature,
7414                                               ani_long *result, va_list args)
7415     {
7416         return c_api->Object_CallMethodByName_Long_V(this, object, name, signature, result, args);
7417     }
Object_CallMethodByName_Float__ani_env7418     ani_status Object_CallMethodByName_Float(ani_object object, const char *name, const char *signature,
7419                                              ani_float *result, ...)
7420     {
7421         va_list args;
7422         va_start(args, result);
7423         ani_status status = c_api->Object_CallMethodByName_Float_V(this, object, name, signature, result, args);
7424         va_end(args);
7425         return status;
7426     }
Object_CallMethodByName_Float_A__ani_env7427     ani_status Object_CallMethodByName_Float_A(ani_object object, const char *name, const char *signature,
7428                                                ani_float *result, const ani_value *args)
7429     {
7430         return c_api->Object_CallMethodByName_Float_A(this, object, name, signature, result, args);
7431     }
Object_CallMethodByName_Float_V__ani_env7432     ani_status Object_CallMethodByName_Float_V(ani_object object, const char *name, const char *signature,
7433                                                ani_float *result, va_list args)
7434     {
7435         return c_api->Object_CallMethodByName_Float_V(this, object, name, signature, result, args);
7436     }
Object_CallMethodByName_Double__ani_env7437     ani_status Object_CallMethodByName_Double(ani_object object, const char *name, const char *signature,
7438                                               ani_double *result, ...)
7439     {
7440         va_list args;
7441         va_start(args, result);
7442         ani_status status = c_api->Object_CallMethodByName_Double_V(this, object, name, signature, result, args);
7443         va_end(args);
7444         return status;
7445     }
Object_CallMethodByName_Double_A__ani_env7446     ani_status Object_CallMethodByName_Double_A(ani_object object, const char *name, const char *signature,
7447                                                 ani_double *result, const ani_value *args)
7448     {
7449         return c_api->Object_CallMethodByName_Double_A(this, object, name, signature, result, args);
7450     }
Object_CallMethodByName_Double_V__ani_env7451     ani_status Object_CallMethodByName_Double_V(ani_object object, const char *name, const char *signature,
7452                                                 ani_double *result, va_list args)
7453     {
7454         return c_api->Object_CallMethodByName_Double_V(this, object, name, signature, result, args);
7455     }
Object_CallMethodByName_Ref__ani_env7456     ani_status Object_CallMethodByName_Ref(ani_object object, const char *name, const char *signature, ani_ref *result,
7457                                            ...)
7458     {
7459         va_list args;
7460         va_start(args, result);
7461         ani_status status = c_api->Object_CallMethodByName_Ref_V(this, object, name, signature, result, args);
7462         va_end(args);
7463         return status;
7464     }
Object_CallMethodByName_Ref_A__ani_env7465     ani_status Object_CallMethodByName_Ref_A(ani_object object, const char *name, const char *signature,
7466                                              ani_ref *result, const ani_value *args)
7467     {
7468         return c_api->Object_CallMethodByName_Ref_A(this, object, name, signature, result, args);
7469     }
Object_CallMethodByName_Ref_V__ani_env7470     ani_status Object_CallMethodByName_Ref_V(ani_object object, const char *name, const char *signature,
7471                                              ani_ref *result, va_list args)
7472     {
7473         return c_api->Object_CallMethodByName_Ref_V(this, object, name, signature, result, args);
7474     }
Object_CallMethodByName_Void__ani_env7475     ani_status Object_CallMethodByName_Void(ani_object object, const char *name, const char *signature, ...)
7476     {
7477         va_list args;
7478         va_start(args, signature);
7479         ani_status status = c_api->Object_CallMethodByName_Void_V(this, object, name, signature, args);
7480         va_end(args);
7481         return status;
7482     }
Object_CallMethodByName_Void_A__ani_env7483     ani_status Object_CallMethodByName_Void_A(ani_object object, const char *name, const char *signature,
7484                                               const ani_value *args)
7485     {
7486         return c_api->Object_CallMethodByName_Void_A(this, object, name, signature, args);
7487     }
Object_CallMethodByName_Void_V__ani_env7488     ani_status Object_CallMethodByName_Void_V(ani_object object, const char *name, const char *signature, va_list args)
7489     {
7490         return c_api->Object_CallMethodByName_Void_V(this, object, name, signature, args);
7491     }
TupleValue_GetNumberOfItems__ani_env7492     ani_status TupleValue_GetNumberOfItems(ani_tuple_value tuple_value, ani_size *result)
7493     {
7494         return c_api->TupleValue_GetNumberOfItems(this, tuple_value, result);
7495     }
TupleValue_GetItem_Boolean__ani_env7496     ani_status TupleValue_GetItem_Boolean(ani_tuple_value tuple_value, ani_size index, ani_boolean *result)
7497     {
7498         return c_api->TupleValue_GetItem_Boolean(this, tuple_value, index, result);
7499     }
TupleValue_GetItem_Char__ani_env7500     ani_status TupleValue_GetItem_Char(ani_tuple_value tuple_value, ani_size index, ani_char *result)
7501     {
7502         return c_api->TupleValue_GetItem_Char(this, tuple_value, index, result);
7503     }
TupleValue_GetItem_Byte__ani_env7504     ani_status TupleValue_GetItem_Byte(ani_tuple_value tuple_value, ani_size index, ani_byte *result)
7505     {
7506         return c_api->TupleValue_GetItem_Byte(this, tuple_value, index, result);
7507     }
TupleValue_GetItem_Short__ani_env7508     ani_status TupleValue_GetItem_Short(ani_tuple_value tuple_value, ani_size index, ani_short *result)
7509     {
7510         return c_api->TupleValue_GetItem_Short(this, tuple_value, index, result);
7511     }
TupleValue_GetItem_Int__ani_env7512     ani_status TupleValue_GetItem_Int(ani_tuple_value tuple_value, ani_size index, ani_int *result)
7513     {
7514         return c_api->TupleValue_GetItem_Int(this, tuple_value, index, result);
7515     }
TupleValue_GetItem_Long__ani_env7516     ani_status TupleValue_GetItem_Long(ani_tuple_value tuple_value, ani_size index, ani_long *result)
7517     {
7518         return c_api->TupleValue_GetItem_Long(this, tuple_value, index, result);
7519     }
TupleValue_GetItem_Float__ani_env7520     ani_status TupleValue_GetItem_Float(ani_tuple_value tuple_value, ani_size index, ani_float *result)
7521     {
7522         return c_api->TupleValue_GetItem_Float(this, tuple_value, index, result);
7523     }
TupleValue_GetItem_Double__ani_env7524     ani_status TupleValue_GetItem_Double(ani_tuple_value tuple_value, ani_size index, ani_double *result)
7525     {
7526         return c_api->TupleValue_GetItem_Double(this, tuple_value, index, result);
7527     }
TupleValue_GetItem_Ref__ani_env7528     ani_status TupleValue_GetItem_Ref(ani_tuple_value tuple_value, ani_size index, ani_ref *result)
7529     {
7530         return c_api->TupleValue_GetItem_Ref(this, tuple_value, index, result);
7531     }
TupleValue_SetItem_Boolean__ani_env7532     ani_status TupleValue_SetItem_Boolean(ani_tuple_value tuple_value, ani_size index, ani_boolean value)
7533     {
7534         return c_api->TupleValue_SetItem_Boolean(this, tuple_value, index, value);
7535     }
TupleValue_SetItem_Char__ani_env7536     ani_status TupleValue_SetItem_Char(ani_tuple_value tuple_value, ani_size index, ani_char value)
7537     {
7538         return c_api->TupleValue_SetItem_Char(this, tuple_value, index, value);
7539     }
TupleValue_SetItem_Byte__ani_env7540     ani_status TupleValue_SetItem_Byte(ani_tuple_value tuple_value, ani_size index, ani_byte value)
7541     {
7542         return c_api->TupleValue_SetItem_Byte(this, tuple_value, index, value);
7543     }
TupleValue_SetItem_Short__ani_env7544     ani_status TupleValue_SetItem_Short(ani_tuple_value tuple_value, ani_size index, ani_short value)
7545     {
7546         return c_api->TupleValue_SetItem_Short(this, tuple_value, index, value);
7547     }
TupleValue_SetItem_Int__ani_env7548     ani_status TupleValue_SetItem_Int(ani_tuple_value tuple_value, ani_size index, ani_int value)
7549     {
7550         return c_api->TupleValue_SetItem_Int(this, tuple_value, index, value);
7551     }
TupleValue_SetItem_Long__ani_env7552     ani_status TupleValue_SetItem_Long(ani_tuple_value tuple_value, ani_size index, ani_long value)
7553     {
7554         return c_api->TupleValue_SetItem_Long(this, tuple_value, index, value);
7555     }
TupleValue_SetItem_Float__ani_env7556     ani_status TupleValue_SetItem_Float(ani_tuple_value tuple_value, ani_size index, ani_float value)
7557     {
7558         return c_api->TupleValue_SetItem_Float(this, tuple_value, index, value);
7559     }
TupleValue_SetItem_Double__ani_env7560     ani_status TupleValue_SetItem_Double(ani_tuple_value tuple_value, ani_size index, ani_double value)
7561     {
7562         return c_api->TupleValue_SetItem_Double(this, tuple_value, index, value);
7563     }
TupleValue_SetItem_Ref__ani_env7564     ani_status TupleValue_SetItem_Ref(ani_tuple_value tuple_value, ani_size index, ani_ref value)
7565     {
7566         return c_api->TupleValue_SetItem_Ref(this, tuple_value, index, value);
7567     }
GlobalReference_Create__ani_env7568     ani_status GlobalReference_Create(ani_ref ref, ani_ref *result)
7569     {
7570         return c_api->GlobalReference_Create(this, ref, result);
7571     }
GlobalReference_Delete__ani_env7572     ani_status GlobalReference_Delete(ani_ref ref)
7573     {
7574         return c_api->GlobalReference_Delete(this, ref);
7575     }
WeakReference_Create__ani_env7576     ani_status WeakReference_Create(ani_ref ref, ani_wref *result)
7577     {
7578         return c_api->WeakReference_Create(this, ref, result);
7579     }
WeakReference_Delete__ani_env7580     ani_status WeakReference_Delete(ani_wref wref)
7581     {
7582         return c_api->WeakReference_Delete(this, wref);
7583     }
WeakReference_GetReference__ani_env7584     ani_status WeakReference_GetReference(ani_wref wref, ani_boolean *was_released_result, ani_ref *ref_result)
7585     {
7586         return c_api->WeakReference_GetReference(this, wref, was_released_result, ref_result);
7587     }
CreateArrayBuffer__ani_env7588     ani_status CreateArrayBuffer(size_t length, void **data_result, ani_arraybuffer *arraybuffer_result)
7589     {
7590         return c_api->CreateArrayBuffer(this, length, data_result, arraybuffer_result);
7591     }
CreateArrayBufferExternal__ani_env7592     ani_status CreateArrayBufferExternal(void *external_data, size_t length, ani_finalizer finalizer, void *hint,
7593                                          ani_arraybuffer *result)
7594     {
7595         return c_api->CreateArrayBufferExternal(this, external_data, length, finalizer, hint, result);
7596     }
ArrayBuffer_GetInfo__ani_env7597     ani_status ArrayBuffer_GetInfo(ani_arraybuffer arraybuffer, void **data_result, size_t *length_result)
7598     {
7599         return c_api->ArrayBuffer_GetInfo(this, arraybuffer, data_result, length_result);
7600     }
Promise_New__ani_env7601     ani_status Promise_New(ani_resolver *result_resolver, ani_object *result_promise)
7602     {
7603         return c_api->Promise_New(this, result_resolver, result_promise);
7604     }
PromiseResolver_Resolve__ani_env7605     ani_status PromiseResolver_Resolve(ani_resolver resolver, ani_ref resolution)
7606     {
7607         return c_api->PromiseResolver_Resolve(this, resolver, resolution);
7608     }
PromiseResolver_Reject__ani_env7609     ani_status PromiseResolver_Reject(ani_resolver resolver, ani_error rejection)
7610     {
7611         return c_api->PromiseResolver_Reject(this, resolver, rejection);
7612     }
FixedArray_New_Boolean__ani_env7613     ani_status FixedArray_New_Boolean(ani_size length, ani_array_boolean *result)
7614     {
7615         return c_api->FixedArray_New_Boolean(this, length, result);
7616     }
FixedArray_New_Char__ani_env7617     ani_status FixedArray_New_Char(ani_size length, ani_array_char *result)
7618     {
7619         return c_api->FixedArray_New_Char(this, length, result);
7620     }
FixedArray_New_Byte__ani_env7621     ani_status FixedArray_New_Byte(ani_size length, ani_array_byte *result)
7622     {
7623         return c_api->FixedArray_New_Byte(this, length, result);
7624     }
FixedArray_New_Short__ani_env7625     ani_status FixedArray_New_Short(ani_size length, ani_array_short *result)
7626     {
7627         return c_api->FixedArray_New_Short(this, length, result);
7628     }
FixedArray_New_Int__ani_env7629     ani_status FixedArray_New_Int(ani_size length, ani_array_int *result)
7630     {
7631         return c_api->FixedArray_New_Int(this, length, result);
7632     }
FixedArray_New_Long__ani_env7633     ani_status FixedArray_New_Long(ani_size length, ani_array_long *result)
7634     {
7635         return c_api->FixedArray_New_Long(this, length, result);
7636     }
FixedArray_New_Float__ani_env7637     ani_status FixedArray_New_Float(ani_size length, ani_array_float *result)
7638     {
7639         return c_api->FixedArray_New_Float(this, length, result);
7640     }
FixedArray_New_Double__ani_env7641     ani_status FixedArray_New_Double(ani_size length, ani_array_double *result)
7642     {
7643         return c_api->FixedArray_New_Double(this, length, result);
7644     }
FixedArray_New_Ref__ani_env7645     ani_status FixedArray_New_Ref(ani_type type, ani_size length, ani_ref initial_element, ani_array_ref *result)
7646     {
7647         return c_api->FixedArray_New_Ref(this, type, length, initial_element, result);
7648     }
7649 #endif  // __cplusplus
7650 };
7651 
7652 // NOLINTEND
7653 #endif  // __ANI_H__
7654