Lines Matching refs:T
130 pub struct Arc<T: ?Sized> {
131 ptr: NonNull<ArcInner<T>>,
140 _p: PhantomData<ArcInner<T>>,
145 struct ArcInner<T: ?Sized> {
147 data: T,
150 impl<T: ?Sized> ArcInner<T> {
157 unsafe fn container_of(ptr: *const T) -> NonNull<ArcInner<T>> { in container_of() argument
170 let ptr = ptr as *const ArcInner<T>; in container_of()
186 impl<T: ?Sized + core::marker::Unsize<U>, U: ?Sized> core::ops::CoerceUnsized<Arc<U>> for Arc<T> {}
190 impl<T: ?Sized + core::marker::Unsize<U>, U: ?Sized> core::ops::DispatchFromDyn<Arc<U>> for Arc<T> …
196 unsafe impl<T: ?Sized + Sync + Send> Send for Arc<T> {}
203 unsafe impl<T: ?Sized + Sync + Send> Sync for Arc<T> {}
205 impl<T> InPlaceInit<T> for Arc<T> {
209 fn try_pin_init<E>(init: impl PinInit<T, E>, flags: Flags) -> Result<Self::PinnedSelf, E> in try_pin_init() argument
217 fn try_init<E>(init: impl Init<T, E>, flags: Flags) -> Result<Self, E> in try_init() argument
225 impl<T> Arc<T> {
227 pub fn new(contents: T, flags: Flags) -> Result<Self, AllocError> { in new() argument
244 impl<T: ?Sized> Arc<T> {
251 unsafe fn from_inner(inner: NonNull<ArcInner<T>>) -> Self { in from_inner()
262 pub fn into_raw(self) -> *const T { in into_raw() argument
270 pub fn as_ptr(this: &Self) -> *const T { in as_ptr() argument
284 pub unsafe fn from_raw(ptr: *const T) -> Self { in from_raw()
299 pub fn as_arc_borrow(&self) -> ArcBorrow<'_, T> { in as_arc_borrow() argument
345 pub fn into_unique_or_drop(self) -> Option<Pin<UniqueArc<T>>> { in into_unique_or_drop() argument
374 impl<T: 'static> ForeignOwnable for Arc<T> {
375 type Borrowed<'a> = ArcBorrow<'a, T>;
385 let inner = unsafe { NonNull::new_unchecked(ptr.cast::<ArcInner<T>>()) }; in from_foreign()
393 unsafe fn borrow<'a>(ptr: *mut crate::ffi::c_void) -> ArcBorrow<'a, T> { in borrow() argument
396 let inner = unsafe { NonNull::new_unchecked(ptr.cast::<ArcInner<T>>()) }; in borrow()
403 unsafe fn borrow_mut<'a>(ptr: *mut crate::ffi::c_void) -> ArcBorrow<'a, T> { in borrow_mut() argument
410 impl<T: ?Sized> Deref for Arc<T> {
411 type Target = T;
420 impl<T: ?Sized> AsRef<T> for Arc<T> {
421 fn as_ref(&self) -> &T { in as_ref() argument
426 impl<T: ?Sized> Clone for Arc<T> {
442 impl<T: ?Sized> Drop for Arc<T> {
463 impl<T: ?Sized> From<UniqueArc<T>> for Arc<T> {
464 fn from(item: UniqueArc<T>) -> Self { in from()
469 impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> {
470 fn from(item: Pin<UniqueArc<T>>) -> Self { in from()
533 pub struct ArcBorrow<'a, T: ?Sized + 'a> {
534 inner: NonNull<ArcInner<T>>,
541 impl<T: ?Sized + core::marker::Unsize<U>, U: ?Sized> core::ops::DispatchFromDyn<ArcBorrow<'_, U>>
542 for ArcBorrow<'_, T>
546 impl<T: ?Sized> Clone for ArcBorrow<'_, T> {
552 impl<T: ?Sized> Copy for ArcBorrow<'_, T> {}
554 impl<T: ?Sized> ArcBorrow<'_, T> {
562 unsafe fn new(inner: NonNull<ArcInner<T>>) -> Self { in new()
580 pub unsafe fn from_raw(ptr: *const T) -> Self { in from_raw()
592 impl<T: ?Sized> From<ArcBorrow<'_, T>> for Arc<T> {
593 fn from(b: ArcBorrow<'_, T>) -> Self { in from()
603 impl<T: ?Sized> Deref for ArcBorrow<'_, T> {
604 type Target = T;
687 pub struct UniqueArc<T: ?Sized> {
688 inner: Arc<T>,
691 impl<T> InPlaceInit<T> for UniqueArc<T> {
695 fn try_pin_init<E>(init: impl PinInit<T, E>, flags: Flags) -> Result<Self::PinnedSelf, E> in try_pin_init() argument
703 fn try_init<E>(init: impl Init<T, E>, flags: Flags) -> Result<Self, E> in try_init() argument
711 impl<T> InPlaceWrite<T> for UniqueArc<MaybeUninit<T>> {
712 type Initialized = UniqueArc<T>;
714 fn write_init<E>(mut self, init: impl Init<T, E>) -> Result<Self::Initialized, E> { in write_init() argument
723 fn write_pin_init<E>(mut self, init: impl PinInit<T, E>) -> Result<Pin<Self::Initialized>, E> { in write_pin_init() argument
733 impl<T> UniqueArc<T> {
735 pub fn new(value: T, flags: Flags) -> Result<Self, AllocError> { in new() argument
743 pub fn new_uninit(flags: Flags) -> Result<UniqueArc<MaybeUninit<T>>, AllocError> { in new_uninit() argument
749 data <- pin_init::uninit::<T, AllocError>(), in new_uninit()
761 impl<T> UniqueArc<MaybeUninit<T>> {
763 pub fn write(mut self, value: T) -> UniqueArc<T> { in write() argument
775 pub unsafe fn assume_init(self) -> UniqueArc<T> { in assume_init() argument
785 pub fn init_with<E>(mut self, init: impl Init<T, E>) -> core::result::Result<UniqueArc<T>, E> { in init_with() argument
797 init: impl PinInit<T, E>, in pin_init_with() argument
798 ) -> core::result::Result<Pin<UniqueArc<T>>, E> { in pin_init_with() argument
809 impl<T: ?Sized> From<UniqueArc<T>> for Pin<UniqueArc<T>> {
810 fn from(obj: UniqueArc<T>) -> Self { in from()
817 impl<T: ?Sized> Deref for UniqueArc<T> {
818 type Target = T;
825 impl<T: ?Sized> DerefMut for UniqueArc<T> {
834 impl<T: fmt::Display + ?Sized> fmt::Display for UniqueArc<T> {
840 impl<T: fmt::Display + ?Sized> fmt::Display for Arc<T> {
846 impl<T: fmt::Debug + ?Sized> fmt::Debug for UniqueArc<T> {
852 impl<T: fmt::Debug + ?Sized> fmt::Debug for Arc<T> {