[−][src]Struct qt_core::QBox
An owning pointer for QObject
-based objects.
QBox
will delete its object on drop if it has no parent. If the object has a parent,
it's assumed that the parent is responsible for deleting the object, as per Qt ownership system.
Additionally, QBox
will be automatically set to null when the object is deleted, similar
to QPtr
(or QPointer<T>
in C++). QBox
will not attempt to delete null pointers.
Note that dereferencing a null QBox
will panic, so if it's known that the object may
already have been deleted, you should use is_null()
, as_ref()
,
or a similar method to check
if the object is still alive before calling its methods.
Unlike CppBox
(which is non-nullable), QBox
is permitted to contain a null pointer because
even if a non-null pointer is provided when constructing QBox
, it will become null
automatically if the object is deleted.
To prevent the object from being deleted, convert QBox
to another type of pointer using
into_q_ptr()
or into_ptr()
. Alternatively, setting a parent for the object will prevent
QBox
from deleting it.
To make sure the object is deleted regardless of its parent, convert QBox
to CppBox
using
into_box()
.
Safety
QBox
has the same safety issues as QPtr
. See QPtr
documentation.
Methods
impl<T: StaticUpcast<QObject> + CppDeletable> QBox<T>
[src]
pub unsafe fn from_q_ptr(target: QPtr<T>) -> Self
[src]
pub unsafe fn new(target: impl CastInto<Ptr<T>>) -> Self
[src]
Creates a QBox
from a Ptr
.
Safety
target
must be either a valid pointer to an object or a null pointer.
See type level documentation.
pub unsafe fn from_raw(target: *const T) -> Self
[src]
Creates a QBox
from a raw pointer.
Safety
target
must be either a valid pointer to an object or a null pointer.
See type level documentation.
pub unsafe fn null() -> Self
[src]
Creates a null pointer.
Note that you can also use NullPtr
to specify a null pointer to a function accepting
impl CastInto<Ptr<_>>
. Unlike Ptr
, NullPtr
is not a generic type, so it will
not cause type inference issues.
Note that accessing the content of a null QBox
through Deref
will result
in a panic.
Safety
Null pointers must not be dereferenced. See type level documentation.
pub unsafe fn is_null(&self) -> bool
[src]
Returns true if the pointer is null.
pub unsafe fn as_ptr(&self) -> Ptr<T>
[src]
pub unsafe fn as_raw_ptr(&self) -> *const T
[src]
pub unsafe fn as_mut_raw_ptr(&self) -> *mut T
[src]
pub unsafe fn as_ref(&self) -> Option<Ref<T>>
[src]
Returns the content as a const Ref
. Returns None
if self
is a null pointer.
Safety
See type level documentation.
pub unsafe fn as_raw_ref<'a>(&self) -> Option<&'a T>
[src]
Returns a reference to the value. Returns None
if the pointer is null.
Safety
self
must be valid.
The content must not be read or modified through other ways while the returned reference
exists.See type level documentation.
pub unsafe fn as_mut_raw_ref<'a>(&self) -> Option<&'a mut T>
[src]
Returns a mutable reference to the value. Returns None
if the pointer is null.
Safety
self
must be valid.
The content must not be read or modified through other ways while the returned reference
exists.See type level documentation.
pub unsafe fn static_upcast<U>(&self) -> QPtr<U> where
T: StaticUpcast<U>,
U: StaticUpcast<QObject>,
[src]
T: StaticUpcast<U>,
U: StaticUpcast<QObject>,
Converts the pointer to the base class type U
.
Safety
This operation is safe as long as self
is valid or null. See type level documentation.
pub unsafe fn static_downcast<U>(&self) -> QPtr<U> where
T: StaticDowncast<U>,
U: StaticUpcast<QObject>,
[src]
T: StaticDowncast<U>,
U: StaticUpcast<QObject>,
Converts the pointer to the derived class type U
.
It's recommended to use dynamic_cast
instead because it performs a checked conversion.
Safety
This operation is safe as long as self
is valid and it's type is U
or inherits from U
,
of if self
is a null pointer. See type level documentation.
pub unsafe fn dynamic_cast<U>(&self) -> QPtr<U> where
T: DynamicCast<U>,
U: StaticUpcast<QObject>,
[src]
T: DynamicCast<U>,
U: StaticUpcast<QObject>,
Converts the pointer to the derived class type U
. Returns None
if the object's type
is not U
and doesn't inherit U
.
Safety
This operation is safe as long as self
is valid or null. See type level documentation.
pub unsafe fn into_box(self) -> Option<CppBox<T>>
[src]
Converts this pointer to a CppBox
. Returns None
if self
is a null pointer.
Unlike QBox
, CppBox
will always delete the object when dropped.
Safety
CppBox
will attempt to delete the object on drop. If something else also tries to
delete this object before or after that, the behavior is undefined.
See type level documentation.
pub unsafe fn into_q_ptr(self) -> QPtr<T>
[src]
Converts this QBox
into a QPtr
.
Unlike QBox
, QPtr
will never delete the object when dropped.
Safety
See type level documentation.
pub unsafe fn into_ptr(self) -> Ptr<T>
[src]
Converts this QBox
into a Ptr
.
Unlike QBox
, Ptr
will never delete the object when dropped.
Safety
See type level documentation.
pub unsafe fn into_raw_ptr(self) -> *mut T
[src]
Converts this QBox
into a raw pointer without deleting the object.
Safety
See type level documentation.
Trait Implementations
impl<'a, T, U> Add<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Add<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Add<U>,
type Output = <&'a T as Add<U>>::Output
The resulting type after applying the +
operator.
fn add(self, rhs: U) -> Self::Output
[src]
impl<'a, T: StaticUpcast<QObject> + CppDeletable> AsReceiver for &'a QBox<T> where
T: AsReceiver,
[src]
T: AsReceiver,
type Arguments = <T as AsReceiver>::Arguments
Argument types expected by this receiver.
fn as_receiver(&self) -> Receiver<Self::Arguments>
[src]
impl<'a, T, U> BitAnd<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: BitAnd<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: BitAnd<U>,
type Output = <&'a T as BitAnd<U>>::Output
The resulting type after applying the &
operator.
fn bitand(self, rhs: U) -> Self::Output
[src]
impl<'a, T, U> BitOr<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: BitOr<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: BitOr<U>,
type Output = <&'a T as BitOr<U>>::Output
The resulting type after applying the |
operator.
fn bitor(self, rhs: U) -> Self::Output
[src]
impl<'a, T, U> BitXor<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: BitXor<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: BitXor<U>,
type Output = <&'a T as BitXor<U>>::Output
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: U) -> Self::Output
[src]
impl<'a, T, U> CastFrom<&'a QBox<U>> for Ptr<T> where
U: StaticUpcast<T> + StaticUpcast<QObject> + CppDeletable,
[src]
U: StaticUpcast<T> + StaticUpcast<QObject> + CppDeletable,
impl<T: StaticUpcast<QObject> + CppDeletable> Debug for QBox<T>
[src]
impl<T: StaticUpcast<QObject> + CppDeletable> Deref for QBox<T>
[src]
Allows to call member functions of T
and its base classes directly on the pointer.
Panics if the pointer is null.
impl<'a, T, U> Div<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Div<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Div<U>,
type Output = <&'a T as Div<U>>::Output
The resulting type after applying the /
operator.
fn div(self, rhs: U) -> Self::Output
[src]
impl<T: StaticUpcast<QObject> + CppDeletable> Drop for QBox<T>
[src]
impl<'a, T, U> Mul<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Mul<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Mul<U>,
type Output = <&'a T as Mul<U>>::Output
The resulting type after applying the *
operator.
fn mul(self, rhs: U) -> Self::Output
[src]
impl<T, U> PartialEq<U> for QBox<T> where
T: PartialEq<U> + CppDeletable + StaticUpcast<QObject>,
[src]
T: PartialEq<U> + CppDeletable + StaticUpcast<QObject>,
impl<T, U> PartialOrd<U> for QBox<T> where
T: Lt<U> + Le<U> + Gt<U> + Ge<U> + PartialEq<U> + CppDeletable + StaticUpcast<QObject>,
[src]
T: Lt<U> + Le<U> + Gt<U> + Ge<U> + PartialEq<U> + CppDeletable + StaticUpcast<QObject>,
fn partial_cmp(&self, other: &U) -> Option<Ordering>
[src]
fn lt(&self, other: &U) -> bool
[src]
fn le(&self, other: &U) -> bool
[src]
fn gt(&self, other: &U) -> bool
[src]
fn ge(&self, other: &U) -> bool
[src]
impl<'a, T, U> Rem<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Rem<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Rem<U>,
type Output = <&'a T as Rem<U>>::Output
The resulting type after applying the %
operator.
fn rem(self, rhs: U) -> Self::Output
[src]
impl<'a, T, U> Shl<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Shl<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Shl<U>,
type Output = <&'a T as Shl<U>>::Output
The resulting type after applying the <<
operator.
fn shl(self, rhs: U) -> Self::Output
[src]
impl<'a, T, U> Shr<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Shr<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Shr<U>,
type Output = <&'a T as Shr<U>>::Output
The resulting type after applying the >>
operator.
fn shr(self, rhs: U) -> Self::Output
[src]
impl<'a, T, U> Sub<U> for &'a QBox<T> where
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Sub<U>,
[src]
T: CppDeletable + StaticUpcast<QObject>,
&'a T: Sub<U>,
Auto Trait Implementations
impl<T> RefUnwindSafe for QBox<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> !Send for QBox<T>
impl<T> !Sync for QBox<T>
impl<T> Unpin for QBox<T>
impl<T> UnwindSafe for QBox<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> CastInto<U> for T where
U: CastFrom<T>,
[src]
U: CastFrom<T>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> StaticUpcast<T> for T
[src]
unsafe fn static_upcast(ptr: Ptr<T>) -> Ptr<T>
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,