+class TypeInfo:
+ def __init__(self, rust_obj, java_ty, java_fn_ty_arg, c_ty, passed_as_ptr, is_ptr, var_name, arr_len):
+ self.rust_obj = rust_obj
+ self.java_ty = java_ty
+ self.java_fn_ty_arg = java_fn_ty_arg
+ self.c_ty = c_ty
+ self.passed_as_ptr = passed_as_ptr
+ self.is_ptr = is_ptr
+ self.var_name = var_name
+ self.arr_len = arr_len
+
+class ConvInfo:
+ def __init__(self, ty_info, arg_name, arg_conv, arg_conv_name, ret_conv, ret_conv_name):
+ assert(ty_info.c_ty is not None)
+ assert(ty_info.java_ty is not None)
+ assert(arg_name is not None)
+ self.c_ty = ty_info.c_ty
+ self.java_ty = ty_info.java_ty
+ self.java_fn_ty_arg = ty_info.java_fn_ty_arg
+ self.arg_name = arg_name
+ self.arg_conv = arg_conv
+ self.arg_conv_name = arg_conv_name
+ self.ret_conv = ret_conv
+ self.ret_conv_name = ret_conv_name
+
+ def print_ty(self):
+ out_c.write(self.c_ty)
+ out_java.write(self.java_ty)
+
+ def print_name(self):
+ if self.arg_name != "":
+ out_java.write(" " + self.arg_name)
+ out_c.write(" " + self.arg_name)
+ else:
+ out_java.write(" arg")
+ out_c.write(" arg")
+