Skip to content

Latest commit

 

History

History
28 lines (20 loc) · 1.16 KB

struct.md

File metadata and controls

28 lines (20 loc) · 1.16 KB

Struct types

A struct type is a heterogeneous product of other types, called the fields of the type.1

New instances of a struct can be constructed with a struct expression.

The memory layout of a struct is undefined by default to allow for compiler optimizations like field reordering, but it can be fixed with the #[repr(...)] attribute. In either case, fields may be given in any order in a corresponding struct expression; the resulting struct value will always have the same memory layout.

The fields of a struct may be qualified by visibility modifiers, to allow access to data in a struct outside a module.

A tuple struct type is just like a struct type, except that the fields are anonymous.

A unit-like struct type is like a struct type, except that it has no fields. The one value constructed by the associated struct expression is the only value that inhabits such a type.

Footnotes

  1. struct types are analogous to struct types in C, the record types of the ML family, or the struct types of the Lisp family.