Struct std::ptr::DynMetadata
source · pub struct DynMetadata<Dyn>where
Dyn: ?Sized,{ /* private fields */ }
🔬This is a nightly-only experimental API. (
ptr_metadata
#81513)Expand description
Dyn = dyn SomeTrait
trait 对象类型的元数据。
它是指向 vtable (虚拟调用表) 的指针,该表表示操作存储在 trait 对象内部的具体类型所需的所有信息。 该 vtable 尤其包含:
- 类型大小
- 类型对齐
- 指向该类型的
drop_in_place
impl 的指针 (对于纯旧数据,它可能是 no-op) - 指向 trait 类型实现的所有方法的指针
请注意,前三个是特殊的,因为它们是分配,丢弃和释放任何 trait 对象所必需的。
可以使用不是 dyn
trait 对象 (例如 DynMetadata<u64>
) 的类型参数来命名此结构体,但不能获得该结构体的有意义的值。
Implementations§
Trait Implementations§
source§impl<Dyn> Clone for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Dyn> Clone for DynMetadata<Dyn>where Dyn: ?Sized,
source§fn clone(&self) -> DynMetadata<Dyn>
fn clone(&self) -> DynMetadata<Dyn>
返回值的副本。 Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
从
source
执行复制分配。 Read moresource§impl<Dyn> Debug for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Dyn> Debug for DynMetadata<Dyn>where Dyn: ?Sized,
source§impl<Dyn> Hash for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Dyn> Hash for DynMetadata<Dyn>where Dyn: ?Sized,
source§impl<Dyn> Ord for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Dyn> Ord for DynMetadata<Dyn>where Dyn: ?Sized,
source§fn cmp(&self, other: &DynMetadata<Dyn>) -> Ordering
fn cmp(&self, other: &DynMetadata<Dyn>) -> Ordering
source§impl<Dyn> PartialEq<DynMetadata<Dyn>> for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Dyn> PartialEq<DynMetadata<Dyn>> for DynMetadata<Dyn>where Dyn: ?Sized,
source§impl<Dyn> PartialOrd<DynMetadata<Dyn>> for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Dyn> PartialOrd<DynMetadata<Dyn>> for DynMetadata<Dyn>where Dyn: ?Sized,
impl<Dyn> Copy for DynMetadata<Dyn>where Dyn: ?Sized,
impl<Dyn> Eq for DynMetadata<Dyn>where Dyn: ?Sized,
impl<Dyn> Send for DynMetadata<Dyn>where Dyn: ?Sized,
impl<Dyn> Sync for DynMetadata<Dyn>where Dyn: ?Sized,
impl<Dyn> Unpin for DynMetadata<Dyn>where Dyn: ?Sized,
Auto Trait Implementations§
impl<Dyn> !RefUnwindSafe for DynMetadata<Dyn>
impl<Dyn> !UnwindSafe for DynMetadata<Dyn>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
从拥有的值中借用。 Read more