X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=gen_type_mapping.py;h=9aeee61544a2ae479b91380b2e4119c97411d90f;hb=d2b1ddd1a3bc8f3d91cb931b4e08b35c946a4af8;hp=9cee9ab454773332293ae6711bf8b5b6e5e2159f;hpb=8f8b6aaddcb1dad3d708327c78850cdb30f2a64b;p=ldk-java diff --git a/gen_type_mapping.py b/gen_type_mapping.py index 9cee9ab4..9aeee615 100644 --- a/gen_type_mapping.py +++ b/gen_type_mapping.py @@ -260,11 +260,19 @@ class TypeMappingGenerator: return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name, arg_conv = None, arg_conv_name = "arg", arg_conv_cleanup = None, ret_conv = None, ret_conv_name = None, to_hu_conv = "TODO 8", to_hu_conv_name = None, from_hu_conv = None) - elif ty_info.is_native_primitive: + elif ty_info.is_native_primitive and ty_info.c_ty != "void": assert not is_nullable return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name, - arg_conv = None, arg_conv_name = ty_info.var_name, arg_conv_cleanup = None, - ret_conv = None, ret_conv_name = None, to_hu_conv = None, to_hu_conv_name = None, from_hu_conv = None) + arg_conv = None, arg_conv_name = ty_info.var_name, arg_conv_cleanup = None, + ret_conv = (ty_info.c_ty + " " + ty_info.var_name + "_conv = ", ";"), ret_conv_name = ty_info.var_name + "_conv", + to_hu_conv = None, to_hu_conv_name = None, from_hu_conv = None) + elif ty_info.c_ty == "void": + assert ty_info.is_native_primitive + assert not is_nullable + return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name, + arg_conv = None, arg_conv_name = ty_info.var_name, arg_conv_cleanup = None, + ret_conv = None, ret_conv_name = ty_info.var_name, + to_hu_conv = None, to_hu_conv_name = None, from_hu_conv = None) else: if ty_info.var_name == "": ty_info.var_name = "ret" @@ -486,7 +494,15 @@ class TypeMappingGenerator: to_hu_conv = self.consts.var_decl_statement(ty_info.java_hu_ty, ty_info.var_name + "_hu_conv", "new " + ty_info.java_hu_ty + "(null, " + ty_info.var_name + ")") + ";" + to_hu_conv_sfx, to_hu_conv_name = ty_info.var_name + "_hu_conv", from_hu_conv = from_hu_conv) - # The manually-defined types - TxOut and u5 + # The manually-defined types - TxOut, u5, and Error + if ty_info.rust_obj == "LDKError": + assert from_hu_conv is None + return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name, + arg_conv = "", arg_conv_name = "(LDKError){ ._dummy = 0 }", arg_conv_cleanup = None, + ret_conv = ("/*", "*/"), ret_conv_name = "0", + to_hu_conv = self.consts.var_decl_statement(ty_info.java_hu_ty, ty_info.var_name + "_conv", "new " + ty_info.java_hu_ty + "(" + ty_info.var_name + ")") + ";", + to_hu_conv_name = ty_info.var_name + "_conv", from_hu_conv = ("0", "")) + if ty_info.rust_obj == "LDKu5": assert from_hu_conv is None return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name,