is_primitive = False
arr_len = None
+ mapped_type = []
+ java_type_plural = None
if fn_arg.startswith("void"):
java_ty = "void"
c_ty = "void"
fn_arg = fn_arg[4:].strip()
is_primitive = True
elif fn_arg.startswith("uint8_t"):
- java_ty = "byte"
+ mapped_type = consts.c_type_map['byte']
+ java_ty = mapped_type[0]
c_ty = "int8_t"
fn_ty_arg = "B"
fn_arg = fn_arg[7:].strip()
if var_is_arr is not None or ret_arr_len is not None:
assert(not take_by_ptr)
assert(not is_ptr)
- java_ty = java_ty + "[]"
+ # is there a special case for plurals?
+ if len(mapped_type) == 2:
+ java_ty = mapped_type[1]
+ else:
+ java_ty = java_ty + "[]"
c_ty = c_ty + "Array"
if var_is_arr is not None:
if var_is_arr.group(1) == "":
class Consts:
def __init__(self, DEBUG):
+
+ self.c_type_map = dict(
+ byte = ['byte'],
+ )
+
self.common_base = """package org.ldk.structs;
import java.util.LinkedList;
class CommonBase {
class Consts:
def __init__(self, DEBUG):
+
+ self.c_type_map = dict(
+ byte = ['number', 'Uint8Array'],
+ )
+
self.common_base = """
export default class CommonBase {
ptr: number;
super_instantiator += ", " + first_to_lower(var[1])
pointer_to_adder += "this.ptrs_to.push(" + first_to_lower(var[1]) + ");\n"
+ # BUILD INTERFACE METHODS
+ out_java_interface = ""
+ for fn_line in field_function_lines:
+ if fn_line.fn_name != "free" and fn_line.fn_name != "clone":
+ out_java_interface += fn_line.fn_name + "("
+
+ for idx, arg_conv_info in enumerate(fn_line.args_ty):
+ if idx >= 1:
+ out_java_interface += ", "
+ out_java_interface += f"{arg_conv_info.arg_name}: {arg_conv_info.java_hu_ty}"
+ out_java_interface += f"): {fn_line.ret_ty_info.java_hu_ty};\n\t\t\t\t"
+
out_java_trait = f"""
{self.hu_struct_file_prefix}
}}
}}
+
+ export interface {struct_name.replace("LDK", "")}Interface {{
+ {out_java_interface}
+ }}
"""
out_java_trait = out_java_trait + "\t}\n"
out_java_trait = out_java_trait + java_trait_constr + ");\n\t\treturn impl_holder.held;\n\t}\n"
+ print(java_trait_constr)
+
out_java = out_java + "\t}\n"
out_java = out_java + "\tpublic static native long " + struct_name + "_new(" + struct_name + " impl"