Lines Matching refs:T
132 pub struct Arc<T: ?Sized> {
133 ptr: NonNull<ArcInner<T>>,
142 _p: PhantomData<ArcInner<T>>,
147 struct ArcInner<T: ?Sized> {
149 data: T,
152 impl<T: ?Sized> ArcInner<T> {
159 unsafe fn container_of(ptr: *const T) -> NonNull<ArcInner<T>> { in container_of() argument
172 let ptr = ptr as *const ArcInner<T>; in container_of()
188 impl<T: ?Sized + core::marker::Unsize<U>, U: ?Sized> core::ops::CoerceUnsized<Arc<U>> for Arc<T> {}
192 impl<T: ?Sized + core::marker::Unsize<U>, U: ?Sized> core::ops::DispatchFromDyn<Arc<U>> for Arc<T> …
198 unsafe impl<T: ?Sized + Sync + Send> Send for Arc<T> {}
205 unsafe impl<T: ?Sized + Sync + Send> Sync for Arc<T> {}
207 impl<T> InPlaceInit<T> for Arc<T> {
211 fn try_pin_init<E>(init: impl PinInit<T, E>, flags: Flags) -> Result<Self::PinnedSelf, E> in try_pin_init() argument
219 fn try_init<E>(init: impl Init<T, E>, flags: Flags) -> Result<Self, E> in try_init() argument
227 impl<T> Arc<T> {
229 pub fn new(contents: T, flags: Flags) -> Result<Self, AllocError> { in new() argument
246 impl<T: ?Sized> Arc<T> {
253 unsafe fn from_inner(inner: NonNull<ArcInner<T>>) -> Self { in from_inner()
264 pub fn into_raw(self) -> *const T { in into_raw() argument
272 pub fn as_ptr(this: &Self) -> *const T { in as_ptr() argument
286 pub unsafe fn from_raw(ptr: *const T) -> Self { in from_raw()
301 pub fn as_arc_borrow(&self) -> ArcBorrow<'_, T> { in as_arc_borrow() argument
347 pub fn into_unique_or_drop(self) -> Option<Pin<UniqueArc<T>>> { in into_unique_or_drop() argument
378 unsafe impl<T: 'static> ForeignOwnable for Arc<T> {
379 const FOREIGN_ALIGN: usize = core::mem::align_of::<ArcInner<T>>();
381 type Borrowed<'a> = ArcBorrow<'a, T>;
391 let inner = unsafe { NonNull::new_unchecked(ptr.cast::<ArcInner<T>>()) }; in from_foreign()
399 unsafe fn borrow<'a>(ptr: *mut c_void) -> ArcBorrow<'a, T> { in borrow() argument
402 let inner = unsafe { NonNull::new_unchecked(ptr.cast::<ArcInner<T>>()) }; in borrow()
409 unsafe fn borrow_mut<'a>(ptr: *mut c_void) -> ArcBorrow<'a, T> { in borrow_mut() argument
416 impl<T: ?Sized> Deref for Arc<T> {
417 type Target = T;
426 impl<T: ?Sized> AsRef<T> for Arc<T> {
427 fn as_ref(&self) -> &T { in as_ref() argument
451 impl<T: ?Sized> Borrow<T> for Arc<T> {
452 fn borrow(&self) -> &T { in borrow() argument
457 impl<T: ?Sized> Clone for Arc<T> {
473 impl<T: ?Sized> Drop for Arc<T> {
494 impl<T: ?Sized> From<UniqueArc<T>> for Arc<T> {
495 fn from(item: UniqueArc<T>) -> Self { in from()
500 impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> {
501 fn from(item: Pin<UniqueArc<T>>) -> Self { in from()
564 pub struct ArcBorrow<'a, T: ?Sized + 'a> {
565 inner: NonNull<ArcInner<T>>,
572 impl<T: ?Sized + core::marker::Unsize<U>, U: ?Sized> core::ops::DispatchFromDyn<ArcBorrow<'_, U>>
573 for ArcBorrow<'_, T>
577 impl<T: ?Sized> Clone for ArcBorrow<'_, T> {
583 impl<T: ?Sized> Copy for ArcBorrow<'_, T> {}
585 impl<T: ?Sized> ArcBorrow<'_, T> {
593 unsafe fn new(inner: NonNull<ArcInner<T>>) -> Self { in new()
611 pub unsafe fn from_raw(ptr: *const T) -> Self { in from_raw()
623 impl<T: ?Sized> From<ArcBorrow<'_, T>> for Arc<T> {
624 fn from(b: ArcBorrow<'_, T>) -> Self { in from()
634 impl<T: ?Sized> Deref for ArcBorrow<'_, T> {
635 type Target = T;
718 pub struct UniqueArc<T: ?Sized> {
719 inner: Arc<T>,
722 impl<T> InPlaceInit<T> for UniqueArc<T> {
726 fn try_pin_init<E>(init: impl PinInit<T, E>, flags: Flags) -> Result<Self::PinnedSelf, E> in try_pin_init() argument
734 fn try_init<E>(init: impl Init<T, E>, flags: Flags) -> Result<Self, E> in try_init() argument
742 impl<T> InPlaceWrite<T> for UniqueArc<MaybeUninit<T>> {
743 type Initialized = UniqueArc<T>;
745 fn write_init<E>(mut self, init: impl Init<T, E>) -> Result<Self::Initialized, E> { in write_init() argument
754 fn write_pin_init<E>(mut self, init: impl PinInit<T, E>) -> Result<Pin<Self::Initialized>, E> { in write_pin_init() argument
764 impl<T> UniqueArc<T> {
766 pub fn new(value: T, flags: Flags) -> Result<Self, AllocError> { in new() argument
774 pub fn new_uninit(flags: Flags) -> Result<UniqueArc<MaybeUninit<T>>, AllocError> { in new_uninit() argument
780 data <- pin_init::uninit::<T, AllocError>(), in new_uninit()
792 impl<T> UniqueArc<MaybeUninit<T>> {
794 pub fn write(mut self, value: T) -> UniqueArc<T> { in write() argument
806 pub unsafe fn assume_init(self) -> UniqueArc<T> { in assume_init() argument
816 pub fn init_with<E>(mut self, init: impl Init<T, E>) -> core::result::Result<UniqueArc<T>, E> { in init_with() argument
828 init: impl PinInit<T, E>, in pin_init_with() argument
829 ) -> core::result::Result<Pin<UniqueArc<T>>, E> { in pin_init_with() argument
840 impl<T: ?Sized> From<UniqueArc<T>> for Pin<UniqueArc<T>> {
841 fn from(obj: UniqueArc<T>) -> Self { in from()
848 impl<T: ?Sized> Deref for UniqueArc<T> {
849 type Target = T;
856 impl<T: ?Sized> DerefMut for UniqueArc<T> {
884 impl<T: ?Sized> Borrow<T> for UniqueArc<T> {
885 fn borrow(&self) -> &T { in borrow() argument
909 impl<T: ?Sized> BorrowMut<T> for UniqueArc<T> {
910 fn borrow_mut(&mut self) -> &mut T { in borrow_mut() argument
915 impl<T: fmt::Display + ?Sized> fmt::Display for UniqueArc<T> {
921 impl<T: fmt::Display + ?Sized> fmt::Display for Arc<T> {
927 impl<T: fmt::Debug + ?Sized> fmt::Debug for UniqueArc<T> {
933 impl<T: fmt::Debug + ?Sized> fmt::Debug for Arc<T> {