assert var_is_arr_regex.match(fn_arg[8:])
rust_obj = "LDKSignature"
arr_access = "compact_form"
+ elif fn_arg.startswith("LDKRecoverableSignature"):
+ fn_arg = "uint8_t (*" + fn_arg[25:] + ")[68]"
+ assert var_is_arr_regex.match(fn_arg[8:])
+ rust_obj = "LDKRecoverableSignature"
+ arr_access = "serialized_form"
elif fn_arg.startswith("LDKThreeBytes"):
fn_arg = "uint8_t (*" + fn_arg[14:] + ")[3]"
assert var_is_arr_regex.match(fn_arg[8:])
assert var_is_arr_regex.match(fn_arg[8:])
rust_obj = "LDKSixteenBytes"
arr_access = "data"
+ elif fn_arg.startswith("LDKTwentyBytes"):
+ fn_arg = "uint8_t (*" + fn_arg[15:] + ")[20]"
+ assert var_is_arr_regex.match(fn_arg[8:])
+ rust_obj = "LDKTwentyBytes"
+ arr_access = "data"
elif fn_arg.startswith("LDKTenBytes"):
fn_arg = "uint8_t (*" + fn_arg[12:] + ")[10]"
assert var_is_arr_regex.match(fn_arg[8:])
fn_ty_arg = "B"
fn_arg = fn_arg[7:].strip()
is_primitive = True
+ elif fn_arg.startswith("LDKu5"):
+ java_ty = consts.c_type_map['uint8_t'][0]
+ java_hu_ty = "UInt5"
+ rust_obj = "LDKu5"
+ c_ty = "int8_t"
+ fn_ty_arg = "B"
+ fn_arg = fn_arg[6:].strip()
elif fn_arg.startswith("uint16_t"):
mapped_type = consts.c_type_map['uint16_t']
java_ty = mapped_type[0]
or expected_struct in complex_enums or expected_cstruct in complex_enums
or expected_cstruct in result_types) and not is_free:
out_java_struct = open(f"{sys.argv[3]}/structs/{struct_meth}{consts.file_ext}", "a")
- elif method_name.startswith("C2Tuple_") and method_name.endswith("_read"):
- struct_meth = method_name.rsplit("_", 1)[0]
+ elif (method_name.startswith("C2Tuple_") and method_name.endswith("_read")) or \
+ (return_type_info.rust_obj is not None and "Result" in return_type_info.rust_obj and "from" in method_name):
out_java_struct = open(f"{sys.argv[3]}/structs/UtilMethods{consts.file_ext}", "a")
if out_java_struct is not None:
out_java_struct.write(out_java_struct_delta)