X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=c-bindings-gen%2Fsrc%2Fmain.rs;fp=c-bindings-gen%2Fsrc%2Fmain.rs;h=8bbbdf03765579e5636c49aa3dfd9e937cee8768;hb=4e514def04a4aabea8261173311e6c747d4bd133;hp=7f95ef831446bcb2193a2942d91bf2a3d66cd49e;hpb=6658ad877ed253301df2c729b1c6a2a859515777;p=ldk-c-bindings diff --git a/c-bindings-gen/src/main.rs b/c-bindings-gen/src/main.rs index 7f95ef8..8bbbdf0 100644 --- a/c-bindings-gen/src/main.rs +++ b/c-bindings-gen/src/main.rs @@ -450,11 +450,11 @@ fn writeln_trait<'a, 'b, W: std::io::Write>(w: &mut W, t: &'a syn::ItemTrait, ty } } + writeln!(w, "unsafe impl Send for {} {{}}", trait_name).unwrap(); + writeln!(w, "unsafe impl Sync for {} {{}}", trait_name).unwrap(); // Implement supertraits for the C-mapped struct. walk_supertraits!(t, Some(&types), ( - ("Send", _) => writeln!(w, "unsafe impl Send for {} {{}}", trait_name).unwrap(), - ("Sync", _) => writeln!(w, "unsafe impl Sync for {} {{}}", trait_name).unwrap(), ("std::cmp::Eq", _)|("core::cmp::Eq", _) => { writeln!(w, "impl std::cmp::Eq for {} {{}}", trait_name).unwrap(); writeln!(w, "impl std::cmp::PartialEq for {} {{", trait_name).unwrap(); @@ -464,6 +464,7 @@ fn writeln_trait<'a, 'b, W: std::io::Write>(w: &mut W, t: &'a syn::ItemTrait, ty writeln!(w, "impl std::hash::Hash for {} {{", trait_name).unwrap(); writeln!(w, "\tfn hash(&self, hasher: &mut H) {{ hasher.write_u64((self.hash)(self.this_arg)) }}\n}}").unwrap(); }, + ("Send", _) => {}, ("Sync", _) => {}, ("Clone", _) => { writeln!(w, "#[no_mangle]").unwrap(); writeln!(w, "/// Creates a copy of a {}", trait_name).unwrap(); @@ -495,11 +496,6 @@ fn writeln_trait<'a, 'b, W: std::io::Write>(w: &mut W, t: &'a syn::ItemTrait, ty writeln!(w, "impl {} for {} {{", s, trait_name).unwrap(); impl_trait_for_c!(supertrait, format!(".{}", i), &resolver); writeln!(w, "}}").unwrap(); - walk_supertraits!(supertrait, Some(&types), ( - ("Send", _) => writeln!(w, "unsafe impl Send for {} {{}}", trait_name).unwrap(), - ("Sync", _) => writeln!(w, "unsafe impl Sync for {} {{}}", trait_name).unwrap(), - _ => unimplemented!() - ) ); } else { do_write_impl_trait(w, s, i, &trait_name); }