Expand description
A radioactive stabilization of the ptr_meta
RFC.
§Usage
§Sized types
Sized types already have Pointee
implemented for them, so most of the time you won’t have to worry
about them. However, trying to derive Pointee
for a struct that may or may not have a DST as its
last field will cause an implementation conflict with the automatic sized implementation.
§slice
s and str
s
These core types have implementations built in.
§Structs with a DST as its last field
You can derive Pointee
for last-field DSTs:
use ptr_meta::Pointee;
#[derive(Pointee)]
struct Block<H, T> {
header: H,
elements: [T],
}
§Trait objects
You can generate a Pointee
for trait objects:
use ptr_meta::pointee;
// Generates Pointee for dyn Stringy
#[pointee]
trait Stringy {
fn as_string(&self) -> String;
}
Structs§
- The metadata for a
Dyn = dyn SomeTrait
trait object type.
Traits§
- Extension methods for
NonNull
. - Provides the pointer metadata type of any pointed-to type.
- Extension methods for pointers.
Functions§
- Forms a (possibly-wide) raw pointer from a data address and metadata.
- Performs the same functionality as
from_raw_parts
, except that a raw*mut
pointer is returned, as opposed to a raw*const
pointer. - Extract the metadata component of a pointer.
Attribute Macros§
- Generates an implementation of
Pointee
for trait objects.
Derive Macros§
- Generates an implementation of
Pointee
for structs with a DST as its last field.