Drop stale () -> u8 mapping (now) used in Rust-only code
[ldk-c-bindings] / c-bindings-gen / src / types.rs
index a45cf2b16f7abbb55e3b53f898e1bfdfa379bd39..57678669a19ef1b6197ccfaf0f996bee3cd5465b 100644 (file)
@@ -558,7 +558,6 @@ impl<'mod_lifetime, 'crate_lft: 'mod_lifetime> ImportResolver<'mod_lifetime, 'cr
        pub fn resolve_imported_refs(&self, mut ty: syn::Type) -> syn::Type {
                match &mut ty {
                        syn::Type::Path(p) => {
-eprintln!("rir {:?}", p);
                                if p.path.segments.len() != 1 { unimplemented!(); }
                                let mut args = p.path.segments[0].arguments.clone();
                                if let syn::PathArguments::AngleBracketed(ref mut generics) = &mut args {
@@ -782,6 +781,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                match ty {
                        "()" => true,
                        "crate::c_types::Signature" => true,
+                       "crate::c_types::RecoverableSignature" => true,
                        "crate::c_types::TxOut" => true,
                        _ => false,
                }
@@ -820,6 +820,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::secp256k1::key::PublicKey"|"bitcoin::secp256k1::PublicKey"|"secp256k1::key::PublicKey"
                                => Some("crate::c_types::PublicKey"),
                        "bitcoin::secp256k1::Signature" => Some("crate::c_types::Signature"),
+                       "bitcoin::secp256k1::recovery::RecoverableSignature" => Some("crate::c_types::RecoverableSignature"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
                                if is_ref  => Some("*const [u8; 32]"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
@@ -841,12 +842,12 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::hash_types::Txid"|"bitcoin::hash_types::BlockHash"|"bitcoin_hashes::sha256::Hash"
                                if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
                        "bitcoin::secp256k1::Message" if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
-                       "lightning::ln::channelmanager::PaymentHash" if is_ref => Some("*const [u8; 32]"),
-                       "lightning::ln::channelmanager::PaymentHash" if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
-                       "lightning::ln::channelmanager::PaymentPreimage" if is_ref => Some("*const [u8; 32]"),
-                       "lightning::ln::channelmanager::PaymentPreimage" if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
-                       "lightning::ln::channelmanager::PaymentSecret" if is_ref => Some("crate::c_types::ThirtyTwoBytes"),
-                       "lightning::ln::channelmanager::PaymentSecret" if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
+                       "lightning::ln::PaymentHash" if is_ref => Some("*const [u8; 32]"),
+                       "lightning::ln::PaymentHash" if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
+                       "lightning::ln::PaymentPreimage" if is_ref => Some("*const [u8; 32]"),
+                       "lightning::ln::PaymentPreimage" if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
+                       "lightning::ln::PaymentSecret" if is_ref => Some("crate::c_types::ThirtyTwoBytes"),
+                       "lightning::ln::PaymentSecret" if !is_ref => Some("crate::c_types::ThirtyTwoBytes"),
 
                        // Override the default since Records contain an fmt with a lifetime:
                        "lightning::util::logger::Record" => Some("*const std::os::raw::c_char"),
@@ -895,6 +896,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                                => Some(""),
                        "bitcoin::secp256k1::Signature" if is_ref => Some("&"),
                        "bitcoin::secp256k1::Signature" => Some(""),
+                       "bitcoin::secp256k1::recovery::RecoverableSignature" => Some(""),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
                                if is_ref => Some("&::bitcoin::secp256k1::key::SecretKey::from_slice(&unsafe { *"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
@@ -912,11 +914,11 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::hash_types::Txid" if is_ref => Some("&::bitcoin::hash_types::Txid::from_slice(&unsafe { &*"),
                        "bitcoin::hash_types::Txid" if !is_ref => Some("::bitcoin::hash_types::Txid::from_slice(&"),
                        "bitcoin::hash_types::BlockHash" => Some("::bitcoin::hash_types::BlockHash::from_slice(&"),
-                       "lightning::ln::channelmanager::PaymentHash" if !is_ref => Some("::lightning::ln::channelmanager::PaymentHash("),
-                       "lightning::ln::channelmanager::PaymentHash" if is_ref => Some("&::lightning::ln::channelmanager::PaymentHash(unsafe { *"),
-                       "lightning::ln::channelmanager::PaymentPreimage" if !is_ref => Some("::lightning::ln::channelmanager::PaymentPreimage("),
-                       "lightning::ln::channelmanager::PaymentPreimage" if is_ref => Some("&::lightning::ln::channelmanager::PaymentPreimage(unsafe { *"),
-                       "lightning::ln::channelmanager::PaymentSecret" => Some("::lightning::ln::channelmanager::PaymentSecret("),
+                       "lightning::ln::PaymentHash" if !is_ref => Some("::lightning::ln::PaymentHash("),
+                       "lightning::ln::PaymentHash" if is_ref => Some("&::lightning::ln::PaymentHash(unsafe { *"),
+                       "lightning::ln::PaymentPreimage" if !is_ref => Some("::lightning::ln::PaymentPreimage("),
+                       "lightning::ln::PaymentPreimage" if is_ref => Some("&::lightning::ln::PaymentPreimage(unsafe { *"),
+                       "lightning::ln::PaymentSecret" => Some("::lightning::ln::PaymentSecret("),
 
                        // List of traits we map (possibly during processing of other files):
                        "crate::util::logger::Logger" => Some(""),
@@ -955,6 +957,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::secp256k1::key::PublicKey"|"bitcoin::secp256k1::PublicKey"|"secp256k1::key::PublicKey"
                                => Some(".into_rust()"),
                        "bitcoin::secp256k1::Signature" => Some(".into_rust()"),
+                       "bitcoin::secp256k1::recovery::RecoverableSignature" => Some(".into_rust()"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
                                if !is_ref => Some(".into_rust()"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
@@ -971,11 +974,11 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::hash_types::Txid" if is_ref => Some(" }[..]).unwrap()"),
                        "bitcoin::hash_types::Txid" => Some(".data[..]).unwrap()"),
                        "bitcoin::hash_types::BlockHash" if !is_ref => Some(".data[..]).unwrap()"),
-                       "lightning::ln::channelmanager::PaymentHash" if !is_ref => Some(".data)"),
-                       "lightning::ln::channelmanager::PaymentHash" if is_ref => Some(" })"),
-                       "lightning::ln::channelmanager::PaymentPreimage" if !is_ref => Some(".data)"),
-                       "lightning::ln::channelmanager::PaymentPreimage" if is_ref => Some(" })"),
-                       "lightning::ln::channelmanager::PaymentSecret" => Some(".data)"),
+                       "lightning::ln::PaymentHash" if !is_ref => Some(".data)"),
+                       "lightning::ln::PaymentHash" if is_ref => Some(" })"),
+                       "lightning::ln::PaymentPreimage" if !is_ref => Some(".data)"),
+                       "lightning::ln::PaymentPreimage" if is_ref => Some(" })"),
+                       "lightning::ln::PaymentSecret" => Some(".data)"),
 
                        // List of traits we map (possibly during processing of other files):
                        "crate::util::logger::Logger" => Some(""),
@@ -1034,6 +1037,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::secp256k1::key::PublicKey"|"bitcoin::secp256k1::PublicKey"|"secp256k1::key::PublicKey"
                                => Some("crate::c_types::PublicKey::from_rust(&"),
                        "bitcoin::secp256k1::Signature" => Some("crate::c_types::Signature::from_rust(&"),
+                       "bitcoin::secp256k1::recovery::RecoverableSignature" => Some("crate::c_types::RecoverableSignature::from_rust(&"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
                                if is_ref => Some(""),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
@@ -1058,11 +1062,11 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::hash_types::Txid"|"bitcoin::hash_types::BlockHash"|"bitcoin_hashes::sha256::Hash"
                                if !is_ref => Some("crate::c_types::ThirtyTwoBytes { data: "),
                        "bitcoin::secp256k1::Message" if !is_ref => Some("crate::c_types::ThirtyTwoBytes { data: "),
-                       "lightning::ln::channelmanager::PaymentHash" if is_ref => Some("&"),
-                       "lightning::ln::channelmanager::PaymentHash" if !is_ref => Some("crate::c_types::ThirtyTwoBytes { data: "),
-                       "lightning::ln::channelmanager::PaymentPreimage" if is_ref => Some("&"),
-                       "lightning::ln::channelmanager::PaymentPreimage" => Some("crate::c_types::ThirtyTwoBytes { data: "),
-                       "lightning::ln::channelmanager::PaymentSecret" if !is_ref => Some("crate::c_types::ThirtyTwoBytes { data: "),
+                       "lightning::ln::PaymentHash" if is_ref => Some("&"),
+                       "lightning::ln::PaymentHash" if !is_ref => Some("crate::c_types::ThirtyTwoBytes { data: "),
+                       "lightning::ln::PaymentPreimage" if is_ref => Some("&"),
+                       "lightning::ln::PaymentPreimage" => Some("crate::c_types::ThirtyTwoBytes { data: "),
+                       "lightning::ln::PaymentSecret" if !is_ref => Some("crate::c_types::ThirtyTwoBytes { data: "),
 
                        // Override the default since Records contain an fmt with a lifetime:
                        "lightning::util::logger::Record" => Some("local_"),
@@ -1103,6 +1107,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::secp256k1::key::PublicKey"|"bitcoin::secp256k1::PublicKey"|"secp256k1::key::PublicKey"
                                => Some(")"),
                        "bitcoin::secp256k1::Signature" => Some(")"),
+                       "bitcoin::secp256k1::recovery::RecoverableSignature" => Some(")"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
                                if !is_ref => Some(")"),
                        "bitcoin::secp256k1::key::SecretKey"|"bitcoin::secp256k1::SecretKey"
@@ -1126,11 +1131,11 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
                        "bitcoin::hash_types::Txid"|"bitcoin::hash_types::BlockHash"|"bitcoin_hashes::sha256::Hash"
                                if !is_ref => Some(".into_inner() }"),
                        "bitcoin::secp256k1::Message" if !is_ref => Some(".as_ref().clone() }"),
-                       "lightning::ln::channelmanager::PaymentHash" if is_ref => Some(".0"),
-                       "lightning::ln::channelmanager::PaymentHash" => Some(".0 }"),
-                       "lightning::ln::channelmanager::PaymentPreimage" if is_ref => Some(".0"),
-                       "lightning::ln::channelmanager::PaymentPreimage" => Some(".0 }"),
-                       "lightning::ln::channelmanager::PaymentSecret" if !is_ref => Some(".0 }"),
+                       "lightning::ln::PaymentHash" if is_ref => Some(".0"),
+                       "lightning::ln::PaymentHash" => Some(".0 }"),
+                       "lightning::ln::PaymentPreimage" if is_ref => Some(".0"),
+                       "lightning::ln::PaymentPreimage" => Some(".0 }"),
+                       "lightning::ln::PaymentSecret" if !is_ref => Some(".0 }"),
 
                        // Override the default since Records contain an fmt with a lifetime:
                        "lightning::util::logger::Record" => Some(".as_ptr()"),
@@ -1141,7 +1146,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
 
        fn empty_val_check_suffix_from_path(&self, full_path: &str) -> Option<&str> {
                match full_path {
-                       "lightning::ln::channelmanager::PaymentSecret" => Some(".data == [0; 32]"),
+                       "lightning::ln::PaymentSecret" => Some(".data == [0; 32]"),
                        "secp256k1::key::PublicKey"|"bitcoin::secp256k1::key::PublicKey" => Some(".is_null()"),
                        "bitcoin::secp256k1::Signature" => Some(".is_null()"),
                        _ => None
@@ -1737,7 +1742,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
        }
 
        fn write_to_c_conversion_inline_prefix_inner<W: std::io::Write>(&self, w: &mut W, t: &syn::Type, generics: Option<&GenericTypes>, is_ref: bool, ptr_for_ref: bool, from_ptr: bool) {
-               self.write_conversion_inline_intern(w, t, generics, is_ref, false, ptr_for_ref, "0u8 /*", true, |_, _| "local_".to_owned(),
+               self.write_conversion_inline_intern(w, t, generics, is_ref, false, ptr_for_ref, "() /*", true, |_, _| "local_".to_owned(),
                                |a, b, c| self.to_c_conversion_inline_prefix_from_path(a, b, c),
                                |w, decl_type, decl_path, is_ref, _is_mut| {
                                        match decl_type {