+#[no_mangle]
+pub(crate) extern "C" fn BaseSign_clone_fields(orig: &BaseSign) -> BaseSign {
+ BaseSign {
+ this_arg: orig.this_arg,
+ get_per_commitment_point: Clone::clone(&orig.get_per_commitment_point),
+ release_commitment_secret: Clone::clone(&orig.release_commitment_secret),
+ validate_holder_commitment: Clone::clone(&orig.validate_holder_commitment),
+ pubkeys: Clone::clone(&orig.pubkeys),
+ set_pubkeys: Clone::clone(&orig.set_pubkeys),
+ channel_keys_id: Clone::clone(&orig.channel_keys_id),
+ sign_counterparty_commitment: Clone::clone(&orig.sign_counterparty_commitment),
+ validate_counterparty_revocation: Clone::clone(&orig.validate_counterparty_revocation),
+ sign_holder_commitment_and_htlcs: Clone::clone(&orig.sign_holder_commitment_and_htlcs),
+ sign_justice_revoked_output: Clone::clone(&orig.sign_justice_revoked_output),
+ sign_justice_revoked_htlc: Clone::clone(&orig.sign_justice_revoked_htlc),
+ sign_counterparty_htlc_transaction: Clone::clone(&orig.sign_counterparty_htlc_transaction),
+ sign_closing_transaction: Clone::clone(&orig.sign_closing_transaction),
+ sign_channel_announcement: Clone::clone(&orig.sign_channel_announcement),
+ ready_channel: Clone::clone(&orig.ready_channel),
+ free: Clone::clone(&orig.free),
+ }
+}