X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-c-bindings;a=blobdiff_plain;f=c-bindings-gen%2Fsrc%2Fmain.rs;h=97f44a4c4c458e22ce017c0b8c53d8524077cea2;hp=c6a74f66bcc5bbce40fc6cc05679e19aefb66d63;hb=76eed6fb43c1d675195aff896efb325828c76498;hpb=434d90f7096839045662fa051722497fa0f555c8 diff --git a/c-bindings-gen/src/main.rs b/c-bindings-gen/src/main.rs index c6a74f6..97f44a4 100644 --- a/c-bindings-gen/src/main.rs +++ b/c-bindings-gen/src/main.rs @@ -1647,10 +1647,20 @@ fn writeln_fn<'a, 'b, W: std::io::Write>(w: &mut W, f: &'a syn::ItemFn, types: & writeln_fn_docs(w, &f.attrs, "", types, Some(&gen_types), f.sig.inputs.iter(), &f.sig.output); write!(w, "#[no_mangle]\npub extern \"C\" fn {}(", f.sig.ident).unwrap(); + + write_method_params(w, &f.sig, "", types, Some(&gen_types), false, true); write!(w, " {{\n\t").unwrap(); write_method_var_decl_body(w, &f.sig, "", types, Some(&gen_types), false); - write!(w, "{}::{}(", types.module_path, f.sig.ident).unwrap(); + write!(w, "{}::{}", types.module_path, f.sig.ident).unwrap(); + + let mut function_generic_args = Vec::new(); + maybe_write_generics(&mut function_generic_args, &f.sig.generics, types, true); + if !function_generic_args.is_empty() { + write!(w, "::{}", String::from_utf8(function_generic_args).unwrap()).unwrap(); + } + write!(w, "(").unwrap(); + write_method_call_params(w, &f.sig, "", types, Some(&gen_types), "", false); writeln!(w, "\n}}\n").unwrap(); }