Structs
Derive a struct from a reference and use it safely. The source is boxed,
then a reference to it is used to construct the dependent data which is stored inline.
This is not currently possible within Rust’s type system so we need to use unsafe code.