A struct literal omits a field that has no default.
struct User { id: u64, name: String, email: String }
let u = User { id: 1, name: "ada".into() };
// E0063: missing field `email`
Every field must be set somewhere — Rust does not invent defaults silently. The compiler refuses partial construction.
- Provide the missing fields.
- Use ..Default::default() if the struct implements Default: User { id: 1, name: "ada".into(), ..Default::default() }.
- Wrap optional fields in Option<T> so callers can skip them while still satisfying the type.
- For evolving structs, #[non_exhaustive] plus a builder forces controlled construction.