Add guarantees regarding `repr(Rust)` structs and enums being ZSTs

New rule `layout.repr.rust.struct-zst` adds the guarantee that
`repr(Rust)` structs with no fields or all ZST fields are ZSTs.

New rule `layout.repr.rust.enum-struct-like-zst` adds the guarantee
that `repr(Rust)` enums with a single struct-like variant with no
fields or all ZST fields are ZSTs.

The glossary entry for ZSTs is expanded with references to these
guarantees and examples.
2 files changed
tree: 6518f5416fdfa0efeb11fcb47102d819b44cb78d
  1. .cargo/
  2. .github/
  3. dev-guide/
  4. docs/
  5. src/
  6. theme/
  7. tools/
  8. .gitattributes
  9. .gitignore
  10. book.toml
  11. Cargo.lock
  12. Cargo.toml
  13. CONTRIBUTING.md
  14. LICENSE-APACHE
  15. LICENSE-MIT
  16. README.md
  17. reference.md
  18. rust-toolchain.toml
  19. rustfmt.toml
  20. triagebot.toml
README.md

The Rust Language Reference

This document is the primary reference for the Rust programming language.

Contributor docs

See the Reference Developer Guide for information on contributing to the Reference.