pub unsafe trait PinCoerceUnsized { }๐ฌThis is a nightly-only experimental API. (
pin_coerce_unsized_trait #123430)Expand description
Trait that indicates that this is a pointer or a wrapper for one, where unsizing can be performed on the pointee when it is pinned.
ยงSafety
If this type implements Deref, then the concrete type returned by deref
and deref_mut must not change without a modification. The following
operations are not considered modifications:
- Moving the pointer.
- Performing unsizing coercions on the pointer.
- Performing dynamic dispatch with the pointer.
- Calling
dereforderef_muton the pointer.
The concrete type of a trait object is the type that the vtable corresponds to. The concrete type of a slice is an array of the same element type and the length specified in the metadata. The concrete type of a sized type is the type itself.
Implementorsยง
impl<'a, T> PinCoerceUnsized for &'a Twhere
T: ?Sized,
impl<'a, T> PinCoerceUnsized for &'a mut Twhere
T: ?Sized,
impl<'b, T> PinCoerceUnsized for Ref<'b, T>where
T: ?Sized,
Available on non-crate feature
ferrocene_certified only.impl<'b, T> PinCoerceUnsized for RefMut<'b, T>where
T: ?Sized,
Available on non-crate feature
ferrocene_certified only.impl<T> PinCoerceUnsized for *const Twhere
T: ?Sized,
impl<T> PinCoerceUnsized for *mut Twhere
T: ?Sized,
impl<T> PinCoerceUnsized for Cell<T>where
T: ?Sized,
Available on non-crate feature
ferrocene_certified only.impl<T> PinCoerceUnsized for RefCell<T>where
T: ?Sized,
Available on non-crate feature
ferrocene_certified only.impl<T> PinCoerceUnsized for SyncUnsafeCell<T>where
T: ?Sized,
Available on non-crate feature
ferrocene_certified only.impl<T> PinCoerceUnsized for UnsafeCell<T>where
T: ?Sized,
Available on non-crate feature
ferrocene_certified only.impl<T> PinCoerceUnsized for NonNull<T>where
T: ?Sized,
Available on non-crate feature
ferrocene_certified only.