macro_rules! mconnect {
($sender:ident, $signal:ident, $slot:tt) => {
fn internal_safe_connect<T: QObject + Sized, Args, F: Slot<Args> + FnMut() -> ()>(
sender: &RefCell<T>,
signal: &Signal<fn()>,
slot: F,
) -> ConnectionHandle {
let sender = unsafe { QObjectPinned::new(&sender).get_or_create_cpp_object() };
unsafe {
connect(sender, *signal, slot)
}
}
let signal = $sender.borrow().$signal.to_cpp_representation(&*$sender.borrow());
#[allow(unused_parens)]
internal_safe_connect(&$sender, &signal, $slot);
};
}