[−]Derive Macro pelite::Pod
#[derive(Pod)]
Auto derive the Pod
trait for structs.
The type is checked for requirements of the Pod
trait:
-
Be annotated with
repr(C)
orrepr(transparent)
. -
Have every field's type implement
Pod
itself. -
Not have any padding between its fields.
Compile errors
Error reporting is not very ergonomic due to how errors are detected:
-
error[E0277]: the trait bound $TYPE: Pod is not satisfied
The struct contains a field whose type does not implement
Pod
. -
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
This error means your struct has padding as its size is not equal to a byte array of length equal to the sum of the size of its fields.
-
error: no rules expected the token <
The struct contains generic parameters which are not supported. It may still be possible to manually implement
Pod
but extra care should be taken to ensure its invariants are upheld.