X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=genbindings.py;h=1d01ac6cff1f16a16fc48073f9defd98705acf0a;hb=490adeaa3273fe53040c11f415782977895d0be7;hp=a2c66863677fe9d7fe758553c1d9a595561af8f8;hpb=d294ad273a3d99aa2857efb10b225a2e20c84a16;p=ldk-java diff --git a/genbindings.py b/genbindings.py index a2c66863..1d01ac6c 100755 --- a/genbindings.py +++ b/genbindings.py @@ -402,6 +402,9 @@ with open(sys.argv[1]) as in_h, open(f"{sys.argv[2]}/bindings{consts.file_ext}", method_comma_separated_arguments = re_match.group(3) method_arguments = method_comma_separated_arguments.split(',') + if method_name.startswith("__"): + return + is_free = method_name.endswith("_free") if method_name.startswith("COption") or method_name.startswith("CResult"): struct_meth = method_name.rsplit("Z", 1)[0][1:] + "Z" @@ -539,7 +542,7 @@ with open(sys.argv[1]) as in_h, open(f"{sys.argv[2]}/bindings{consts.file_ext}", elif idx == len(field_lines) - 1: assert(struct_line == "") assert struct_name.startswith("LDK") - (c_out, native_file_out, native_out) = consts.native_c_unitary_enum_map(struct_name[3:], [x.strip().strip(",") for x, _ in field_lines[1:-3]], enum_doc_comment) + (c_out, native_file_out, native_out) = consts.native_c_unitary_enum_map(struct_name[3:], [(x.strip().strip(","), y) for x, y in field_lines[1:-3]], enum_doc_comment) write_c(c_out) out_java_enum.write(native_file_out) out_java.write(native_out) @@ -550,7 +553,7 @@ with open(sys.argv[1]) as in_h, open(f"{sys.argv[2]}/bindings{consts.file_ext}", enum_variants = [] tag_field_lines = union_enum_items["field_lines"] contains_trait = False - for idx, (struct_line, _) in enumerate(tag_field_lines): + for idx, (struct_line, variant_docs) in enumerate(tag_field_lines): if idx == 0: assert(struct_line == "typedef enum %s_Tag {" % struct_name) elif idx == len(tag_field_lines) - 3: @@ -573,16 +576,16 @@ with open(sys.argv[1]) as in_h, open(f"{sys.argv[2]}/bindings{consts.file_ext}", else: field_conv = type_mapping_generator.map_type_with_info(field_ty, False, None, False, True, False) fields.append((field_conv, field_docs)) - enum_variants.append(ComplexEnumVariantInfo(variant_name, fields, False)) + enum_variants.append(ComplexEnumVariantInfo(variant_name, variant_docs, fields, False)) elif camel_to_snake(variant_name) in inline_enum_variants: # TODO: If we ever have a rust enum Variant(Option) we need to pipe # docs through to there, and then potentially mark the field nullable. mapped = type_mapping_generator.map_type(inline_enum_variants[camel_to_snake(variant_name)] + " " + camel_to_snake(variant_name), False, None, False, True) contains_trait |= mapped.ty_info.contains_trait fields.append((mapped, None)) - enum_variants.append(ComplexEnumVariantInfo(variant_name, fields, True)) + enum_variants.append(ComplexEnumVariantInfo(variant_name, variant_docs, fields, True)) else: - enum_variants.append(ComplexEnumVariantInfo(variant_name, fields, True)) + enum_variants.append(ComplexEnumVariantInfo(variant_name, variant_docs, fields, True)) complex_enums[struct_name] = contains_trait with open(f"{sys.argv[3]}/structs/{java_hu_type}{consts.file_ext}", "w") as out_java_enum: