Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0610: `u32` is a primitive type and therefore doesn't have fields
What it meansAttempted to access a field on a primitive type.
What rustc prints
error[E0610]: `u32` is a primitive type and therefore doesn't have fields
--> main.rs:4:18
|
4 | println!("{}", x.foo); // error: `{integer}` is a primitive type, therefore
| ^^^Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
Attempted to access a field on a primitive type.
Erroneous code example:
let x: u32 = 0;
println!("{}", x.foo); // error: `{integer}` is a primitive type, therefore
// doesn't have fields
Primitive types are the most basic types available in Rust and don't have fields. To access data via named fields, struct types are used. Example:
// We declare struct called `Foo` containing two fields:
struct Foo {
x: u32,
y: i64,
}
// We create an instance of this struct:
let variable = Foo { x: 0, y: -12 };
// And we can now access its fields:
println!("x: {}, y: {}", variable.x, variable.y);
For more information about primitives and structs, take a look at the Book.
From rustc --explain E0610 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?