From: Matt Corallo Date: Thu, 28 Sep 2023 00:32:55 +0000 (+0000) Subject: Accept `DerefMut` bounds on generics as if they were `Deref` X-Git-Tag: v0.0.117.0^2~13 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=1afc4ccc5073ab6dd99def164c9891a733c11688;p=ldk-c-bindings Accept `DerefMut` bounds on generics as if they were `Deref` --- diff --git a/c-bindings-gen/src/types.rs b/c-bindings-gen/src/types.rs index 99b333c..4328e9c 100644 --- a/c-bindings-gen/src/types.rs +++ b/c-bindings-gen/src/types.rs @@ -225,7 +225,8 @@ impl<'a, 'p: 'a> GenericTypes<'a, 'p> { if path == "Sized" { continue; } if non_lifetimes_processed { return false; } non_lifetimes_processed = true; - if path != "std::ops::Deref" && path != "core::ops::Deref" { + if path != "std::ops::Deref" && path != "core::ops::Deref" && + path != "std::ops::DerefMut" && path != "core::ops::DerefMut" { let p = string_path_to_syn_path(&path); let ref_ty = parse_quote!(&#p); let mut_ref_ty = parse_quote!(&mut #p); @@ -347,7 +348,8 @@ impl<'a, 'p: 'a> GenericTypes<'a, 'p> { // implement Deref for relevant types). We don't // bother to implement it for associated types, however, so we just // ignore such bounds. - if path != "std::ops::Deref" && path != "core::ops::Deref" { + if path != "std::ops::Deref" && path != "core::ops::Deref" && + path != "std::ops::DerefMut" && path != "core::ops::DerefMut" { self.typed_generics.insert(&t.ident, path); } } else { unimplemented!(); }