kvarn::prelude::utils::prelude::compact_str::core::ptr

Struct DynMetadata

source
pub struct DynMetadata<Dyn>
where Dyn: ?Sized,
{ /* private fields */ }
🔬This is a nightly-only experimental API. (ptr_metadata)
Expand description

The metadata for a Dyn = dyn SomeTrait trait object type.

It is a pointer to a vtable (virtual call table) that represents all the necessary information to manipulate the concrete type stored inside a trait object. The vtable notably contains:

  • type size
  • type alignment
  • a pointer to the type’s drop_in_place impl (may be a no-op for plain-old-data)
  • pointers to all the methods for the type’s implementation of the trait

Note that the first three are special because they’re necessary to allocate, drop, and deallocate any trait object.

It is possible to name this struct with a type parameter that is not a dyn</