Lines Matching refs:T
118 pub struct Arc<T: ?Sized> {
119 ptr: NonNull<ArcInner<T>>,
120 _p: PhantomData<ArcInner<T>>,
124 struct ArcInner<T: ?Sized> {
126 data: T,
130 impl<T: ?Sized> core::ops::Receiver for Arc<T> {}
134 impl<T: ?Sized + Unsize<U>, U: ?Sized> core::ops::CoerceUnsized<Arc<U>> for Arc<T> {}
137 impl<T: ?Sized + Unsize<U>, U: ?Sized> core::ops::DispatchFromDyn<Arc<U>> for Arc<T> {}
143 unsafe impl<T: ?Sized + Sync + Send> Send for Arc<T> {}
148 unsafe impl<T: ?Sized + Sync + Send> Sync for Arc<T> {}
150 impl<T> Arc<T> {
152 pub fn try_new(contents: T) -> Result<Self> { in try_new()
168 impl<T: ?Sized> Arc<T> {
175 unsafe fn from_inner(inner: NonNull<ArcInner<T>>) -> Self { in from_inner()
188 pub fn as_arc_borrow(&self) -> ArcBorrow<'_, T> { in as_arc_borrow() argument
196 impl<T: 'static> ForeignOwnable for Arc<T> {
197 type Borrowed<'a> = ArcBorrow<'a, T>;
203 unsafe fn borrow<'a>(ptr: *const core::ffi::c_void) -> ArcBorrow<'a, T> { in borrow() argument
206 let inner = NonNull::new(ptr as *mut ArcInner<T>).unwrap(); in borrow()
222 impl<T: ?Sized> Deref for Arc<T> {
223 type Target = T;
232 impl<T: ?Sized> Clone for Arc<T> {
244 impl<T: ?Sized> Drop for Arc<T> {
265 impl<T: ?Sized> From<UniqueArc<T>> for Arc<T> {
266 fn from(item: UniqueArc<T>) -> Self { in from()
271 impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> {
272 fn from(item: Pin<UniqueArc<T>>) -> Self { in from()
331 pub struct ArcBorrow<'a, T: ?Sized + 'a> {
332 inner: NonNull<ArcInner<T>>,
337 impl<T: ?Sized> core::ops::Receiver for ArcBorrow<'_, T> {}
341 impl<T: ?Sized + Unsize<U>, U: ?Sized> core::ops::DispatchFromDyn<ArcBorrow<'_, U>>
342 for ArcBorrow<'_, T>
346 impl<T: ?Sized> Clone for ArcBorrow<'_, T> {
352 impl<T: ?Sized> Copy for ArcBorrow<'_, T> {}
354 impl<T: ?Sized> ArcBorrow<'_, T> {
362 unsafe fn new(inner: NonNull<ArcInner<T>>) -> Self { in new()
371 impl<T: ?Sized> From<ArcBorrow<'_, T>> for Arc<T> {
372 fn from(b: ArcBorrow<'_, T>) -> Self { in from()
382 impl<T: ?Sized> Deref for ArcBorrow<'_, T> {
383 type Target = T;
466 pub struct UniqueArc<T: ?Sized> {
467 inner: Arc<T>,
470 impl<T> UniqueArc<T> {
472 pub fn try_new(value: T) -> Result<Self> { in try_new()
480 pub fn try_new_uninit() -> Result<UniqueArc<MaybeUninit<T>>> { in try_new_uninit()
481 Ok(UniqueArc::<MaybeUninit<T>> { in try_new_uninit()
488 impl<T> UniqueArc<MaybeUninit<T>> {
490 pub fn write(mut self, value: T) -> UniqueArc<T> { in write() argument
501 impl<T: ?Sized> From<UniqueArc<T>> for Pin<UniqueArc<T>> {
502 fn from(obj: UniqueArc<T>) -> Self { in from()
509 impl<T: ?Sized> Deref for UniqueArc<T> {
510 type Target = T;
517 impl<T: ?Sized> DerefMut for UniqueArc<T> {