+#[no_mangle]
+pub(crate) extern "C" fn ChannelMessageHandler_clone_fields(orig: &ChannelMessageHandler) -> ChannelMessageHandler {
+ ChannelMessageHandler {
+ this_arg: orig.this_arg,
+ handle_open_channel: Clone::clone(&orig.handle_open_channel),
+ handle_accept_channel: Clone::clone(&orig.handle_accept_channel),
+ handle_funding_created: Clone::clone(&orig.handle_funding_created),
+ handle_funding_signed: Clone::clone(&orig.handle_funding_signed),
+ handle_funding_locked: Clone::clone(&orig.handle_funding_locked),
+ handle_shutdown: Clone::clone(&orig.handle_shutdown),
+ handle_closing_signed: Clone::clone(&orig.handle_closing_signed),
+ handle_update_add_htlc: Clone::clone(&orig.handle_update_add_htlc),
+ handle_update_fulfill_htlc: Clone::clone(&orig.handle_update_fulfill_htlc),
+ handle_update_fail_htlc: Clone::clone(&orig.handle_update_fail_htlc),
+ handle_update_fail_malformed_htlc: Clone::clone(&orig.handle_update_fail_malformed_htlc),
+ handle_commitment_signed: Clone::clone(&orig.handle_commitment_signed),
+ handle_revoke_and_ack: Clone::clone(&orig.handle_revoke_and_ack),
+ handle_update_fee: Clone::clone(&orig.handle_update_fee),
+ handle_announcement_signatures: Clone::clone(&orig.handle_announcement_signatures),
+ peer_disconnected: Clone::clone(&orig.peer_disconnected),
+ peer_connected: Clone::clone(&orig.peer_connected),
+ handle_channel_reestablish: Clone::clone(&orig.handle_channel_reestablish),
+ handle_channel_update: Clone::clone(&orig.handle_channel_update),
+ handle_error: Clone::clone(&orig.handle_error),
+ MessageSendEventsProvider: crate::lightning::util::events::MessageSendEventsProvider_clone_fields(&orig.MessageSendEventsProvider),
+ free: Clone::clone(&orig.free),
+ }
+}