A radioactive stabilization of the ptr_meta
RFC.
All Sized
types have Pointee
implemented for them with a blanket implementation. You do not
need to derive Pointee
for these types.
slice
s and str
sThese core types have implementations built in.
dyn Any
The trait object for this standard library type comes with an implementation built in.
You can derive Pointee
for structs with a trailing DST:
```rust use ptr_meta::Pointee;
struct Block
Note that this will only work when the last field is guaranteed to be a DST. Structs with a
generic last field may have a conflicting blanket impl since the generic type may be Sized
. In
these cases, a collection of specific implementations may be required with the generic parameter
set to a slice, str
, or specific trait object.
You can generate a Pointee
implementation for trait objects:
```rust use ptr_meta::pointee;
// Generates Pointee for dyn Stringy
trait Stringy { fn as_string(&self) -> String; } ```