Layout descriptors for struct or enum types with an inventory registry.
[TypeLayout] is derivable and exposes a const [TypeLayoutInfo] holding a type's name, size, minimum alignment,
field offsets and enum variant discriminants.
use ;
const LAYOUT: TypeLayoutInfo = TYPE_LAYOUT;
assert_eq!;
assert_eq!;
assert_eq!;
Types can additionally [register!] themselves into a crate-wide [inventory] registry, which can be used for
snapshot testing, so a field, variant reorder, or a size change can be caught.