Lines Matching defs:SharedPtr
14 pub struct SharedPtr<T>
22 impl<T> SharedPtr<T>
26 /// Makes a new SharedPtr wrapping a null pointer.
30 let mut shared_ptr = MaybeUninit::<SharedPtr<T>>::uninit();
38 /// Allocates memory on the heap and makes a SharedPtr owner for it.
43 let mut shared_ptr = MaybeUninit::<SharedPtr<T>>::uninit();
51 /// Checks whether the SharedPtr does not own an object.
60 /// Returns a reference to the object owned by this SharedPtr if any,
72 pub fn downgrade(self: &SharedPtr<T>) -> WeakPtr<T>
86 unsafe impl<T> Send for SharedPtr<T> where T: Send + Sync + SharedPtrTarget {}
87 unsafe impl<T> Sync for SharedPtr<T> where T: Send + Sync + SharedPtrTarget {}
89 impl<T> Clone for SharedPtr<T>
94 let mut shared_ptr = MaybeUninit::<SharedPtr<T>>::uninit();
104 // SharedPtr is not a self-referential type and is safe to move out of a Pin,
106 impl<T> Unpin for SharedPtr<T> where T: SharedPtrTarget {}
108 impl<T> Drop for SharedPtr<T>
118 impl<T> Deref for SharedPtr<T>
128 "called deref on a null SharedPtr<{}>",
135 impl<T> Debug for SharedPtr<T>
147 impl<T> Display for SharedPtr<T>
160 /// `SharedPtr<T>` in generic code.
168 /// [`SharedPtr`] in generic code.
171 /// use cxx::memory::{SharedPtr, SharedPtrTarget};
174 /// pub fn take_generic_ptr<T>(ptr: SharedPtr<T>)