Struct qmetaobject::connections::Signal
source · pub struct Signal<Args> { /* private fields */ }
Expand description
High-level typed wrapper for a pointer to a C++/Qt signal.
While low-level SignalInner
operated on pointers to ‘erased’
member functions types, this struct adds type-safe behavior on top of that.
Args
is a type that matches the argument of the signal.
For example, a C++ signal with signature void (MyType::*)(int, QString)
will be represented
by the Signal<fn(int, QString)>
type.
Implementations§
source§impl<Args> Signal<Args>
impl<Args> Signal<Args>
sourcepub unsafe fn new(inner: SignalInner) -> Self
pub unsafe fn new(inner: SignalInner) -> Self
Wraps low-level type-erased signal representation in a high-level types wrapper.
Safety
Caller must ensure that number, types and order of arguments strictly
matches between signal represented by inner
and Args
. Passing
incorrect information may result in Undefined Behavior.
Example
use cpp::cpp;
use qmetaobject::*;
fn object_name_changed() -> Signal<fn(QString)> {
unsafe {
Signal::new(cpp!([] -> SignalInner as "SignalInner" {
return &QObject::objectNameChanged;
}))
}
}
Trait Implementations§
Auto Trait Implementations§
impl<Args> RefUnwindSafe for Signal<Args>where
Args: RefUnwindSafe,
impl<Args> Send for Signal<Args>where
Args: Send,
impl<Args> Sync for Signal<Args>where
Args: Sync,
impl<Args> Unpin for Signal<Args>where
Args: Unpin,
impl<Args> UnwindSafe for Signal<Args>where
Args: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more